On Mon, 2005-11-14 at 23:36 +0000, Daniel Drake wrote:
> I'm sorry to throw a mass of sniffed data and early driver code at the list, 
> but I've been working on this problem for a few days now, with no success. 
> I'm 
> hoping that someone might be able to spot an obvious mistake or offer 
> suggestions on things to try :)
> 
> I'm writing a driver for a fingerprint reader found in a USB keyboard.
> The keyboard has 3 interfaces, two HID (presumably one for keyboard and one 
> for wireless mouse), and one which is the fingerprint reader. I'm working on 
> a 
> driver for the 3rd interface, obviously.
> 
> The 3rd interface has two endpoints, one bulk in and one interrupt in.
> 
> The UsbSnoop log I'm attaching is from the 3rd interface and shows a sequence 
> of events like:
> 
> 1. configuration setting, descriptor fetching
> 2. a series of synchronous control commands
> 3. an async transfer down the bulk-in endpoint fired
> 4. an async interrupt transfer fired on the int-in endpoint
> 5. more control commands including upload of firmware
> 6. short pause
> 7. interrupt transfer from step 4 returns
> 8. re-fire interrupt
> 9. more control commands
> 10. pause
> 11. bulk command from step 3 returns
> 12. .......
> 
> My driver clones the sequence 1-6 just fine, but I don't get the response 
> from 
> either bulk command. I've noticed that despite this, the callback functions 
> *do* get executed when I unplug the device - is this normal?
> 
> The control commands work fine, I get the desired responses and the device 
> even visibly reacts to some commands (e.g. turning the light on). I'm 
> wondering if it's just something I'm doing wrong with bulk transfers, but 
> I've 
> looked over it a good few times now...
> 
> I'm attaching the UsbSnoop logs on the fingerprint interface, semi-annotated 
> Linux usbmon logs on the port when HID support is disabled (i.e. a sniff of 
> my 
> own driver), and the driver code so-far. I'm also attaching the "lsusb -v" 
> output for the device.
> 
> Note that the Windows driver gets the flag bits wrong in the bulk commands - 
> it appears to be sending data out of the in endpoints - this is apparently 
> common in Windows drivers, the windows API must fix that up automatically.
> 
> I haven't focused much on what the other interfaces are doing, as they are 
> HID-compliant I don't think they are doing anything special, and I doubt (in 
> terms of implementing the components in the hardware) that sending commands 
> to 
> another interface would affect the fingerprint reader... I guess this is the 
> next thing to check, if nothing emerges at this point.
> 
> I'd be very grateful to anyone who has any ideas here...
> 
> Thanks,
> Daniel
<lines deleted>

Did you set the configuration, interface and altsetting before the bulk
read command?

Also putting this info on a website is maybe a better idea for sharing
info.

No info about the used fingerprint chip i assume?

Depending on your plans for such a device, writing a sane backend could
be another option (scanner/webcam).

   
-- 
--------
m.vr.gr.
Gerard Klaver



-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to