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.

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


I suppose I need to know how to supress uhid ... or to make ugen show up. It would also be nice to know how to generically poke
the interupt enpoints...

Maksim> well comment out 'device uhid' from your kernel config and Maksim> rebuilding the kernel should do the trick.


I wanted to try to avoid that since I use many USB devices, but it's
a last resort kind-of-thing.

well, for what i know ugen(4) will only claim the device if no other usb device driver claimed it. so if the uhid(4) claimed it than (i assume) usb interface class on the device is set to the appropriate value.


The documentation for the device describes the interface as simply using the two interupt endpoints (read and write).

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


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


max

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to