question about usb 2 vs 3 passthrough

drmatt

New Member
Aug 4, 2023
1
0
1
Hi, I have PVE running on a thinkpad laptop that's connected to a thunderbolt 4 docking station. My goal is to pass through onboard USB devices (webcam, audio, bluetooth) to one of the VMs, while leaving the docking station USB ports available to the host. I tried doing this via USB passthrough and it worked well for the most part, but bluetooth audio output in the VM was always wonky in video calls (though oddly fine when just playing back audio content).

So, I'm experimenting with passing through the entire USB host controller. lspci lists three USB-related devices:

Code:
00:14.0 USB controller: Intel Corporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller (rev 11)
22:00.0 USB controller: Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020]
48:00.0 USB controller: Intel Corporation Thunderbolt 4 USB Controller [Maple Ridge 4C 2020]

I've passed through the first controller, 00:14, and all onboard devices work great in the VM, and devices plugged into the laptop's USB ports are all passed through to the VM as desired. Also, devices plugged into the USB ports on the docking station remain available to the host as desired, but only if they're USB 3.x - lower speed USB 2.x devices such as smartphone, keyboard/mouse, etc. plugged into the same ports are passed through to the VM, which I don't want. Here's the output of lsusb -tv on the host when the VM is running:

Code:
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
        ID 8087:0b40 Intel Corp. 
        |__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 10000M
            ID 17ef:30b6 Lenovo 
            |__ Port 4: Dev 5, If 0, Class=Hub, Driver=hub/4p, 10000M
                ID 17ef:30b8 Lenovo 
                |__ Port 1: Dev 8, If 0, Class=Hub, Driver=hub/7p, 5000M
                    ID 0424:5537 Microchip Technology, Inc. (formerly SMSC) 
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub

Is the hardware topology of this setup such that what I want to do is impossible? I've read that USB 2 can be wired separately from USB 3 even on the same port, so perhaps they're all hitting the same internal controller that I've already passed through even though they're connected to the dock?

Any help with this - or just getting direct USB bluetooth passthrough to work properly - is appreciated.
 
Did you ever find an answer? I have noticed that the only way to get USB 3.0 speeds on the VM is by doing a PCI Passthrough of the xHCI Host Controller, example images below, where the Use USB3 section is checked, if I don't do the PCI Passthrough, the Use USB3 will be unchecked, and, I am using a USB 3 Wireless card as a test, is this the correct behavior? Thanks

1727101811431.png
1727101826034.png
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, 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 yours easily in our online shop.

Buy now!