AristoChen / usb-proxy

A USB proxy based on raw-gadget and libusb
Apache License 2.0
136 stars 29 forks source link

Dynamically select emulated device speed #11

Open xairy opened 8 months ago

xairy commented 8 months ago

The proxy currently always uses USB_SPEED_HIGH for emulating devices.

We need to dynamically figure out the actual speed of the device via libusb_get_device_speed and use that for usb_raw_init.

We then also need to improve #10 to patch in the right bMaxPacketSize0 depending on the used speed. Note that the speed provided to usb_raw_init is merely a hint, and the UDC might decide to use a different one. To find out which speed UDC decided to use, we need to resolve https://github.com/xairy/raw-gadget/issues/41 first.

Not a critical issue, filing to not forget.

AristoChen commented 8 months ago

Hi,

Thanks for opening this issue, I was aware of the speed issue when I was drafting the code 2 years ago. However, it was not recoreded anywhere so apparently I forgot it, thanks for reminding me!