[sane-devel] Canon PIXMA MX330 working, with -x auto and -y auto bug; data here

qm at sonic.net qm at sonic.net
Sat Dec 5 19:00:09 UTC 2009


I tried to submit form at
<http://www.meier-geinitz.de/tinc?key=rDoQ7lrj&formname=adddev>, but it
gave the error "Es sind Fehler aufgetreten:
Konfigurationsproblem	Leider können Sie keinen weiteren Eintrag vornehmen,
da die die Gesamtzahl möglicher Einträge erreicht wurde!", so I'm
re-submitting the information here:

Your email address:  As on my email to the sane-devel mailing list.
Manufacturer:  Canon
Model name:  PIXMA MX330
Bus type:  USB
Vendor id:  0x04a9
Product id:  0x1737
Chipset:  unknown
Comments:

Works with patch to sane-backends-1.0.20/backend/pixma_mp150.c in the
already-coded stuff that just wants the product ID#, which is 1737 hex:

=============

--- backend/pixma_mp150.c.~1~   2009-04-23 12:59:23.000000000 -0700
+++ backend/pixma_mp150.c       2009-12-05 10:15:32.000000000 -0800
@@ -141,7 +141,7 @@
 #define MP190_PID 0x1734

 /* PIXMA 2009 vintage */
-#define MX330_PID UNKNOWN_PID    /* TBD, untested */
+#define MX330_PID 0x1737    /* TBD, untested */
 #define MX860_PID UNKNOWN_PID    /* TBD, untested */

=============

Has bug.  I'm used to autodetect width and height feature of scanner. 
Here is the output of scanimage -h, which plainly says it is supported:

===============

Usage: scanimage [OPTION]...

Start image acquisition on a scanner device and write image data to
standard output.

Parameters are separated by a blank from single-character options (e.g.
-d epson) and by a "=" from multi-character options (e.g.
--device-name=epson).
-d, --device-name=DEVICE   use a given scanner device (e.g. hp:/dev/scanner)
    --format=pnm|tiff      file format of output file
-i, --icc-profile=PROFILE  include this ICC profile into TIFF file
-L, --list-devices         show available scanner devices
-f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the
output
                           can be specified: %d (device name), %v (vendor),
                           %m (model), %t (type), %i (index number), and
                           %n (newline)
-b, --batch[=FORMAT]       working in batch mode, FORMAT is `out%d.pnm' or
                           `out%d.tif' by default depending on --format
    --batch-start=#        page number to start naming files with
    --batch-count=#        how many pages to scan in batch mode
    --batch-increment=#    increase page number in filename by #
    --batch-double         increment page number by two, same as
                           --batch-increment=2
    --batch-prompt         ask for pressing a key before scanning a page
    --accept-md5-only      only accept authorization requests using md5
-p, --progress             print progress messages
-n, --dont-scan            only set options, don't actually scan
-T, --test                 test backend thoroughly
-h, --help                 display this help message and exit
-v, --verbose              give even more status messages
-B, --buffer-size=#        change input buffer size (in kB, default 32)
-V, --version              print version information

