Tricky USB device.

David Gilbert dgilbert at
Fri Apr 8 10:17:06 PDT 2005

>>>>> "Maksim" == Maksim Yevmenkin <maksim.yevmenkin at> writes:

Maksim> David,
>>>> ... I don't know if this is hindering me.  The usbhid* commands
>>>> aren't particularly helpful.  The port udesc_dump seems only to
>>>> work on ugen devices ... and ugen doesn't pop up for this device.
Maksim> how about getting usb hid descriptor, parsing and dumping it?
Maksim> check out libusbhid - man usbhid(3). it might be that all
>> you Maksim> need to do is to create hid report and send it to the
Maksim> device. libusbhid(3) will help you with that.
>>  Tried that.  The usb_get_report_desc() returns NULL.  This is not
>> a complicated device --- it's not even technically a "human
>> interface" device.

Maksim> fine, so i presume usbhidctl(1) does not work on the device
Maksim> too. why did they made look like usb hid device then?

Yeah... it appears to fail.  I have no idea, but the guy at the
company seemed to imply that he was just using a "standard" chip to
drive the USB logic, so it may be a function of that.

Maksim> another way is to hack /sys/dev/usd/uhid.c and specifically
Maksim> ignore (usb vendor id, usb product id) for the device in the
Maksim> MATCH routine.  something like

Maksim> if (uaa->vendor == XXXX && uaa->product == XXXX) return
Maksim> (UMATCH_NONE);

Hrm.  I thought that there might be some general bogon list, but that
will certainly do.


|David Gilbert, Independent Contractor.       | Two things can only be     |
|Mail:       dave at                    |  equal if and only if they |
|                              |   are precisely opposite.  |

More information about the freebsd-hackers mailing list