IOMMU groups - USB


BoboRalph

Recommended Posts

I'm still new to pass-through and virtualization, so bare with me.


I'm sure how to understand my IOMMU groupings on this mobo (Supermicro x9dri-ln4f+). The board has 4 USB ports at the back and i ultimately want to be able to split them up into 4 separate controlled ports and then pass them through to 4 induvidual vms and with hotplug capability.
I've tried getting a PCIe card (StarTech PEXUSB3S44V) but have since learned that might not be an option since it's not compatible with unraid.

Currently attached is a USB-hub from Icy-Box (IB-HUB1403) that holds the mouse, keyboard and xbox controller.

 


dump of groupings:

 

Bus 001 Device 001:ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 002:ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Bus 001 Device 003:ID 0951:1643 Kingston Technology DataTraveler G3

Bus 001 Device 004:ID 0557:2221 ATEN International Co., Ltd Winbond Hermon

Bus 002 Device 001:ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 002:ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Bus 002 Device 003:ID 2109:2811 VIA Labs, Inc. Hub

Bus 002 Device 004:ID 045e:028e Microsoft Corp. Xbox360 Controller

Bus 002 Device 005:ID 22d4:1100

Bus 002 Device 006:ID 04d9:0192 Holtek Semiconductor, Inc.

Bus 003 Device 001:ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 004 Device 001:ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 005 Device 001:ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 006 Device 001:ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 007 Device 001:ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 008 Device 001:ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 009 Device 001:ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 010 Device 001:ID 1d6b:0003 Linux Foundation 3.0 root hub

 

Any insight or direction towards solid info is much appreciated since i haven't been able to find concrete info.
Thank you!

 

 

Link to comment
13 hours ago, BoboRalph said:

I'm still new to pass-through and virtualization, so bare with me.


I'm sure how to understand my IOMMU groupings on this mobo (Supermicro x9dri-ln4f+). The board has 4 USB ports at the back and i ultimately want to be able to split them up into 4 separate controlled ports and then pass them through to 4 induvidual vms and with hotplug capability.
I've tried getting a PCIe card (StarTech PEXUSB3S44V) but have since learned that might not be an option since it's not compatible with unraid.

Currently attached is a USB-hub from Icy-Box (IB-HUB1403) that holds the mouse, keyboard and xbox controller.

 

Any insight or direction towards solid info is much appreciated since i haven't been able to find concrete info.
Thank you!

The part you quoted has nothing to do with IOMMU group. They are USB buses. I would suggest you spend some time watching SpaceInvaderOne tutorials on Youtube.

 

IOMMU only refers to PCIe devices (and thus things like your USB card which contains 4 separate controllers thus 4 PCIe devices which, if separable to individual IOMMU groups, can be passed through to the VM).

 

Also, it has nothing to do with "not compatible with Unraid". If it can't be passed through with Unraid, it's highly unlikely to be passed through with any other Linux-based OS. Error code 10 (which presumably is what you are referring to) basically says device can't be started - a rather vague error to identify where the issue is.

 

You might want to attempt the following and keep your fingers crossed. Not saying it fix your issue with the USB card but it tends to resolve unexpected problems with PCIe passthrough.

  1. Boot Unraid in Legacy mode (so stop UEFI messing about with devices)
  2. Start a new Windows template <-- this is critical because of the next thing you do
  3. Pick Q35 as machine type and OVMF instead of SeaBios <-- this step will enhance PCIe compatibility
  4. Make other necessary changes to the template, save it.
  5. Reopen the template in XML mode, go to the end of the template at this bit of code (see below) before </domain>
  6. Save template, start VM and keep your fingers crossed.

Code:

  <qemu:commandline>
    <qemu:arg value='-global'/>
    <qemu:arg value='pcie-root-port.speed=8'/>
    <qemu:arg value='-global'/>
    <qemu:arg value='pcie-root-port.width=16'/>
  </qemu:commandline>

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.