Options specific to device `mx330':
  Scan mode:
    --resolution auto||75|150|300|600|1200dpi [75]
        Sets the resolution of the scanned image.
    --mode auto|Color|Gray [Color]
        Selects the scan mode (e.g., lineart, monochrome, or color).
    --source Flatbed|Automatic Document Feeder [Flatbed]
        Selects the scan source (such as a document-feeder).
    --button-controlled[=(yes|no)] [no]
        When enabled, scan process will not start immediately. To proceed,
        press "SCAN" button (for MP150) or "COLOR" button (for other models).
        To cancel, press "GRAY" button.
  Gamma:
    --custom-gamma[=(auto|yes|no)] [yes]
        Determines whether a builtin or a custom gamma-table should be used.
    --gamma-table auto|0..255,...
        Gamma-correction table.  In color mode this option equally affects
the
        red, green, and blue channels simultaneously (i.e., it is an
intensity
        gamma table).
  Geometry:
    -l auto|0..216.069mm [0]
        Top-left x position of scan area.
    -t auto|0..355.6mm [0]
        Top-left y position of scan area.
    -x auto|0..216.069mm [216.069]
        Width of scan-area.
    -y auto|0..355.6mm [355.6]
        Height of scan-area.
  Buttons:
    --button-update
        Update button state
    --button-1 <int> [0]
        Button 1
    --button-2 <int> [0]
        Button 2

Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

List of available devices:
    pixma:04A91737

=============

As you can see above, -l, -t, -x, and -y take an option "auto".  However,
when submitting those arguments, it only works for -l and -t, not for -x
and -y; it gives the following error:

$ scanimage --format pnm --resolution 600 --mode Color --source Flatbed
--button-controlled=no -l auto -t auto -x auto -y auto > output.pnm
scanimage: option --x: bad option value (rest of option: auto)
$

It gives no error if I specify numbers which I have to measure and
calculate myself (tedious and time consuming and error-prone) for -x and
-y.  Why doesn't auto work?  That's a bug.  Perhaps your code is
intentionally not taking device-specific options for -x and -y values?

I am not sure the bug is that bad, though, since I tested -l auto and -t
auto, and they do not work as expected; they are simply ignored.  Oh well.
 So the bug is not so bad?

Data (e.g. sane-find-scanner -v -v)

This is sane-find-scanner from sane-backends 1.0.20

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

searching for SCSI scanners:
checking /dev/scanner... failed to open (Invalid argument)
checking /dev/sg0... failed to open (Invalid argument)
checking /dev/sg1... failed to open (Invalid argument)
checking /dev/sg2... failed to open (Invalid argument)
checking /dev/sg3... failed to open (Invalid argument)
checking /dev/sg4... failed to open (Invalid argument)
checking /dev/sg5... failed to open (Invalid argument)
checking /dev/sg6... failed to open (Invalid argument)
checking /dev/sg7... failed to open (Invalid argument)
checking /dev/sg8... failed to open (Invalid argument)
checking /dev/sg9... failed to open (Invalid argument)
checking /dev/sga... failed to open (Invalid argument)
checking /dev/sgb... failed to open (Invalid argument)
checking /dev/sgc... failed to open (Invalid argument)
checking /dev/sgd... failed to open (Invalid argument)
checking /dev/sge... failed to open (Invalid argument)
checking /dev/sgf... failed to open (Invalid argument)
checking /dev/sgg... failed to open (Invalid argument)
checking /dev/sgh... failed to open (Invalid argument)
checking /dev/sgi... failed to open (Invalid argument)
checking /dev/sgj... failed to open (Invalid argument)
checking /dev/sgk... failed to open (Invalid argument)
checking /dev/sgl... failed to open (Invalid argument)
checking /dev/sgm... failed to open (Invalid argument)
checking /dev/sgn... failed to open (Invalid argument)
checking /dev/sgo... failed to open (Invalid argument)
checking /dev/sgp... failed to open (Invalid argument)
checking /dev/sgq... failed to open (Invalid argument)
checking /dev/sgr... failed to open (Invalid argument)
checking /dev/sgs... failed to open (Invalid argument)
checking /dev/sgt... failed to open (Invalid argument)
checking /dev/sgu... failed to open (Invalid argument)
checking /dev/sgv... failed to open (Invalid argument)
checking /dev/sgw... failed to open (Invalid argument)
checking /dev/sgx... failed to open (Invalid argument)
checking /dev/sgy... failed to open (Invalid argument)
checking /dev/sgz... failed to open (Invalid argument)
  # No SCSI scanners found. If you expected something different, make sure
that
  # you have loaded a kernel SCSI driver for your SCSI adapter.

searching for USB scanners:
checking /dev/usb/scanner... failed to open (Invalid argument)
checking /dev/usb/scanner0... failed to open (Invalid argument)
checking /dev/usb/scanner1... failed to open (Invalid argument)
checking /dev/usb/scanner2... failed to open (Invalid argument)
checking /dev/usb/scanner3... failed to open (Invalid argument)
checking /dev/usb/scanner4... failed to open (Invalid argument)
checking /dev/usb/scanner5... failed to open (Invalid argument)
checking /dev/usb/scanner5... failed to open (Invalid argument)
checking /dev/usb/scanner7... failed to open (Invalid argument)
checking /dev/usb/scanner8... failed to open (Invalid argument)
checking /dev/usb/scanner9... failed to open (Invalid argument)
checking /dev/usb/scanner10... failed to open (Invalid argument)
checking /dev/usb/scanner11... failed to open (Invalid argument)
checking /dev/usb/scanner12... failed to open (Invalid argument)
checking /dev/usb/scanner13... failed to open (Invalid argument)
checking /dev/usb/scanner14... failed to open (Invalid argument)
checking /dev/usb/scanner15... failed to open (Invalid argument)
checking /dev/usbscanner... failed to open (Invalid argument)
checking /dev/usbscanner0... failed to open (Invalid argument)
checking /dev/usbscanner1... failed to open (Invalid argument)
checking /dev/usbscanner2... failed to open (Invalid argument)
checking /dev/usbscanner3... failed to open (Invalid argument)
checking /dev/usbscanner4... failed to open (Invalid argument)
checking /dev/usbscanner5... failed to open (Invalid argument)
checking /dev/usbscanner6... failed to open (Invalid argument)
checking /dev/usbscanner7... failed to open (Invalid argument)
checking /dev/usbscanner8... failed to open (Invalid argument)
checking /dev/usbscanner9... failed to open (Invalid argument)
checking /dev/usbscanner10... failed to open (Invalid argument)
checking /dev/usbscanner11... failed to open (Invalid argument)
checking /dev/usbscanner12... failed to open (Invalid argument)
checking /dev/usbscanner13... failed to open (Invalid argument)
checking /dev/usbscanner14... failed to open (Invalid argument)
checking /dev/usbscanner15... failed to open (Invalid argument)
trying libusb:

[...]

<device descriptor of 0x04a9/0x1737 at 002:019 (Canon MX330 series)>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          0
bDeviceSubClass       0
bDeviceProtocol       0
bMaxPacketSize0       64
idVendor              0x04A9
idProduct             0x1737
bcdDevice             1.02
iManufacturer         1 (Canon)
iProduct              2 (MX330 series)
iSerialNumber         3 (10C864)
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         85
 bNumInterfaces       3
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         192 (Self-powered)
 MaxPower             2 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      3
   bInterfaceClass    255
   bInterfaceSubClass 0
   bInterfaceProtocol 255
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x07 (out 0x07)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x88 (in 0x08)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 2>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x89 (in 0x09)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    64
    bInterval         11 ms
    bRefresh          0
    bSynchAddress     0
  <interface 1>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  0
   bNumEndpoints      2
   bInterfaceClass    7
   bInterfaceSubClass 1
   bInterfaceProtocol 2
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x01 (out 0x01)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x82 (in 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
  <interface 2>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   2
   bAlternateSetting  0
   bNumEndpoints      2
   bInterfaceClass    7
   bInterfaceSubClass 1
   bInterfaceProtocol 2
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x0A (out 0x0A)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x8B (in 0x0B)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0

<trying to find out which USB chip is used>
    checking for GT-6801 ...
    this is not a GT-6801 (bDeviceClass = 0)
    checking for GT-6816 ...
    this is not a GT-6816 (bcdUSB = 0x200)
    checking for GT-8911 ...
    this is not a GT-8911 (check 2, bcdUSB = 0x200)
    checking for MA-1017 ...
    this is not a MA-1017 (bDeviceClass = 0, bInterfaceClass = 255)
    checking for MA-1015 ...
    this is not a MA-1015 (bDeviceClass = 0)
    checking for MA-1509 ...
    this is not a MA-1509 (bDeviceClass = 0)
    checking for LM983[1,2,3] ...
    this is not a LM983x (bcdUSB = 0x200)
    checking for GL646 ...
    this is not a GL646 (bDeviceClass = 0, bInterfaceClass = 255)
    checking for GL646_HP ...
    this is not a GL646_HP (bDeviceClass = 0, bInterfaceClass = 255)
    checking for GL660+GL646 ...
    this is not a GL660+GL646 (bDeviceClass = 0, bInterfaceClass = 255)
    checking for GL84x ...
    this is not a GL841 (bDeviceClass = 0, bInterfaceClass = 255)
    checking for ICM532B ...
    this is not a ICM532B (check 1, bDeviceClass = 0, bInterfaceClass = 255)
    checking for PV8630/LM9830 ...
    this is not a PV8630/LM9830 (bcdUSB = 0x200)
    checking for M011 ...
    this is not a M011 (bDeviceClass = 0)
    checking for RTS8822 ...
    this is not a RTS8822 (bEndpointAddress = 0x7, bmAttributes = 0x2,
wMaxPacketSize = 0x200, bInterval = 0x0)
    checking for rts8858c ...
    this is not a rts8858c (bcdUSB = 0x200)
    checking for SQ113 ...
    this is not a SQ113 (bInterfaceSubClass = 0)
    checking for HP5550/5590/7650 chipset ...
    this is not a HP5550/5590/7650 chipset (bDeviceClass = 0)
    checking for rts8801/rts8891 ...
    this is not a rts8801/rts8891 (bcdUSB = 0x200)
<Couldn't determine the type of the USB chip (result from sane-backends
1.0.20)>

found USB scanner (vendor=0x04a9 [Canon], product=0x1737 [MX330 series])
at libusb:002:019

<device descriptor of 0x0b95/0x7720 at 002:008>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          255
bDeviceSubClass       255
bDeviceProtocol       0
bMaxPacketSize0       64
idVendor              0x0B95
idProduct             0x7720
bcdDevice             0.01
iManufacturer         1 ()
iProduct              2 ()
iSerialNumber         3 ()
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         39
 bNumInterfaces       1
 bConfigurationValue  1
 iConfiguration       4 ()
 bmAttributes         128 ()
 MaxPower             250 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      3
   bInterfaceClass    255
   bInterfaceSubClass 255
   bInterfaceProtocol 0
   iInterface         7 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x81 (in 0x01)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    8
    bInterval         11 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x82 (in 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 2>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0

<trying to find out which USB chip is used>
    checking for GT-6801 ...
    this is not a GT-6801 (bcdUSB = 0x200)
    checking for GT-6816 ...
    this is not a GT-6816 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for GT-8911 ...
    this is not a GT-8911 (check 1, bDeviceClass = 255, bInterfaceClass =
255)
    checking for MA-1017 ...
    this is not a MA-1017 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for MA-1015 ...
    this is not a MA-1015 (bcdUSB = 0x200)
    checking for MA-1509 ...
    this is not a MA-1509 (bcdUSB = 0x200)
    checking for LM983[1,2,3] ...
    this is not a LM983x (bcdUSB = 0x200)
    checking for GL646 ...
    this is not a GL646 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for GL646_HP ...
    this is not a GL646_HP (bcdUSB = 0x200)
    checking for GL660+GL646 ...
    this is not a GL660+GL646 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for GL84x ...
    this is not a GL841 (bDeviceProtocol = 0x0)
    checking for ICM532B ...
    this is not a ICM532B (check 2, bcdUSB = 0x200)
    checking for PV8630/LM9830 ...
    this is not a PV8630/LM9830 (bDeviceClass = 255)
    checking for M011 ...
    this is not a M011 (bcdUSB = 0x200)
    checking for RTS8822 ...
    this is not a RTS8822 (bDeviceClass = 255)
    checking for rts8858c ...
    this is not a rts8858c (bDeviceClass = 255)
    checking for SQ113 ...
    this is not a SQ113 (bDeviceClass = 255)
    checking for HP5550/5590/7650 chipset ...
    this is not a HP5550/5590/7650 chipset (bDeviceProtocol = 0x0)
    checking for rts8801/rts8891 ...
    this is not a rts8801/rts8891 (bDeviceClass = 255)
<Couldn't determine the type of the USB chip (result from sane-backends
1.0.20)>

found USB scanner (vendor=0x0b95, product=0x7720) at libusb:002:008

<device descriptor of 0x0a12/0x0001 at 002:007>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          224
bDeviceSubClass       1
bDeviceProtocol       1
bMaxPacketSize0       64
idVendor              0x0A12
idProduct             0x0001
bcdDevice             72.39
iManufacturer         0 ()
iProduct              0 ()
iSerialNumber         0 ()
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         177
 bNumInterfaces       2
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         224 (Self-poweredRemote Wakeup)
 MaxPower             0 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      3
   bInterfaceClass    224
   bInterfaceSubClass 1
   bInterfaceProtocol 1
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x81 (in 0x01)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    16
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x02 (out 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    64
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 2>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x82 (in 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    64
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
  <interface 1>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  0
   bNumEndpoints      2
   bInterfaceClass    224
   bInterfaceSubClass 1
   bInterfaceProtocol 1
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    0
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x83 (in 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    0
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
   <altsetting 1>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  1
   bNumEndpoints      2
   bInterfaceClass    224
   bInterfaceSubClass 1
   bInterfaceProtocol 1
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    9
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x83 (in 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    9
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
   <altsetting 2>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  2
   bNumEndpoints      2
   bInterfaceClass    224
   bInterfaceSubClass 1
   bInterfaceProtocol 1
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    17
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x83 (in 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    17
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
   <altsetting 3>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  3
   bNumEndpoints      2
   bInterfaceClass    224
   bInterfaceSubClass 1
   bInterfaceProtocol 1
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    25
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x83 (in 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    25
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
   <altsetting 4>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  4
   bNumEndpoints      2
   bInterfaceClass    224
   bInterfaceSubClass 1
   bInterfaceProtocol 1
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    33
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x83 (in 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    33
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
   <altsetting 5>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   1
   bAlternateSetting  5
   bNumEndpoints      2
   bInterfaceClass    224
   bInterfaceSubClass 1
   bInterfaceProtocol 1
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x03 (out 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    49
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x83 (in 0x03)
    bmAttributes      1 (isochronous)
    wMaxPacketSize    49
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0

<device descriptor of 0x05e3/0x0605 at 002:002 (USB2.0 Hub)>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          9
bDeviceSubClass       0
bDeviceProtocol       1
bMaxPacketSize0       64
idVendor              0x05E3
idProduct             0x0605
bcdDevice             6.011
iManufacturer         0 ()
iProduct              1 (USB2.0 Hub)
iSerialNumber         0 ()
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         25
 bNumInterfaces       1
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         224 (Self-poweredRemote Wakeup)
 MaxPower             100 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      1
   bInterfaceClass    9
   bInterfaceSubClass 0
   bInterfaceProtocol 0
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x81 (in 0x01)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    1
    bInterval         12 ms
    bRefresh          0
    bSynchAddress     0

<device descriptor of 0x0b05/0x1704 at 002:003 (ASUSTek. USB Mass Storage
Device)>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          0
bDeviceSubClass       0
bDeviceProtocol       0
bMaxPacketSize0       64
idVendor              0x0B05
idProduct             0x1704
bcdDevice             0.01
iManufacturer         1 (ASUSTek.)
iProduct              2 (USB Mass Storage Device)
iSerialNumber         3 (00019BD3)
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         32
 bNumInterfaces       1
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         192 (Self-powered)
 MaxPower             100 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      2
   bInterfaceClass    8
   bInterfaceSubClass 6
   bInterfaceProtocol 80
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x01 (out 0x01)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x82 (in 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0

<device descriptor of 0x0ace/0x1215 at 002:006 (ZyDAS USB2.0 WLAN)>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          255
bDeviceSubClass       255
bDeviceProtocol       255
bMaxPacketSize0       64
idVendor              0x0ACE
idProduct             0x1215
bcdDevice             72.10
iManufacturer         16 (ZyDAS)
iProduct              32 (USB2.0 WLAN)
iSerialNumber         0 ()
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         46
 bNumInterfaces       1
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         128 ()
 MaxPower             500 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      4
   bInterfaceClass    255
   bInterfaceSubClass 0
   bInterfaceProtocol 0
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x01 (out 0x01)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 1>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x82 (in 0x02)
    bmAttributes      2 (bulk)
    wMaxPacketSize    512
    bInterval         0 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 2>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x83 (in 0x03)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    64
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0
    <endpoint 3>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x04 (out 0x04)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    64
    bInterval         1 ms
    bRefresh          0
    bSynchAddress     0

<trying to find out which USB chip is used>
    checking for GT-6801 ...
    this is not a GT-6801 (bcdUSB = 0x200)
    checking for GT-6816 ...
    this is not a GT-6816 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for GT-8911 ...
    this is not a GT-8911 (check 1, bDeviceClass = 255, bInterfaceClass =
255)
    checking for MA-1017 ...
    this is not a MA-1017 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for MA-1015 ...
    this is not a MA-1015 (bcdUSB = 0x200)
    checking for MA-1509 ...
    this is not a MA-1509 (bcdUSB = 0x200)
    checking for LM983[1,2,3] ...
    this is not a LM983x (bcdUSB = 0x200)
    checking for GL646 ...
    this is not a GL646 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for GL646_HP ...
    this is not a GL646_HP (bcdUSB = 0x200)
    checking for GL660+GL646 ...
    this is not a GL660+GL646 (bDeviceClass = 255, bInterfaceClass = 255)
    checking for GL84x ...
    this is not a GL841 (bNumEndpoints = 4)
    checking for ICM532B ...
    this is not a ICM532B (check 2, bcdUSB = 0x200)
    checking for PV8630/LM9830 ...
    this is not a PV8630/LM9830 (bDeviceClass = 255)
    checking for M011 ...
    this is not a M011 (bcdUSB = 0x200)
    checking for RTS8822 ...
    this is not a RTS8822 (bDeviceClass = 255)
    checking for rts8858c ...
    this is not a rts8858c (bDeviceClass = 255)
    checking for SQ113 ...
    this is not a SQ113 (bDeviceClass = 255)
    checking for HP5550/5590/7650 chipset ...
    this is not a HP5550/5590/7650 chipset (bNumEndpoints = 4)
    checking for rts8801/rts8891 ...
    this is not a rts8801/rts8891 (bDeviceClass = 255)
<Couldn't determine the type of the USB chip (result from sane-backends
1.0.20)>

found USB scanner (vendor=0x0ace [ZyDAS], product=0x1215 [USB2.0 WLAN]) at
libusb:002:006

<device descriptor of 0x1d6b/0x0002 at 002:001 (Linux 2.6.29.6-rt23ulmo
ehci_hcd EHCI Host Controller)>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          9
bDeviceSubClass       0
bDeviceProtocol       0
bMaxPacketSize0       64
idVendor              0x1D6B
idProduct             0x0002
bcdDevice             2.06
iManufacturer         3 (Linux 2.6.29.6-rt23ulmo ehci_hcd)
iProduct              2 (EHCI Host Controller)
iSerialNumber         1 (0000:00:1d.7)
bNumConfigurations    1
 <configuration 0>
 bLength              9
 bDescriptorType      2
 wTotalLength         25
 bNumInterfaces       1
 bConfigurationValue  1
 iConfiguration       0 ()
 bmAttributes         224 (Self-poweredRemote Wakeup)
 MaxPower             0 mA
  <interface 0>
   <altsetting 0>
   bLength            9
   bDescriptorType    4
   bInterfaceNumber   0
   bAlternateSetting  0
   bNumEndpoints      1
   bInterfaceClass    9
   bInterfaceSubClass 0
   bInterfaceProtocol 0
   iInterface         0 ()
    <endpoint 0>
    bLength           7
    bDescriptorType   5
    bEndpointAddress  0x81 (in 0x01)
    bmAttributes      3 (interrupt)
    wMaxPacketSize    4
    bInterval         12 ms
    bRefresh          0
    bSynchAddress     0
  # Your USB scanner was (probably) detected. It may or may not be
supported by
  # SANE. Try scanimage -L and read the backend's manpage.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.
done





More information about the sane-devel mailing list