FS#41550 - [qemu] 2.1.0-2 doesn't pass USB devices to the VM

Attached to Project: Arch Linux
Opened by Brice Waegeneire (bricewge) - Wednesday, 13 August 2014, 10:31 GMT
Last edited by Tobias Powalowski (tpowa) - Saturday, 03 September 2016, 06:41 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:
qemu 2.1.0-2 doesn't pass USB devices to the VM but you can boot from an USB device. It is working with the previous version.

Additional info:
* non working packages version
- qemu 2.1.0-2
- libcacard 2.1.0-2
- libsci 1.12.0-1
* working packages version
- qemu 2.0.0-4
- libcacard 2.0.0-4
- libiscsi 1.7.0-2

Steps to reproduce:
1. qemu-system-x86_64 -cdrom archlinux-2014.06.01-dual.iso -usbdevice host:VENDORID:PRODUCTID -boot order=d -m 1024 -enable-kvm
2. Run lsusb in the VM, the USB device don't show up.
Note: You may want to start qemu as root if you didn't configure udev.
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Saturday, 03 September 2016, 06:41 GMT
Reason for closing:  Fixed
Comment by Steven Honeyman (stevenhoneyman) - Friday, 26 September 2014, 19:30 GMT
Still broken in 2.1.2

I noticed some things though:
- 2.1.0 was when they introduced "full" USB3 support to qemu http://wiki.qemu.org/ChangeLog/2.1#USB
- It only breaks when the guest OS starts USB drivers. If you pick "HDT" on the archlinux iso, it shows the devices.
- The guest linux loads uhci-hci module (my host doesn't)

From a `dmesg` of the *host*, I get this spammed when the *guest* modprobes the usb stuff:

[14847.066008] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8803df2dae40
[14847.066012] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8803df2dae88
[14847.342635] usb 3-4.2: reset high-speed USB device number 10 using xhci_hcd
[14847.342689] xhci_hcd 0000:00:14.0: Setup ERROR: setup context command for slot 10.
[14847.342692] usb 3-4.2: hub failed to enable device, error -22
[14847.422548] usb 3-4.2: reset high-speed USB device number 10 using xhci_hcd
[14847.422566] xhci_hcd 0000:00:14.0: Setup ERROR: setup context command for slot 10.
[14847.422569] usb 3-4.2: hub failed to enable device, error -22
[14847.502600] usb 3-4.2: reset high-speed USB device number 10 using xhci_hcd
[14847.516285] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8803df2dae40
[14847.516289] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8803df2dae88
[14847.709404] usb 3-4.2: reset high-speed USB device number 10 using xhci_hcd
[14847.709436] xhci_hcd 0000:00:14.0: Setup ERROR: setup context command for slot 10.
[14847.709438] usb 3-4.2: hub failed to enable device, error -22
[14847.789435] usb 3-4.2: reset high-speed USB device number 10 using xhci_hcd
[14847.789453] xhci_hcd 0000:00:14.0: Setup ERROR: setup context command for slot 10.
[14847.789456] usb 3-4.2: hub failed to enable device, error -22
[14847.869481] usb 3-4.2: reset high-speed USB device number 10 using xhci_hcd
Comment by Steven Honeyman (stevenhoneyman) - Saturday, 27 September 2014, 02:47 GMT
Hmm, it looks like they've just changed the config. "-usbdevice" doesn't work properly, but "-device usb....." does (see attached screenshot - Arch iso and a usb flash drive on passthrough).

There's some info in (upstream git)/docs/ that's worth a read; and there's been a load of usb changes in both qemu and seabios in recent commits, so if you still have problems it'd be worth giving the latest versions of both a try.

Oh, and it'll need some udev rules too (to prevent the need for running it as root).
Comment by Brice Waegeneire (bricewge) - Wednesday, 13 January 2016, 00:04 GMT
This is fixed now. Both the old style "-usbdevice" and the new "-device usb....." are supported.

Loading...