Bug 1253522 - fail to passthrough USB3.0 drives to windows guests with xHCI controller under pc-i440fx-1.4
Summary: fail to passthrough USB3.0 drives to windows guests with xHCI controller unde...
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: Fedora
Classification: Fedora
Component: qemu
Version: 22
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Fedora Virtualization Maintainers
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-08-14 01:38 UTC by Louis van Dyk
Modified: 2016-05-02 20:29 UTC (History)
15 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-05-02 20:29:11 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Louis van Dyk 2015-08-14 01:38:09 UTC
Description of problem:
1.  Using Virt Manager set the "Controller USB" item to Model: USB3.  When inserting a USB Drive, Virt-Manager automatically redirects it to the host as can be confirmed under "Virtual Machine / Redirect USB Device".
a) Windows 8.1 detects the USB controller and loads the driver (Renesas USB 3.0 eXtensible Host Controller)
- Inserting a USB 3.0 drive in a USB 3.0 port results in error: Unknown USB Device (Invalid Device Descriptor)
- Inserting a USB 3.0 drive in a USB 2.0 port results in error: Unknown USB Device (Invalid Device Descriptor)
b) Windows 7 places the USB Controller under "Other Devices".  There appears to be no driver for this.
- Both USB 3.0 and 2.0 ports don't respond when a drive is connected.

2.  Using Virt Manager set the "Controller USB" item to Model: USB2  When inserting a USB Drive, Virt-Manager automatically redirects it to the host as can be confirmed under "Virtual Machine / Redirect USB Device".
a) Windows 8.1 detects the USB controller and loads the driver (Intel(R) ICH9 Family USB2 Enhanced Host Controller)
- Inserting a USB 3.0 drive in a USB 3.0 port results in error: Unknown USB Device (Invalid Device Descriptor)
- Inserting a USB 3.0 drive in a USB 2.0 port succeeds.  The drive is listed under "Disk Drives" in Device Manager, and is accessible through Windows Explorer.
b) Windows 7 detects the USB controller and loads the driver (Intel(R) ICH9 Family USB2 Enhanced Host Controller)
- Inserting a USB 3.0 drive in a USB 3.0 port results in error: Unknown Device, and a pop-up stating that "Device Driver software was not successfully installed".
- Inserting a USB 3.0 drive in a USB 2.0 port succeeds.  The drive is listed under "Disk Drives" in Device Manager, and is accessible through Windows Explorer.



Version-Release number of selected component (if applicable):
libvirt-daemon-kvm-1.2.13.1-2.fc22.x86_64
libvirt-daemon-qemu-1.2.13.1-2.fc22.x86_64
qemu-2.3.0-6.fc22.x86_64
qemu-common-2.3.0-6.fc22.x86_64
qemu-guest-agent-2.3.0-6.fc22.x86_64
qemu-img-2.3.0-6.fc22.x86_64
qemu-kvm-2.3.0-6.fc22.x86_64
kernel-4.1.4-200.fc22.x86_64


How reproducible:
Always, as per the steps in "Description".  It occurs on different hosts running Fedora 22 x86_64 with independent guest installations.


Steps to Reproduce:
1. Set USB Controller to USB3 or USB2 in Virt-Manager.
2. Start the Virtual Machine
3. Insert USB drive


Actual results:
As in description


Expected results:
The drive should be mounted and accessible in the guest when using the USB3 controller and ports.


Additional info:
All the drivers that would install on the "virtio-win-0.1.105.iso" image have been installed, as well as vdagent 0.7.3.
All guest "windows update" patches have been installed.

Comment 1 Cole Robinson 2015-08-29 23:45:12 UTC
You mention pc-i440fx-1.4 explicitly in the subject, but that's quite an old machine type for f22 qemu. Have you tried switching to the latest machine type and seeing if it makes any difference? Newer machine types usually come with many bug fixes

Comment 2 Louis van Dyk 2015-09-08 12:10:23 UTC
Apologies for my late reply.

When I created a new VM, the only machine offered was i440FX. On my home PC, on which I did the bulk of the testing, it still was set to the -1.4 version, but on my laptop (a later VM) it is set to pc-i440fx-2.3.  Both hosts are running Fedora 22. Yesterday, I changed the version to 2.3 on my home machine.  The same issue occurred on the USB 3 ports. 

However, when I installed the UEFI component, which I discovered completely by accident, it brought with it a Q35 chipset, which I had never heard of before.

I created a new VM, since it seems I cannot just change the chipset value, and using the same hard disk, created a machine with the Q35 chipset.  It warned me that this chipset had not been well tested, but I proceeded.  I am very happy to report that USB 3 worked perfectly with that chipset!!


*** May I then ask the QEMU maintainers, PLEASE could you either fix the 440FX chipset with USB 3, or else, by default, package the Q35 chipset WITH the standard QEMU installation? ***

Comment 3 Cole Robinson 2016-05-02 20:29:11 UTC
I suspect this was just due to some xhci quirk associated with the old pc-1.4 machine type (vs a more modern i440fx machine type like pc-2.3) which isn't readily fixable. A VM created with default i440fx setup+usb3 works with windows for me on f24 at least


Note You need to log in before you can comment on or make changes to this bug.