QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
543 stars 48 forks source link

USBIP connection drop on initial hidraw attachment #9367

Open hax0rbana-adam opened 4 months ago

hax0rbana-adam commented 4 months ago

Qubes OS release

4.2.2 (R4.2)

Brief summary

When attaching a hidraw device to a qube, it will initially connect, but when software attempts to use it, the USB IP connection between the target qube and USB qube is lost.

However, if the device is detached from a qube and then re-attached, it works just fine.

More information is available in the Qubes forum post I made a while back.

Steps to reproduce

  1. Plug in a USB hidraw device
  2. Attach it to a qube
  3. Attempt to use the device in that qube

I make Signet devices (which are hidraw) and would be willing to send one to any US contributor who is willing to work on this issue (for free). International shipping is very expensive, but I'd consider sending one internationally as well (as long as you are willing to pay any VAT/GST your government charges).

Expected behavior

A hidraw device will work properly the first time you attach it to a qube.

Actual behavior

The hidraw device doesn't work unless the device is attached, detached, and then attached a second time. It need not be attached to the same qube twice, it's the act of detaching it (from any qube) which seems to do something which fixes the problem.

hax0rbana-adam commented 1 week ago

Another user has been able to reproduce this problem along with the workaround with a Trezor device.

https://forum.qubes-os.org/t/usbip-protocol-errors/24236/7

This confirms that it is not specific to a Signet device. Plus Trezors are more popular and ship worldwide so it should make make it easier for others to reproduce the problem.

I'd be happy to test out any potential fixes if anyone has them. I actually built a second Qubes computer specifically for testing, so I'll wipe that machine or mess with the software & configuration without thinking twice about it.

marmarek commented 1 week ago

You can try qvm-service --enable sys-usb usb-reset-on-attach

hax0rbana-adam commented 1 week ago

@marmarek you are my hero. Right now, it's for finding me a workaround that makes my life way easier. But most days it's for doing all the other work you do on Qubes. :heart:

Another donation to the project incoming! (I donate every time I upgrade and every time I get a fix/workaround for an issue that personally affects me, and I encourage all other users to do the same)