Possible to Pass Through USB hub?

mattlach

Well-Known Member
Mar 23, 2016
169
17
58
Boston, MA
Hey all,

So I know the two common methods of USB pass through are either on a per device basis using the USB device ID, or to pass through an entire USB controller, so that any devices plugged into that controller show up in the VM not in the host.

I have some problems with both of these approaches, and wonder if an alternative works.

1.) I have two USB devices with the same ID, that need to be passed through to two different VM's

2.) My server only has two USB controllers. If I pass one controller to one VM and one controller to the other, I have nothing left for the rest of the host. I would prefer not to waste a PCIe slot for a USB controller, as I really need it for other things.

3.) The ICH10R USB controllers are a little weird, and I am trying to understand how they work.

Code:
# lspci |grep -i usb
00:1a.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
00:1a.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
00:1a.2 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6
00:1a.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
00:1d.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
00:1d.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
00:1d.2 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
00:1d.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1

So there are two EHCI (USB2) controllers, and what according to Wikipedia's page on USB are probably six further virtual UHCI (USB1.1) controllers, which the EHCI (USB2) controllers pass off older devices negotiating UHCI (USB1.1) to. My USB devices are just basic input devices, so UHCI (USB1.1) is probably sufficient for me, but the problem is, I don't understand how this handoff works. Does the EHCI (USB2) controller always hand off UHCI(USB1.1) devices on the same port to the same virtual UHCI(USB 1.1) controller? Some testing indicates that usually, yes this is what happens, but not always, though I am not 100% sure.

Furthermore, are the 6 virtual UHCI (USB1.1) controllers split up between the EHCIUSB2) controllers as handoff devices, in other words do they get three each, and do I need to pass them through as a group to the VM, or risk having a EHCI (USB2) controller passed through to a VM, hand off a UHCI (USB1.1) negotiated device to a virtual UHCI (USB1.1) controller that is not passed through to the same VM?

I'd appreciate any clarity a USB expert might provide on this subject.


Either way, this would be incredibly simplified if I could just plug in an external USB hub, pass through that hub to a VM, and have the devices plugged into that hug show up only in the VM, not in the host. Is this the way it works, or am I out of luck and have to tackle the problems above?

I'm guessing it won't work, or otherwise my googling would show up more results about it, instead of only the two methods above, but I figured asking wouldn't hurt.
 

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!