J?rgen Keil wrote: > Instead of dumping raw data from /dev/usb/hid? > can you try to trace the raw usb mouse data using the > attached dtrace script? > > There is some code in usbms_rput() that drops mouse > data packets when they have an unexpected length...
The hid device is below usmbs, and it's only requesting 4 bytes (based on the HID report descriptor), so usbms will never see more than 4, even if there might be more received by the host controller (hid sets up the length when setting up the interrupt callback). So, usmbs is actually just getting 4 bytes. I had a look at the Linux 'appletouch' driver. It looks like they reverse engineered the vendor-specific protocol. But I'm not sure if what they describe matches the first 4 bytes I'm seeing. Also, they explicitly use a vendor-specific control message to put the device into 'raw' mode. It's weird. All I know is that the NetBSD driver works, and all that driver knows is that it has some USB mouse, it doesn't do anything special. - Frank