Hello,
I have had great success with both ESXI and unRAID passing through a USB controller to VMs using the Buffalo IFC-PCIE2U3, which is a simple dual port card powered by a single Renesas µPD720202 surface mount.
Now you can imagine physical PCI-e ports can disappear quickly if you want to pass-through such native USB controllers to multiple VMs. What I have been looking for is a quad-port four-controller USB (3.0 or 2.0, just want some I/O) PCI-e card that can be split into four different pass-through devices to use with four different VMs similar to how something like an Intel I350-T4 can be split up into four separate NICs each with a single port.
I have found and tested a few devices that use a PLX chip to feed four separate USB controllers, and have had no success finding a reliable solution to work with unRAID.
Here are the two models I have tried so-far:
HighPoint RocketU 1144C with four Asmedia 1042A Controllers - Latest Firmware dated to 2014
IOMMU Splits up OK with ACS Override and VFIO blacklisting.
Passes through to VMs OK, being seen in the OS.
Windows: HighPoint drivers do work OK, and all is well on first boot. USB seems to work fine. Shutting down the VM and starting back up logs an error:
DMAR: [DMA Read] Request device [0a:00.0] fault addr ed000 [fault reason 06] PTE Read access is not set.
The port will not come back to functionality until the entire host is rebooted.
Ubuntu: Works perfectly with native drivers on first boot. Shutting down the VM and starting back up logs an error:
DMAR: [DMA Read] Request device [0a:00.0] fault addr ed000 [fault reason 06] PTE Read access is not set.
The port will not come back to functionality until the entire host is rebooted.
ESXI/Windows: Same issue after clean shut down and cold boot with not handing controller back to the host/VM properly.
StarTech PEXUSB3S44V with four Renesas µPD720202 Controllers - Latest Firmware dated to 2012
IOMMU Splits up OK with ACS Override and VFIO blacklisting.
Passes through to VMs OK, being seen in the OS.
Windows: Throws a Code 10 error, device cannot start directly on hub. Startech drivers and Microsoft xHCI drivers both do not work.
Ubuntu: Does not work at all, presumably due to same issue the windows VM was seeing.
ESXI/Windows: Seems to work identically to the IFC-PCIE2U3, in that everything functions both in and outside the VMs and between shut-downs and reboots. This is where I think there should be hope for the StarTech card with unRAID/KVM with some discrete setting, or as seen in the last link below, a kernel supporting USB Attached SCSI.
Are there any 4 or more port USB PCI-e controllers other users have found to work properly with unRAID? Or even two port cards? This would add a whole lot of value to the platform, having a reliable way to pass USB controllers en masse to VMs.
I have found a few references looking about the web for both cards, and some recent information regarding the Startech PEXUSB3S44V and a possible custom kernel:
HighPoint 1144C References:
https://www.redhat.com/archives/vfio-users/2016-June/msg00102.html
Startech PEXUSB3S44V References:
The last link is the most promising, and something I am looking to try out. I am willing to try out just about anything, having two spare test unRaid servers currently going and hardware in hand. Any insight or experience is welcomed.
Thank you for your help!