On Aug 25, 2009, at 5:46 PM, [email protected] wrote:

Hello,

I'm getting a timeout getting the HID Descriptor from a third party device. Here is the lsusb -vvv output:

Bus 005 Device 002: ID 0483:5057 SGS Thomson Microelectronics
[...]
         Report Descriptor: (length is 34)
            Item(Global): Usage Page, data= [ 0xa0 0xff ] 65440
                            (null)
            Item(Local ): Usage, data= [ 0xa5 ] 165
                            (null)
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Local ): Usage, data= [ 0xa6 ] 166
                            (null)
            Item(Local ): Usage, data= [ 0xa7 ] 167
                            (null)
            Item(Global): Logical Minimum, data= [ 0x80 ] 128
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x3c ] 60
             Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0xa9 ] 169
                            (null)
            Item(Global): Logical Minimum, data= [ 0x80 ] 128
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x3c ] 60
            Item(Main  ): Output, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
[...]
can't get debug descriptor: Connection timed out
cannot read device status, Connection timed out (110)

Despite the timeout messages, lsusb got the HID report descriptor.

Note the timeouts at the end. And here is the output of the HID test program, modified to match this device:

  TRACE: hid_find_usb_device(): inspecting USB device 005/002[0]...
TRACE: hid_compare_usb_device(): comparing match specifications to USB device...
  TRACE: hid_compare_usb_device(): inspecting vendor ID...
  TRACE: hid_compare_usb_device(): match on vendor ID: 0x0483.
  TRACE: hid_compare_usb_device(): inspecting product ID...
  TRACE: hid_compare_usb_device(): match on product ID: 0x5057.
TRACE: hid_compare_usb_device(): no custom matching function supplied. NOTICE: hid_find_usb_device(): found a matching USB device 005/002[0].
  TRACE: hid_force_open(): claiming USB device 005/002[0].
 NOTICE: hid_force_open(): successfully claimed USB device 005/002[0].
TRACE: hid_init_parser(): initialising the HID parser for USB Device 005/002[0]...
  TRACE: hid_init_parser(): allocating space for HIDData structure...
TRACE: hid_init_parser(): successfully allocated memory for HIDData strcture. TRACE: hid_init_parser(): allocating space for HIDParser structure... TRACE: hid_init_parser(): successfully allocated memory for HIDParser strcture. NOTICE: hid_init_parser(): successfully initialised the HID parser for USB Device 005/002[0]. TRACE: hid_prepare_hid_descriptor(): initialising the HID descriptor for USB device 005/002[0]... TRACE: hid_prepare_hid_descriptor(): retrieving HID descriptor for USB device 005/002[0]... WARNING: hid_prepare_hid_descriptor(): failed to get HID descriptor for USB device 005/002[0]:error sending control message: Connection timed out
[...]

This is a different timeout.

Any help is greatly appreciated. This device works on Windows with the vendor's software.

I suspected as much. I believe lsusb is retrieving the HID descriptors from the end of the interface or configuration descriptor, but libhid is using what should be an equally valid request to fetch /just/ the HID descriptor.

Since the device is not behaving according to spec, you may have better luck just operating it with the vendor's software, and using usbsnoop2libusb[*] to construct a custom libusb-based driver.

[*] http://iki.fi/lindi/darcs/usbsnoop2libusb/usbsnoop2libusb.pl

_______________________________________________
libhid-discuss mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss
http://libhid.alioth.debian.org/

Reply via email to