usbip doesn't work with userspace code that accesses USB devices

Demi Marie Obenour
2024-03-04T20:02:15Z

[-- Attachment #1: Type: text/plain, Size: 1595 bytes --]

Qubes OS users are reporting that MTP doesn't work with USB passthrough.
Fastboot (used for flashing a custom OS to an Android device) also
doesn't work. Kernel-mode drivers, such as Bluetooth and USB storage,
seem to usually work as expected. Since MTP and fastboot are both
implemented in userspace, it appears that there is some problem with the
interaction of usbip, our USB proxy (which is based on USBIP), and
userspace programs that interact with USB devices directly.

The bug report can be found at [1] and the source code for the USB proxy
can be found at [2]. The script used on the sending side (the one with
the physical USB controller) is at [3] and the script used by the
receiving side (the one the device is attached to) is at [4]. All of
these links are for the current version as of this email being sent, so
that anyone looking at this email in the future doesn't get confused.

Is this a bug in usbip, or is this due to usbip being used incorrectly?
I'm happy to provide additional information needed to debug the problem,
but I don't have access to the reporter's system.

[1]: https://github.com/QubesOS/qubes-issues/issues/6330
[2]: https://github.com/QubesOS/qubes-app-linux-usb-proxy/tree/57ab3940d450b18e570da57886d65cb5707aa60f
[3]: https://github.com/QubesOS/qubes-app-linux-usb-proxy/blob/57ab3940d450b18e570da57886d65cb5707aa60f/src/usb-export
[4]: https://github.com/QubesOS/qubes-app-linux-usb-proxy/blob/57ab3940d450b18e570da57886d65cb5707aa60f/src/usb-import
--
Sincerely,
Demi Marie Obenour (she/her/hers)
Invisible Things Lab

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]