Aurelien Jarno wrote:
>> # lsusb -v
>>
>> cannot read device status, Protocol error (71)
> 
> Strange that you also get this error with libusb.
> 
> Could you please run "strace lsusb -v" and send me the result?

# strace lsusb -v

execve("/usr/sbin/lsusb", ["lsusb", "-v"], [/* 18 vars */]) = 0
uname({sys="Linux", node="zion", ...})  = 0
brk(0)                                  = 0x805c000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f48000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f47000
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=30579, ...}) = 0
mmap2(NULL, 30579, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f3f000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/usr/lib/libz.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\26"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=78500, ...}) = 0
mmap2(NULL, 81456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7f2b000
mmap2(0xb7f3e000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12) = 0xb7f3e000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/lib/libusb-0.1.so.4", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\22"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=28996, ...}) = 0
mmap2(NULL, 32024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7f23000
mmap2(0xb7f29000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5) = 0xb7f29000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1245676, ...}) = 0
mmap2(NULL, 1251484, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0xb7df1000
mmap2(0xb7f19000, 28672, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x128) = 0xb7f19000
mmap2(0xb7f20000, 10396, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f20000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7df0000
mprotect(0xb7f19000, 20480, PROT_READ)  = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7df06c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f3f000, 30579)               = 0
brk(0)                                  = 0x805c000
brk(0x807d000)                          = 0x807d000
open("./usb.ids", O_RDONLY)             = -1 ENOENT (No such file or
directory)
open("/var/lib/usbutils/usb.ids", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=58036, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f46000
read(3, "\37\213\10\0\0\0\0\0\2\3\214}\353r\333H\222\356o\373)j"...,
16384) = 16384
_llseek(3, 0, [16384], SEEK_CUR)        = 0
read(3, "[EMAIL PROTECTED]"...,
16384) = 16384
brk(0x809e000)                          = 0x809e000
read(3, "^\356\252\234t\230\17\374eqX\271X>\34B\323\234\313\20\375"...,
16384) = 16384
read(3, "2\214\10\226\224W\301_y\314k\6\361\313G\303_\271\377\257"...,
16384) = 8884
read(3, "", 4096)                       = 0
brk(0x80bf000)                          = 0x80bf000
read(3, "", 16384)                      = 0
close(3)                                = 0
munmap(0xb7f46000, 4096)                = 0
open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 3 entries */, 4096)    = 72
close(3)                                = 0
open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 3 entries */, 4096)    = 72
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
open("/dev/bus/usb/001", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 6 entries */, 4096)    = 144
open("/dev/bus/usb/001/004", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0xbfb5c1e4) = 0
read(4, "\22\1\0\1\0\0\0\10\251\4\6\"[EMAIL PROTECTED]", 18) = 18
read(4, "\t\2\'\0\1\1\0\200", 8)        = 8
read(4, "\372\t\4\0\0\3\377\0\377\0\7\5\201\3\1\0\20\7\5\202\2@"..., 31)
= 31
close(4)                                = 0
open("/dev/bus/usb/001/003", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0xbfb5c1e4) = 0
read(4, "\22\1\0\2\0\0\0\10\371\4\'\0\0\1\1\2\3\1", 18) = 18
read(4, "\t\2 \0\1\1\0\300", 8)         = 8
read(4, "[EMAIL PROTECTED]", 24) = 24
close(4)                                = 0
open("/dev/bus/usb/001/002", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0xbfb5c1e4) = 0
read(4, "[EMAIL PROTECTED]", 18) = 18
read(4, "\t\2\31\0\1\1\0\340", 8)       = 8
read(4, "2\t\4\0\0\1\t\0\0\0\7\5\201\3\1\0\377", 17) = 17
close(4)                                = 0
open("/dev/bus/usb/001/001", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0xbfb5c1e4) = 0
read(4, "[EMAIL PROTECTED]", 18) = 18
read(4, "\t\2\31\0\1\1\0\300", 8)       = 8
read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\2\0\377", 17) = 17
close(4)                                = 0
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
open("/dev/bus/usb/001/004", O_RDWR)    = 3
ioctl(3, USBDEVFS_IOCTL, 0xbfb5c1e0)    = -1 ENOTTY (Inappropriate ioctl
for device)
close(3)                                = 0
open("/dev/bus/usb/001/003", O_RDWR)    = 3
ioctl(3, USBDEVFS_IOCTL, 0xbfb5c1e0)    = -1 ENOTTY (Inappropriate ioctl
for device)
close(3)                                = 0
open("/dev/bus/usb/001/002", O_RDWR)    = 3
ioctl(3, USBDEVFS_IOCTL, 0xbfb5c1e0)    = 5
close(3)                                = 0
open("/dev/bus/usb/001/001", O_RDWR)    = 3
ioctl(3, USBDEVFS_IOCTL, 0xbfb5c1e0)    = 3
close(3)                                = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7f46000
write(1, "\n", 1
)                       = 1
write(1, "Bus 001 Device 004: ID 04a9:2206"..., 66Bus 001 Device 004: ID
04a9:2206 Canon, Inc. CanoScan N650U/N656U
) = 66
open("/dev/bus/usb/001/004", O_RDWR)    = 3
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = -1 EPROTO (Protocol error)
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = -1 EPROTO (Protocol error)
write(1, "Device Descriptor:\n", 19Device Descriptor:
)    = 19
write(1, "  bLength                18\n", 28  bLength                18
) = 28
write(1, "  bDescriptorType         1\n", 28  bDescriptorType         1
) = 28
write(1, "  bcdUSB               1.00\n", 28  bcdUSB               1.00
) = 28
write(1, "  bDeviceClass            0 (Def"..., 57  bDeviceClass
    0 (Defined at Interface level)
) = 57
write(1, "  bDeviceSubClass         0 \n", 29  bDeviceSubClass         0
) = 29
write(1, "  bDeviceProtocol         0 \n", 29  bDeviceProtocol         0
) = 29
write(1, "  bMaxPacketSize0         8\n", 28  bMaxPacketSize0         8
) = 28
write(1, "  idVendor           0x04a9 Cano"..., 40  idVendor
0x04a9 Canon, Inc.
) = 40
write(1, "  idProduct          0x2206 Cano"..., 49  idProduct
0x2206 CanoScan N650U/N656U
) = 49
write(1, "  bcdDevice            1.00\n", 28  bcdDevice            1.00
) = 28
write(1, "  iManufacturer          64 \n", 29  iManufacturer          64
) = 29
write(1, "  iProduct               77 \n", 29  iProduct               77
) = 29
write(1, "  iSerial                 0 \n", 29  iSerial                 0
) = 29
write(1, "  bNumConfigurations      1\n", 28  bNumConfigurations      1
) = 28
write(1, "  Configuration Descriptor:\n", 28  Configuration Descriptor:
) = 28
write(1, "    bLength                 9\n", 30    bLength                 9
) = 30
write(1, "    bDescriptorType         2\n", 30    bDescriptorType         2
) = 30
write(1, "    wTotalLength           39\n", 30    wTotalLength           39
) = 30
write(1, "    bNumInterfaces          1\n", 30    bNumInterfaces          1
) = 30
write(1, "    bConfigurationValue     1\n", 30    bConfigurationValue     1
) = 30
write(1, "    iConfiguration          0 \n", 31    iConfiguration          0
) = 31
write(1, "    bmAttributes         0x80\n", 30    bmAttributes         0x80
) = 30
write(1, "      (Bus Powered)\n", 20      (Bus Powered)
)   = 20
write(1, "    MaxPower              500mA\n", 32    MaxPower
  500mA
) = 32
write(1, "    Interface Descriptor:\n", 26    Interface Descriptor:
) = 26
write(1, "      bLength                 9\n", 32      bLength
      9
) = 32
write(1, "      bDescriptorType         4\n", 32      bDescriptorType
      4
) = 32
write(1, "      bInterfaceNumber        0\n", 32      bInterfaceNumber
      0
) = 32
write(1, "      bAlternateSetting       0\n", 32      bAlternateSetting
      0
) = 32
write(1, "      bNumEndpoints           3\n", 32      bNumEndpoints
      3
) = 32
write(1, "      bInterfaceClass       255 "..., 54      bInterfaceClass
      255 Vendor Specific Class
) = 54
write(1, "      bInterfaceSubClass      0 "..., 33
bInterfaceSubClass      0
) = 33
write(1, "      bInterfaceProtocol    255 "..., 33
bInterfaceProtocol    255
) = 33
write(1, "      iInterface              0 "..., 33      iInterface
        0
) = 33
write(1, "      Endpoint Descriptor:\n", 27      Endpoint Descriptor:
) = 27
write(1, "        bLength                 "..., 34        bLength
          7
) = 34
write(1, "        bDescriptorType         "..., 34
bDescriptorType         5
) = 34
write(1, "        bEndpointAddress     0x8"..., 43
bEndpointAddress     0x81  EP 1 IN
) = 43
write(1, "        bmAttributes            "..., 34        bmAttributes
          3
) = 34
write(1, "          Transfer Type         "..., 45          Transfer
Type            Interrupt
) = 45
write(1, "          Synch Type            "..., 40          Synch Type
             None
) = 40
write(1, "          Usage Type            "..., 40          Usage Type
             Data
) = 40
write(1, "        wMaxPacketSize     0x000"..., 46        wMaxPacketSize
    0x0001  1x 1 bytes
) = 46
write(1, "        bInterval              1"..., 34        bInterval
         16
) = 34
write(1, "      Endpoint Descriptor:\n", 27      Endpoint Descriptor:
) = 27
write(1, "        bLength                 "..., 34        bLength
          7
) = 34
write(1, "        bDescriptorType         "..., 34
bDescriptorType         5
) = 34
write(1, "        bEndpointAddress     0x8"..., 43
bEndpointAddress     0x82  EP 2 IN
) = 43
write(1, "        bmAttributes            "..., 34        bmAttributes
          2
) = 34
write(1, "          Transfer Type         "..., 40          Transfer
Type            Bulk
) = 40
write(1, "          Synch Type            "..., 40          Synch Type
             None
) = 40
write(1, "          Usage Type            "..., 40          Usage Type
             Data
) = 40
write(1, "        wMaxPacketSize     0x004"..., 47        wMaxPacketSize
    0x0040  1x 64 bytes
) = 47
write(1, "        bInterval               "..., 34        bInterval
          0
) = 34
write(1, "      Endpoint Descriptor:\n", 27      Endpoint Descriptor:
) = 27
write(1, "        bLength                 "..., 34        bLength
          7
) = 34
write(1, "        bDescriptorType         "..., 34
bDescriptorType         5
) = 34
write(1, "        bEndpointAddress     0x0"..., 44
bEndpointAddress     0x03  EP 3 OUT
) = 44
write(1, "        bmAttributes            "..., 34        bmAttributes
          2
) = 34
write(1, "          Transfer Type         "..., 40          Transfer
Type            Bulk
) = 40
write(1, "          Synch Type            "..., 40          Synch Type
             None
) = 40
write(1, "          Usage Type            "..., 40          Usage Type
             Data
) = 40
write(1, "        wMaxPacketSize     0x004"..., 47        wMaxPacketSize
    0x0040  1x 64 bytes
) = 47
write(1, "        bInterval               "..., 34        bInterval
          0
) = 34
ioctl(3, USBDEVFS_CONTROL, 0xbfb5c03c)  = -1 EPROTO (Protocol error)
write(2, "cannot read device status, Proto"..., 47cannot read device
status, Protocol error (71)
) = 47
close(3)                                = 0
write(1, "\n", 1
)                       = 1
write(1, "Bus 001 Device 003: ID 04f9:0027"..., 58Bus 001 Device 003: ID
04f9:0027 Brother Industries, Ltd
) = 58
open("/dev/bus/usb/001/003", O_RDWR)    = 3
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 4
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 16
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 4
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 30
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 4
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 20
write(1, "Device Descriptor:\n", 19Device Descriptor:
)    = 19
write(1, "  bLength                18\n", 28  bLength                18
) = 28
write(1, "  bDescriptorType         1\n", 28  bDescriptorType         1
) = 28
write(1, "  bcdUSB               2.00\n", 28  bcdUSB               2.00
) = 28
write(1, "  bDeviceClass            0 (Def"..., 57  bDeviceClass
    0 (Defined at Interface level)
) = 57
write(1, "  bDeviceSubClass         0 \n", 29  bDeviceSubClass         0
) = 29
write(1, "  bDeviceProtocol         0 \n", 29  bDeviceProtocol         0
) = 29
write(1, "  bMaxPacketSize0         8\n", 28  bMaxPacketSize0         8
) = 28
write(1, "  idVendor           0x04f9 Brot"..., 52  idVendor
0x04f9 Brother Industries, Ltd
) = 52
write(1, "  idProduct          0x0027 \n", 29  idProduct          0x0027
) = 29
write(1, "  bcdDevice            1.00\n", 28  bcdDevice            1.00
) = 28
write(1, "  iManufacturer           1 Brot"..., 36  iManufacturer
    1 Brother
) = 36
write(1, "  iProduct                2 HL-2"..., 43  iProduct
    2 HL-2030 series
) = 43
write(1, "  iSerial                 3 D5J7"..., 38  iSerial
    3 D5J784726
) = 38
write(1, "  bNumConfigurations      1\n", 28  bNumConfigurations      1
) = 28
write(1, "  Configuration Descriptor:\n", 28  Configuration Descriptor:
) = 28
write(1, "    bLength                 9\n", 30    bLength                 9
) = 30
write(1, "    bDescriptorType         2\n", 30    bDescriptorType         2
) = 30
write(1, "    wTotalLength           32\n", 30    wTotalLength           32
) = 30
write(1, "    bNumInterfaces          1\n", 30    bNumInterfaces          1
) = 30
write(1, "    bConfigurationValue     1\n", 30    bConfigurationValue     1
) = 30
write(1, "    iConfiguration          0 \n", 31    iConfiguration          0
) = 31
write(1, "    bmAttributes         0xc0\n", 30    bmAttributes         0xc0
) = 30
write(1, "      Self Powered\n", 19      Self Powered
)    = 19
write(1, "    MaxPower                2mA\n", 32    MaxPower
    2mA
) = 32
write(1, "    Interface Descriptor:\n", 26    Interface Descriptor:
) = 26
write(1, "      bLength                 9\n", 32      bLength
      9
) = 32
write(1, "      bDescriptorType         4\n", 32      bDescriptorType
      4
) = 32
write(1, "      bInterfaceNumber        0\n", 32      bInterfaceNumber
      0
) = 32
write(1, "      bAlternateSetting       0\n", 32      bAlternateSetting
      0
) = 32
write(1, "      bNumEndpoints           2\n", 32      bNumEndpoints
      2
) = 32
write(1, "      bInterfaceClass         7 "..., 40      bInterfaceClass
        7 Printer
) = 40
write(1, "      bInterfaceSubClass      1 "..., 40
bInterfaceSubClass      1 Printer
) = 40
write(1, "      bInterfaceProtocol      2 "..., 46
bInterfaceProtocol      2 Bidirectional
) = 46
write(1, "      iInterface              0 "..., 33      iInterface
        0
) = 33
write(1, "      Endpoint Descriptor:\n", 27      Endpoint Descriptor:
) = 27
write(1, "        bLength                 "..., 34        bLength
          7
) = 34
write(1, "        bDescriptorType         "..., 34
bDescriptorType         5
) = 34
write(1, "        bEndpointAddress     0x0"..., 44
bEndpointAddress     0x01  EP 1 OUT
) = 44
write(1, "        bmAttributes            "..., 34        bmAttributes
          2
) = 34
write(1, "          Transfer Type         "..., 40          Transfer
Type            Bulk
) = 40
write(1, "          Synch Type            "..., 40          Synch Type
             None
) = 40
write(1, "          Usage Type            "..., 40          Usage Type
             Data
) = 40
write(1, "        wMaxPacketSize     0x004"..., 47        wMaxPacketSize
    0x0040  1x 64 bytes
) = 47
write(1, "        bInterval               "..., 34        bInterval
          0
) = 34
write(1, "      Endpoint Descriptor:\n", 27      Endpoint Descriptor:
) = 27
write(1, "        bLength                 "..., 34        bLength
          7
) = 34
write(1, "        bDescriptorType         "..., 34
bDescriptorType         5
) = 34
write(1, "        bEndpointAddress     0x8"..., 43
bEndpointAddress     0x82  EP 2 IN
) = 43
write(1, "        bmAttributes            "..., 34        bmAttributes
          2
) = 34
write(1, "          Transfer Type         "..., 40          Transfer
Type            Bulk
) = 40
write(1, "          Synch Type            "..., 40          Synch Type
             None
) = 40
write(1, "          Usage Type            "..., 40          Usage Type
             Data
) = 40
write(1, "        wMaxPacketSize     0x001"..., 47        wMaxPacketSize
    0x0010  1x 16 bytes
) = 47
write(1, "        bInterval               "..., 34        bInterval
          0
) = 34
ioctl(3, USBDEVFS_CONTROL, 0xbfb5be8c)  = -1 EPIPE (Broken pipe)
ioctl(3, USBDEVFS_CONTROL, 0xbfb5c03c)  = -1 EPIPE (Broken pipe)
ioctl(3, USBDEVFS_CONTROL, 0xbfb5c03c)  = 2
write(1, "Device Status:     0x0001\n", 26Device Status:     0x0001
) = 26
write(1, "  Self Powered\n", 15  Self Powered
)        = 15
close(3)                                = 0
write(1, "\n", 1
)                       = 1
write(1, "Bus 001 Device 002: ID 04b4:6560"..., 90Bus 001 Device 002: ID
04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
) = 90
open("/dev/bus/usb/001/002", O_RDWR)    = 3
write(1, "Device Descriptor:\n", 19Device Descriptor:
)    = 19
write(1, "  bLength                18\n", 28  bLength                18
) = 28
write(1, "  bDescriptorType         1\n", 28  bDescriptorType         1
) = 28
write(1, "  bcdUSB               2.00\n", 28  bcdUSB               2.00
) = 28
write(1, "  bDeviceClass            9 Hub\n", 32  bDeviceClass
  9 Hub
) = 32
write(1, "  bDeviceSubClass         0 Unus"..., 35  bDeviceSubClass
    0 Unused
) = 35
write(1, "  bDeviceProtocol         0 Full"..., 43  bDeviceProtocol
    0 Full speed hub
) = 43
write(1, "  bMaxPacketSize0        64\n", 28  bMaxPacketSize0        64
) = 28
write(1, "  idVendor           0x04b4 Cypr"..., 56  idVendor
0x04b4 Cypress Semiconductor Corp.
) = 56
write(1, "  idProduct          0x6560 CY7C"..., 57  idProduct
0x6560 CY7C65640 USB-2.0 "TetraHub"
) = 57
write(1, "  bcdDevice            0.0b\n", 28  bcdDevice            0.0b
) = 28
write(1, "  iManufacturer           0 \n", 29  iManufacturer           0
) = 29
write(1, "  iProduct                0 \n", 29  iProduct                0
) = 29
write(1, "  iSerial                 0 \n", 29  iSerial                 0
) = 29
write(1, "  bNumConfigurations      1\n", 28  bNumConfigurations      1
) = 28
write(1, "  Configuration Descriptor:\n", 28  Configuration Descriptor:
) = 28
write(1, "    bLength                 9\n", 30    bLength                 9
) = 30
write(1, "    bDescriptorType         2\n", 30    bDescriptorType         2
) = 30
write(1, "    wTotalLength           25\n", 30    wTotalLength           25
) = 30
write(1, "    bNumInterfaces          1\n", 30    bNumInterfaces          1
) = 30
write(1, "    bConfigurationValue     1\n", 30    bConfigurationValue     1
) = 30
write(1, "    iConfiguration          0 \n", 31    iConfiguration          0
) = 31
write(1, "    bmAttributes         0xe0\n", 30    bmAttributes         0xe0
) = 30
write(1, "      Self Powered\n", 19      Self Powered
)    = 19
write(1, "      Remote Wakeup\n", 20      Remote Wakeup
)   = 20
write(1, "    MaxPower              100mA\n", 32    MaxPower
  100mA
) = 32
write(1, "    Interface Descriptor:\n", 26    Interface Descriptor:
) = 26
write(1, "      bLength                 9\n", 32      bLength
      9
) = 32
write(1, "      bDescriptorType         4\n", 32      bDescriptorType
      4
) = 32
write(1, "      bInterfaceNumber        0\n", 32      bInterfaceNumber
      0
) = 32
write(1, "      bAlternateSetting       0\n", 32      bAlternateSetting
      0
) = 32
write(1, "      bNumEndpoints           1\n", 32      bNumEndpoints
      1
) = 32
write(1, "      bInterfaceClass         9 "..., 36      bInterfaceClass
        9 Hub
) = 36
write(1, "      bInterfaceSubClass      0 "..., 39
bInterfaceSubClass      0 Unused
) = 39
write(1, "      bInterfaceProtocol      0 "..., 47
bInterfaceProtocol      0 Full speed hub
) = 47
write(1, "      iInterface              0 "..., 33      iInterface
        0
) = 33
write(1, "      Endpoint Descriptor:\n", 27      Endpoint Descriptor:
) = 27
write(1, "        bLength                 "..., 34        bLength
          7
) = 34
write(1, "        bDescriptorType         "..., 34
bDescriptorType         5
) = 34
write(1, "        bEndpointAddress     0x8"..., 43
bEndpointAddress     0x81  EP 1 IN
) = 43
write(1, "        bmAttributes            "..., 34        bmAttributes
          3
) = 34
write(1, "          Transfer Type         "..., 45          Transfer
Type            Interrupt
) = 45
write(1, "          Synch Type            "..., 40          Synch Type
             None
) = 40
write(1, "          Usage Type            "..., 40          Usage Type
             Data
) = 40
write(1, "        wMaxPacketSize     0x000"..., 46        wMaxPacketSize
    0x0001  1x 1 bytes
) = 46
write(1, "        bInterval             25"..., 34        bInterval
        255
) = 34
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 9
write(1, "Hub Descriptor:\n", 16Hub Descriptor:
)       = 16
write(1, "  bLength               9\n", 26  bLength               9
) = 26
write(1, "  bDescriptorType      41\n", 26  bDescriptorType      41
) = 26
write(1, "  nNbrPorts             4\n", 26  nNbrPorts             4
) = 26
write(1, "  wHubCharacteristic 0x0089\n", 28  wHubCharacteristic 0x0089
) = 28
write(1, "    Per-port power switching\n", 29    Per-port power switching
) = 29
write(1, "    Per-port overcurrent protect"..., 36    Per-port
overcurrent protection
) = 36
write(1, "    Port indicators\n", 20    Port indicators
)   = 20
write(1, "  bPwrOn2PwrGood       50 * 2 mi"..., 44  bPwrOn2PwrGood
 50 * 2 milli seconds
) = 44
write(1, "  bHubContrCurrent    100 milli "..., 39  bHubContrCurrent
100 milli Ampere
) = 39
write(1, "  DeviceRemovable    0x00\n", 26  DeviceRemovable    0x00
) = 26
write(1, "  PortPwrCtrlMask    0xff\n", 26  PortPwrCtrlMask    0xff
) = 26
write(1, " Hub Port Status:\n", 18 Hub Port Status:
)     = 18
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 4
write(1, "   Port 1: 0000.0100 power\n", 27   Port 1: 0000.0100 power
) = 27
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 4
write(1, "   Port 2: 0000.0103 power enabl"..., 42   Port 2: 0000.0103
power enable connect
) = 42
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 4
write(1, "   Port 3: 0000.0103 power enabl"..., 42   Port 3: 0000.0103
power enable connect
) = 42
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 4
write(1, "   Port 4: 0000.0100 power\n", 27   Port 4: 0000.0100 power
) = 27
ioctl(3, USBDEVFS_CONTROL, 0xbfb5be8c)  = 10
write(1, "Device Qualifier (for other devi"..., 43Device Qualifier (for
other device speed):
) = 43
write(1, "  bLength                10\n", 28  bLength                10
) = 28
write(1, "  bDescriptorType         6\n", 28  bDescriptorType         6
) = 28
write(1, "  bcdUSB               2.00\n", 28  bcdUSB               2.00
) = 28
write(1, "  bDeviceClass            9 Hub\n", 32  bDeviceClass
  9 Hub
) = 32
write(1, "  bDeviceSubClass         0 Unus"..., 35  bDeviceSubClass
    0 Unused
) = 35
write(1, "  bDeviceProtocol         2 TT p"..., 40  bDeviceProtocol
    2 TT per port
) = 40
write(1, "  bMaxPacketSize0        64\n", 28  bMaxPacketSize0        64
) = 28
write(1, "  bNumConfigurations      1\n", 28  bNumConfigurations      1
) = 28
ioctl(3, USBDEVFS_CONTROL, 0xbfb5c03c)  = -1 EPIPE (Broken pipe)
ioctl(3, USBDEVFS_CONTROL, 0xbfb5c03c)  = 2
write(1, "Device Status:     0x0001\n", 26Device Status:     0x0001
) = 26
write(1, "  Self Powered\n", 15  Self Powered
)        = 15
close(3)                                = 0
write(1, "\n", 1
)                       = 1
write(1, "Bus 001 Device 001: ID 0000:0000"..., 35Bus 001 Device 001: ID
0000:0000
) = 35
open("/dev/bus/usb/001/001", O_RDWR)    = 3
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 4
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 45
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 4
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 43
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 4
ioctl(3, USBDEVFS_CONTROL, 0xbfb5ba6c)  = 27
write(1, "Device Descriptor:\n", 19Device Descriptor:
)    = 19
write(1, "  bLength                18\n", 28  bLength                18
) = 28
write(1, "  bDescriptorType         1\n", 28  bDescriptorType         1
) = 28
write(1, "  bcdUSB               1.10\n", 28  bcdUSB               1.10
) = 28
write(1, "  bDeviceClass            9 Hub\n", 32  bDeviceClass
  9 Hub
) = 32
write(1, "  bDeviceSubClass         0 Unus"..., 35  bDeviceSubClass
    0 Unused
) = 35
write(1, "  bDeviceProtocol         0 Full"..., 43  bDeviceProtocol
    0 Full speed hub
) = 43
write(1, "  bMaxPacketSize0        64\n", 28  bMaxPacketSize0        64
) = 28
write(1, "  idVendor           0x0000 \n", 29  idVendor           0x0000
) = 29
write(1, "  idProduct          0x0000 \n", 29  idProduct          0x0000
) = 29
write(1, "  bcdDevice            2.06\n", 28  bcdDevice            2.06
) = 28
write(1, "  iManufacturer           3 Linu"..., 50  iManufacturer
    3 Linux 2.6.15 uhci_hcd
) = 50
write(1, "  iProduct                2 UHCI"..., 49  iProduct
    2 UHCI Host Controller
) = 49
write(1, "  iSerial                 1 0000"..., 41  iSerial
    1 0000:00:04.2
) = 41
write(1, "  bNumConfigurations      1\n", 28  bNumConfigurations      1
) = 28
write(1, "  Configuration Descriptor:\n", 28  Configuration Descriptor:
) = 28
write(1, "    bLength                 9\n", 30    bLength                 9
) = 30
write(1, "    bDescriptorType         2\n", 30    bDescriptorType         2
) = 30
write(1, "    wTotalLength           25\n", 30    wTotalLength           25
) = 30
write(1, "    bNumInterfaces          1\n", 30    bNumInterfaces          1
) = 30
write(1, "    bConfigurationValue     1\n", 30    bConfigurationValue     1
) = 30
write(1, "    iConfiguration          0 \n", 31    iConfiguration          0
) = 31
write(1, "    bmAttributes         0xc0\n", 30    bmAttributes         0xc0
) = 30
write(1, "      Self Powered\n", 19      Self Powered
)    = 19
write(1, "    MaxPower                0mA\n", 32    MaxPower
    0mA
) = 32
write(1, "    Interface Descriptor:\n", 26    Interface Descriptor:
) = 26
write(1, "      bLength                 9\n", 32      bLength
      9
) = 32
write(1, "      bDescriptorType         4\n", 32      bDescriptorType
      4
) = 32
write(1, "      bInterfaceNumber        0\n", 32      bInterfaceNumber
      0
) = 32
write(1, "      bAlternateSetting       0\n", 32      bAlternateSetting
      0
) = 32
write(1, "      bNumEndpoints           1\n", 32      bNumEndpoints
      1
) = 32
write(1, "      bInterfaceClass         9 "..., 36      bInterfaceClass
        9 Hub
) = 36
write(1, "      bInterfaceSubClass      0 "..., 39
bInterfaceSubClass      0 Unused
) = 39
write(1, "      bInterfaceProtocol      0 "..., 47
bInterfaceProtocol      0 Full speed hub
) = 47
write(1, "      iInterface              0 "..., 33      iInterface
        0
) = 33
write(1, "      Endpoint Descriptor:\n", 27      Endpoint Descriptor:
) = 27
write(1, "        bLength                 "..., 34        bLength
          7
) = 34
write(1, "        bDescriptorType         "..., 34
bDescriptorType         5
) = 34
write(1, "        bEndpointAddress     0x8"..., 43
bEndpointAddress     0x81  EP 1 IN
) = 43
write(1, "        bmAttributes            "..., 34        bmAttributes
          3
) = 34
write(1, "          Transfer Type         "..., 45          Transfer
Type            Interrupt
) = 45
write(1, "          Synch Type            "..., 40          Synch Type
             None
) = 40
write(1, "          Usage Type            "..., 40          Usage Type
             Data
) = 40
write(1, "        wMaxPacketSize     0x000"..., 46        wMaxPacketSize
    0x0002  1x 2 bytes
) = 46
write(1, "        bInterval             25"..., 34        bInterval
        255
) = 34
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 13
write(1, "Hub Descriptor:\n", 16Hub Descriptor:
)       = 16
write(1, "  bLength               9\n", 26  bLength               9
) = 26
write(1, "  bDescriptorType      41\n", 26  bDescriptorType      41
) = 26
write(1, "  nNbrPorts             2\n", 26  nNbrPorts             2
) = 26
write(1, "  wHubCharacteristic 0x000a\n", 28  wHubCharacteristic 0x000a
) = 28
write(1, "    No power switching (usb 1.0)"..., 33    No power switching
(usb 1.0)
) = 33
write(1, "    Per-port overcurrent protect"..., 36    Per-port
overcurrent protection
) = 36
write(1, "  bPwrOn2PwrGood        1 * 2 mi"..., 44  bPwrOn2PwrGood
  1 * 2 milli seconds
) = 44
write(1, "  bHubContrCurrent      0 milli "..., 39  bHubContrCurrent
  0 milli Ampere
) = 39
write(1, "  DeviceRemovable    0x00\n", 26  DeviceRemovable    0x00
) = 26
write(1, "  PortPwrCtrlMask    0xff\n", 26  PortPwrCtrlMask    0xff
) = 26
write(1, " Hub Port Status:\n", 18 Hub Port Status:
)     = 18
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 4
write(1, "   Port 1: 0000.0103 power enabl"..., 42   Port 1: 0000.0103
power enable connect
) = 42
ioctl(3, USBDEVFS_CONTROL, 0xbfb5bfdc)  = 4
write(1, "   Port 2: 0000.0100 power\n", 27   Port 2: 0000.0100 power
) = 27
ioctl(3, USBDEVFS_CONTROL, 0xbfb5c03c)  = 2
write(1, "Device Status:     0x0001\n", 26Device Status:     0x0001
) = 26
write(1, "  Self Powered\n", 15  Self Powered
)        = 15
close(3)                                = 0
munmap(0xb7f46000, 4096)                = 0
exit_group(0)                           = ?
Process 6180 detached


>> [plustek] gray Gamma   : 1.00
>> [plustek] ---------------------
>> [plustek] usbDev_open(auto,0x04A9-0x2206) - 0x806d000
>> [sanei_usb] sanei_usb_open: trying to open device `libusb:001:004'
>> USB error: could not set config 1: Protocol error
>> [sanei_usb] sanei_usb_open: libusb complained: could not set config 1:
>> Protocol error
>> [plustek] sanei_usb_open failed: Protocol error (71)
>> [plustek] open failed: -1
>> [plustek] sane_get_devices (0xbf922cf8, 0)
>> [sanei_debug] Setting debug level of sanei_usb to 255.
> 
> It looks like the USBDEVFS_SETCONFIGURATION ioctl is not working
> correctly. Could you please compile the small attached test program (gcc
> -o testusb testusb.c). Then run it with /dev/bus/xxx/yyy as the first
> argument, with xxx and yyy being the bus and device number return by lsusb.

# ./testusb /dev/bus/usb/001/004
ret from ioctl: -1


Thanks,
Carsten.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to