Re: gadgetfs isn't sending interrupt messages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 28 Jun 2009, Adam Nielsen wrote:

> Hi all,
> 
> I'm implementing a simple USB device using gadgetfs and dummy_udc to help
> reverse engineer a physical USB device which can only be used with a
> Windows-based closed-source application.  I figure if I can get the Windows
> app talking to my virtual device then I can fiddle with the values it returns
> and observe what changes this triggers in the app.
> 
> So far I have implemented the device basics and it correctly gets identified
> by lsusb as a HID device, almost exactly like the actual hardware device (the
> exception being the real hardware is USB1.1 only, but gadgetfs only seems to
> support USB2.0 devices.)
> 
> I'm running WinXP through VirtualBox and XP correctly detects my gadgetfs
> device and uses its HID driver for it.
> 
> When I run the closed-source app to access the device, it works by sending
> control messages to the device and getting interrupt messages in response.
> With the gadgetfs "device" I receive the control message and send a response
> to the interrupt endpoint without any error, but not only does XP never
> receive the interrupt message, usbmon doesn't show it either - which seems to
> indicate that gadgetfs isn't sending the interrupt message over the virtual
> USB bus.
> 
> If I run my own client under Linux then it works fine, I can send a control
> message and receive an interrupt in response, although interestingly enough if
> I run my client *after* the WinXP app, I receive the interrupt message that
> was supposed to go to the XP app instead - so it seems that gadgetfs is
> storing the interrupt data but it must be waiting for a read operation to come
> along instead of sending the interrupt immediately.

FWIW, I also suspected some problems with interrupt requests when running 
my PTP gadget usbfs application on a real hardware trying to talk to a 
Windows machine running in VMware on a Linux PC. Even just opening an 
interrupt endpoint over USBFS and keeping it open already sends empty 
replies to interrupt requests to "real" hosts - Linux, Mac OS or Windows, 
but I was getting timeouts with VMware. I didn't investigate it too much, 
I just switched to real hardware and there everything worked as expected.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux