Thanks for the feedback Charles. I'll start snooping the stream in a Windows environment.
For what it's worth, we're having the same issue with a magnetic stripe reader from ID Innovations. Of special interest also, is that the report descriptors are unavailable. I'll post the results of the same commands in case it's helpful to anyone in a similar position. If I'm understanding you correctly, it sounds like the real solution is for the manufacturer to make changes to the firmware? Some information on the MSR exists here: http://idinnovations.com/downloads.html I can't seem to find their HID manual on that page, so I've posted it here: http://brent.izolo.com/tmp/HID.pdf ==> lsusb result: Bus 002 Device 008: ID 154a:0004 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x154a idProduct 0x0004 bcdDevice 1.06 iManufacturer 1 ID Innovations Inc. iProduct 2 Magnetic Card Reader iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 4 Input Device bmAttributes 0x80 MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 5 HID Keyboard Interface HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 59 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 6 Serial Interface HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 97 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 ==> libhid test: NOTICE: hid_init(): libhid 0.2.15+20060325.0.0 is being initialized. TRACE: hid_init(): initialising USB subsystem... TRACE: hid_init(): scanning for USB busses... TRACE: hid_init(): scanning for USB devices... NOTICE: hid_init(): successfully initialised HID library. TRACE: hid_new_HIDInterface(): creating a new HIDInterface instance... TRACE: hid_force_open(): forcefully opening a device interface according to matching criteria... TRACE: hid_get_usb_handle(): acquiring handle for a USB device... TRACE: hid_find_usb_device(): enumerating USB busses... TRACE: hid_find_usb_device(): enumerating USB devices on bus 001... TRACE: hid_find_usb_device(): inspecting USB device 001/001[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(): no match on vendor ID. TRACE: hid_compare_usb_device(): inspecting product ID... TRACE: hid_compare_usb_device(): no match on product ID. TRACE: hid_compare_usb_device(): no custom matching function supplied. NOTICE: hid_find_usb_device(): vendor 0x0000 of USB device 001/001[0] does not match 0x154a. TRACE: hid_find_usb_device(): enumerating USB devices on bus 003... TRACE: hid_find_usb_device(): inspecting USB device 003/001[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(): no match on vendor ID. TRACE: hid_compare_usb_device(): inspecting product ID... TRACE: hid_compare_usb_device(): no match on product ID. TRACE: hid_compare_usb_device(): no custom matching function supplied. NOTICE: hid_find_usb_device(): vendor 0x0000 of USB device 003/001[0] does not match 0x154a. TRACE: hid_find_usb_device(): enumerating USB devices on bus 002... TRACE: hid_find_usb_device(): inspecting USB device 002/007[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: 0x154a. TRACE: hid_compare_usb_device(): inspecting product ID... TRACE: hid_compare_usb_device(): match on product ID: 0x0004. TRACE: hid_compare_usb_device(): no custom matching function supplied. NOTICE: hid_find_usb_device(): found a matching USB device 002/007[0]. TRACE: hid_force_open(): claiming USB device 002/007[0]. TRACE: hid_os_force_claim(): failed to claim USB device 002/007[0], trying 2 more time(s)... TRACE: hid_os_force_claim(): detaching kernel driver from USB device 002/007[0]... TRACE: hid_os_force_claim(): trying again to claim USB device 002/007[0]... NOTICE: hid_force_open(): successfully claimed USB device 002/007[0]. TRACE: hid_init_parser(): initialising the HID parser for USB Device 002/007[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 002/007[0]. TRACE: hid_prepare_hid_descriptor(): initialising the HID descriptor for USB device 002/007[0]... TRACE: hid_prepare_hid_descriptor(): retrieving HID descriptor for USB device 002/007[0]... NOTICE: hid_prepare_hid_descriptor(): successfully initialised HID descriptor for USB device 002/007[0] (59 bytes). TRACE: hid_prepare_report_descriptor(): initialising the report descriptor for USB device 002/007[0]... TRACE: hid_prepare_report_descriptor(): retrieving report descriptor for USB device 002/007[0]... NOTICE: hid_prepare_report_descriptor(): successfully initialised report descriptor for USB device 002/007[0]. TRACE: hid_prepare_parser(): setting up the HID parser for USB device 002/007[0]... TRACE: hid_reset_parser(): resetting the HID parser for USB device 002/007[0]... TRACE: hid_prepare_parser(): dumping the raw report descriptor TRACE: hid_prepare_parser(): 0x000: 0x05 0x01 0x09 0x06 0xa1 0x01 0x85 0x01 TRACE: hid_prepare_parser(): 0x008: 0x05 0x07 0x19 0xe0 0x29 0xe7 0x15 0x00 TRACE: hid_prepare_parser(): 0x010: 0x25 0x01 0x75 0x01 0x95 0x08 0x81 0x02 TRACE: hid_prepare_parser(): 0x018: 0x05 0x08 0x19 0x01 0x29 0x05 0x75 0x01 TRACE: hid_prepare_parser(): 0x020: 0x95 0x05 0x91 0x02 0x75 0x03 0x95 0x01 TRACE: hid_prepare_parser(): 0x028: 0x91 0x01 0x75 0x08 0x95 0x06 0x15 0x00 TRACE: hid_prepare_parser(): 0x030: 0x25 0x68 0x05 0x07 0x19 0x00 0x29 0x68 TRACE: hid_prepare_parser(): 0x038: 0x81 0x00 0xc0 TRACE: hid_prepare_parser(): parsing the HID tree of USB device 002/007[0]... NOTICE: hid_prepare_parser(): successfully set up the HID parser for USB device 002/007[0]. NOTICE: hid_force_open(): successfully opened USB device 002/007[0]. device identification of HIDInterface 002/007[0]: dev_handle: 0x093ac5b8 device: 0x093b51e0 location: 002/007 manufacturer: ID Innovations Inc. product: Magnetic Card Reader TRACE: hid_reset_parser(): resetting the HID parser for USB device 002/007[0]... TRACE: hid_dump_tree(): iterating the parse tree for USB device 002/007[0]... parse tree of HIDInterface 002/007[0]: path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x90 path: 0x00010006.0x00000000; type: 0x90 path: 0x00010006.0x00000000; type: 0x90 path: 0x00010006.0x00000000; type: 0x90 path: 0x00010006.0x00000000; type: 0x90 path: 0x00010006.0x00000000; type: 0x90 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 path: 0x00010006.0x00000000; type: 0x80 TRACE: hid_reset_parser(): resetting the HID parser for USB device 002/007[0]... TRACE: hid_close(): closing USB device 002/007[0]... TRACE: hid_close(): closing handle of USB device 002/007[0]... NOTICE: hid_close(): successfully closed USB device 002/007[0]. TRACE: hid_reset_parser(): resetting the HID parser for USB device 002/007[0]... TRACE: hid_close(): freeing memory allocated for HID parser... TRACE: hid_close(): resetting HIDInterface... NOTICE: hid_cleanup(): successfully deinitialised HID library. _______________________________________________ libhid-discuss mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/libhid-discuss http://libhid.alioth.debian.org/

