Changing our Virtual Machine USB Controller Model from qemu-xhci to nec-xhci
Hi everyone,
In this post, we will change our Virtual Machine USB Controller from the default qemu-xhci
model to nec-xhci
.
After attempting to pass a USB Audio Class 2.0 device using the generic Standard QEMU XHCI controller, I was having some sound issues, particularly with constant pops and distortions while bistreaming audio. After checking for solutions, it seems we can use the nec-xhci
controller. This is what I did, and it fixed the sound issues I was having.
Before doing any changes, this is how the qemu-xhci
USB controller appears in the Windows Device Manager:
In this machine, the Fresco Logic PCI Express card is passed through IOMMU, and the Standard USB 3.0 eXtensible Host Controller is the virtualized qemu-xhci
controller.
Here is the XML detail of it inside virt-manager
:
We can simply change model="qemu-xhci"
to model="nec-xhci"
to change the USB controller model to the NEC/Renesas variation:
After clicking “Apply” and starting up our Virtual Machine again, we now see that the controller is now reported as Renesas eXtensible Host Controller: