3 ms·
> USB sucks. PCIe is great. > This is the same problem any kind of USB virtualization/network tunnelling has. +1. I've been using QubesOS on my workstation f
by segfaultbuserr 6y ago
> USB sucks. PCIe is great.
> This is the same problem any kind of USB virtualization/network tunnelling has.
+1.
I've been using QubesOS on my workstation for a while, and I found the problem associated with USB virtualization/tunnelling also has a major impact on QubesOS's usability (USBility?). Long story short, QubesOS's security model depends on the ability to isolate individual peripherals at the hypervisor level. For PCI-E it's easy, but for USB it's a headache. It has various security, compatibility and performance problems. If one has ever encountered such a problem, the only workaround is assigning an entire EHCI or xHCI USB host controller at the PCI-E level to a VM, and this is only feasible on machines with multiple USB controllers.
> I wrote the QEMU virtual xHCI code and the original prototype, which ignored the QEMU USB subsystem and passed through straight to the host, worked very well
I also got the idea to build something similar, but in hardware - put 4 individual PCI-E USB host controllers behind a PCI-E switch, so that each USB port can be seen as an individual PCI-E device. Now the USB problem in Qubes is solved forever...
- pedrocr 6y agoIsn't the PCIe card you're looking for this: https://www.startech.com/Cards-Adapters/USB-3.0/Cards/PCI-Express-USB-3-Card-4-Dedicated-Channels-4-Port~PEXUSB3S44V https://www.startech.com/Cards-Adapters/USB-3.0/Cards/PCI-Ex... Seems to have 4 USB ports each served by it's own controller with dedicated PCIe lanes.
- segfaultbuserr 6y agoYes, this is exactly what I was describing, and it can be the solution. However, I was thinking of a downscaled USB 2.0 version - only has a fraction of its cost, and it doesn't eat all my PCI-E lanes (20 Gbps vs 1.92 Gbps, the latter one only needs a PCI-E x1 Gen 2).