xairy / raw-gadget

USB Raw Gadget — a low-level interface for the Linux USB Gadget subsystem
333 stars 35 forks source link

Facedancer backend #9

Open xairy opened 4 years ago

xairy commented 4 years ago

It should be possible to use Raw Gadget as a backend for Facedancer. At least for UDCs with configurable (direction and transfer type) gadget endpoints.

trevor403 commented 3 years ago

This would be quite interesting, it would be great to have accessible tools for teaching USB, like the PI Zero or even the some Intel Atom and Quark boards with UDC capabilities.

xairy commented 1 year ago

kirill9617 implemented a prototype Facedancer backend based on Raw Gadget.

Some notes:

  1. Facedancer processes all requests in a single service_irqs() handler, which is incompatible with Raw Gadget's blocking fetch/read/write ioctls. A potential solution is to add timeouts for the ioctls.

  2. Running some of Facedancer examples fails, the failures looks similar to https://github.com/xairy/raw-gadget/issues/29.

xairy commented 1 year ago

Finished up the prototype and made most Facedancer examples work with Dummy and dwc2 UDCs, see the details here.