USB Sound card (Steinberg low latency) passthru to Windows 10

peter100

Member
Feb 26, 2018
7
1
6
64
I'm trying to use a Steinberg UR22mkII USB sound "card" in a Windows 10 machine using USB Passthrough, but I can't get it to work.

The problem might be because it is (probably) a USB hub.
qm> info usbhost
Bus 1, Addr 12, Port 4.1, Speed 480 Mb/s
Class ef: USB device 0499:170f, Steinberg UR22mkII
Bus 1, Addr 5, Port 6, Speed 1.5 Mb/s
Class 00: USB device 2516:0004, QuickFire Rapid keyboard
Bus 1, Addr 3, Port 5, Speed 1.5 Mb/s
Class 00: USB device 046d:c05a, USB Optical Mouse
Code:
root@pve:~# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 4: Dev 11, If 0, Class=Hub, Driver=hub/1p, 480M
        |__ Port 1: Dev 12, If 2, Class=Audio, Driver=usbfs, 480M
        |__ Port 1: Dev 12, If 0, Class=Audio, Driver=usbfs, 480M
        |__ Port 1: Dev 12, If 3, Class=Audio, Driver=usbfs, 480M
        |__ Port 1: Dev 12, If 1, Class=Audio, Driver=usbfs, 480M
    |__ Port 5: Dev 3, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M
    |__ Port 6: Dev 5, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M
    |__ Port 6: Dev 5, If 1, Class=Human Interface Device, Driver=usbfs, 1.5M
When I start Windows, the kernel complaints about snd-usb-audio: probe of 1-4.1:2.1 and logs the following:
[134278.915416] usb 1-4.1: reset high-speed USB device number 9 using xhci_hcd
[134282.660591] snd-usb-audio: probe of 1-4.1:2.1 failed with error -16
[134343.191961] usb 1-4.1: reset high-speed USB device number 9 using xhci_hcd
[134343.727939] usb 1-4.1: reset high-speed USB device number 9 using xhci_hcd
[134344.255982] usb 1-4.1: reset high-speed USB device number 9 using xhci_hcd
[134344.796166] usb 1-4.1: reset high-speed USB device number 9 using xhci_hcd
[134345.328187] usb 1-4.1: reset high-speed USB device number 9 using xhci_hcd
... once a second or so
Since there is no way to pass thru a hub, am I out of luck with this?

Maybe I can install a separate PCI USB card and pass thru PCI instead?

Peter
 

aaron

Proxmox Staff Member
Staff member
Jun 3, 2019
1,216
136
63
How do you do the pass-through? Device specific or by USB port?

Maybe I can install a separate PCI USB card and pass thru PCI instead?
That could be the most sensible solution if latency is of importance.
 

peter100

Member
Feb 26, 2018
7
1
6
64
Tried with:
usb3: host=1-4
and:
usb3: host=1-4.1
And also with a Device Id.
Also tried to pass thru (some of) the individual addresses.

So, latency could be a problem as well?

I'll try to find or buy a USB PCI card and see if it works. If you have any tips or suggestions apart from what's in the documentation, please let me know! (I'm already passing the graphic card successfully.)

Thanks,
Peter
 

aaron

Proxmox Staff Member
Staff member
Jun 3, 2019
1,216
136
63
So, latency could be a problem as well?
well, if you do audio it might. passing through the USB devices via Qemu will add a little bit of latency which you should not have if you give the VM direct access to the USB controller.

I am afraid I cannot help you with personal experience though for that use case :/
 

peter100

Member
Feb 26, 2018
7
1
6
64
Hmm. Found an old PCI USB card, which seems to be working locally (on the host). Trying to understand the requirements for such a card. When setting up my virtual WIndows machine, I tried to get it to work with an older (but impressive in terms of size) graphic card with no success, because it was lacking some features. Ended up with buying a MSI GeForce GT 710 which I could pass thru to my WIndows guest.

Do I have to find a USB PCI card that supports whatever is needed? Or should I be looking into the configuration on the host?

modprobe.d:

options vfio-pci ids=1912:0015
lspci -nnk:
05:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015] (rev 02)
Subsystem: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015]
Kernel driver in use: xhci_hcd
Which means that it's still available on the host, right?

Thanks,
Peter
 

peter100

Member
Feb 26, 2018
7
1
6
64
When starting Windows, lspci -nnk changes to:
05:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015] (rev 02)
Subsystem: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015]
Kernel driver in use: vfio-pci
I can start windows when nothing is connected to the USB ports, but as soon I put anything in (like a keyboard or mouse), Windows freezes and the host reports:
[ 3540.656067] pcieport 0000:00:1c.6: AER: Uncorrected (Non-Fatal) error received: 0000:00:1c.6
[ 3540.656073] pcieport 0000:00:1c.6: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID)
[ 3540.657029] pcieport 0000:00:1c.6: AER: device [8086:a296] error status/mask=00100000/00010000
[ 3540.658010] pcieport 0000:00:1c.6: AER: [20] UnsupReq (First)
[ 3540.658975] pcieport 0000:00:1c.6: AER: TLP Header: 34000000 05000010 00000000 00008830
[ 3540.659993] pcieport 0000:00:1c.6: AER: Device recovery successful
When I added the USB PCI card to the PC, the following PCI bridge appeared as well:
00:1c.6 PCI bridge [0604]: Intel Corporation 200 Series PCH PCI Express Root Port [8086:a296] (rev f0)
So I'm wondering if I'm supposed to do anything with the PCI bridge? Passing it thru to the guest?

Thanks,
Peter
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE and Proxmox Mail Gateway. We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!