Re: SANE and general USB support

From: Oliver Neukum (Oliver.Neukum@lrz.uni-muenchen.de)
Date: Wed Oct 11 2000 - 09:32:24 PDT

  • Next message: Lawrence Glaister: "Re: SANE and general USB support"

    Am Mit, 11 Okt 2000 schrieben Sie:
    > Hi,
    >
    > I'm interested in improving USB support inside of SANE since I have a USB scanner (Acer 640BU). I'd like to see if anyone else is currently working in this area. I must admit I have only looked at version 1.0.3
    (not CVS) and only about a months worth of the mailing list archive.
    >
    > I see three main problems effecting current USB scanners in SANE. First, there is no generic support for USB like there is for SCSI (ie sanei_scsi.c).
      This means that we can not override these functions to always return failure
    on platforms that do not support USB. At the least, this should mean that any
    USB scanner drivers will fail to compile on non-Linux platforms when USB kerenl
    functions are called. > > Next, there needs to be enhanced support in the
    sanei_config2.c files. They understand a SCSI keyword in config files and will
    search a /proc directory to find it. The same should be implemented for USB. >
    > Lastly, most of the scanner drivers are SCSI oriented and support placing
    just a device name in the config like like /dev/scanner. The problem here is
    that we do not do any error checking inside of scsi open() functions to make
    sure its actually a SCSI device. We also immediately start doing SCSI related
    ioctl() calls. Since /dev/scanner is a generic link, on systems with USB
    scanners we start doing SCSI ioctl()'s during scans to see whats out there.
    This tends to lock up the current versions of the USB kernel code (well, it
    takes minutes for it to time out anyways). > > I'd like to address these 3
    issues. Is it OK for me to start hacking the sanei directory or should I
    discuss some designs with someone? > > Thanks, > Chris

    Hi,

    David Nelson for the generic usb scanner kernel driver, would be one to speak
    to.
    There are no kernel level usb calls. The usbscanner driver will transfer to
    the scanner what you write() and read from the scanner what you read().
    You can hardly make such things fail at compile time.

    You could scan /proc/bus/usb/devices.
    Do you think that a backend can operate on scsi and usb
    without knowing about differences in the busses ?

            Oliver

    --
    Source code, list archive, and docs: http://www.mostang.com/sane/
    To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com
    



    This archive was generated by hypermail 2b29 : Wed Oct 11 2000 - 10:29:24 PDT