Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Two Identical USB Controllers - Is It Possible to Passthrough Only One?

Featured Replies

I've got two identical USB controllers in different IOMMU groups.  When I passthrough the device ID both of them get passed through. 

 

Is there a way to (i) passthough only one, or (ii) pass each one to seperate VMs?

 

My preference is for (i) as otherwise I lose all my rear USB 3 ports, although it'd be nice to know if (ii) is possible.


 

IOMMU group 19:	[1022:145f] 0c:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] USB 3.0 Host controller

IOMMU group 40:	[1022:145f] 44:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] USB 3.0 Host controller

I've also got 2 in the IOMMU group - is it possible to split these?

 

IOMMU group 14:	[1022:43ba] 01:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset USB 3.1 xHCI Controller (rev 02)
[1022:43b6] 01:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset SATA Controller (rev 02)
[1022:43b1] 01:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset PCIe Bridge (rev 02)
[1022:43b4] 02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)
[1022:43b4] 02:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)
[1022:43b4] 02:03.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)
[1022:43b4] 02:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)
[1022:43b4] 02:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)
[1022:43b4] 02:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)
[1022:43b4] 02:07.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02)
[1b21:2142] 03:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller
[544d:6178] 05:00.0 Multimedia controller: TBS Technologies DVB Tuner PCIe Card
[8086:1539] 08:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)

Thanks

Use xen-pciback.hide=(0c:00.3)(44:00.3) in your syslinux.cfg. You have to add the pass through tags in the xml manually though. 

  • Author
3 minutes ago, saarg said:

Use xen-pciback.hide=(0c:00.3)(44:00.3) in your syslinux.cfg. You have to add the pass through tags in the xml manually though. 

I just tried googling xen-pciback.hide and I can't figure out what it does?

 

I've just realised I can already passthrough the controllers to different VMs, so does this allow me to only passthrough one and leave the other for unRAID?

 

Is it possible to split the controllers in IOMMU 14?

On 11/15/2018 at 5:32 PM, DZMM said:

I just tried googling xen-pciback.hide and I can't figure out what it does?

 

I've just realised I can already passthrough the controllers to different VMs, so does this allow me to only passthrough one and leave the other for unRAID?

 

Is it possible to split the controllers in IOMMU 14?

It does the same as stubbing devices, but uses the PCI device address ins tead of vendor ID. 

 

If they are in different groups you can pass the through to different VM's. 

 

You have enabled ACS override? 

  • Author

Thanks.  So if I just want to passthrough just the 0c:00.3 controller and not the 44:00.3 controller I add to my syslinux

 

xen-pciback.hide=(0c:00.3)

 

default menu.c32
menu title Highlander Boot Options
prompt 0
timeout 80
label unRAID OS (stubbed)
  menu default
  kernel /bzimage
  xen-pciback.hide=(0c:00.3)
  append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot
label unRAID OS GUI Mode (stubbed)
  kernel /bzimage
  xen-pciback.hide=(0c:00.3)
  append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot,/bzroot-gui

 

 

and to my xml like this:

 

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0c' slot='0x00' function='0x3'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </hostdev>

??

 

15 hours ago, saarg said:

You have enabled ACS override? 

I've never used ACS as the help warning scared me off - is it safe?  Will this potentially split IOMMU group 14 into different groups?

1 hour ago, DZMM said:

Thanks.  So if I just want to passthrough just the 0c:00.3 controller and not the 44:00.3 controller I add to my syslinux

 


xen-pciback.hide=(0c:00.3)

 


default menu.c32
menu title Highlander Boot Options
prompt 0
timeout 80
label unRAID OS (stubbed)
  menu default
  kernel /bzimage
  xen-pciback.hide=(0c:00.3)
  append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot
label unRAID OS GUI Mode (stubbed)
  kernel /bzimage
  xen-pciback.hide=(0c:00.3)
  append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot,/bzroot-gui

 

 

and to my xml like this:

 


    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0c' slot='0x00' function='0x3'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </hostdev>

??

 

I've never used ACS as the help warning scared me off - is it safe?  Will this potentially split IOMMU group 14 into different groups?

 

That looks correct. 

 

The warning is there cause there is a chance that it might happen, but I have not heard anyone here getting any problems. 

I would activate it. You don't know if it's going to split the devices until you activate it. 

  • Author

Thanks - for ACS do I choose downstream, multi-function or both?

 

@bonienl maybe the ACS text below needs updating, or at least a link to an actual FAQ as the forum search sucks

 

Quote

Warning: Use of this setting could cause possible data corruption with certain hardware configurations. Please visit the Lime Technology forums for more information. A reboot will be required for changes to this setting to take affect.

 

22 hours ago, DZMM said:

Thanks - for ACS do I choose downstream, multi-function or both?

 

@bonienl maybe the ACS text below needs updating, or at least a link to an actual FAQ as the forum search sucks

 

 

 

Try downstream first. 

Why does the text need to be changed? There still is a chance for corruption. I only said I haven't heard about anyone with an issue. 

  • Author
48 minutes ago, saarg said:

 

Try downstream first. 

Why does the text need to be changed? There still is a chance for corruption. I only said I haven't heard about anyone with an issue. 

I tried multi-function and my machine didn't explode, and it split group 14 which is what I wanted, so I'll try passing through a controller next time I reboot.

 

By changing the help content, I was suggesting explaining what each option is or linking to a relevant FAQ page.

9 minutes ago, DZMM said:

By changing the help content, I was suggesting explaining what each option is or linking to a relevant FAQ page.

Can you put that as a bug report (annoyance), so it will be addressed in a future release.

  • Author

Will do

  • 3 years later...

This thread was helpful to me for getting my first USB controller passed through.

All of my USB controllers were on the same device ID even though they were in 2 different IOMMU groups, but using that "xen-pciback.hide" directive I was able to isolate the 2 buses in one IOMMU group from the 6 other busses in the other group, and was then able to successfully add that group the VM using the XML examples given here.

 

Many thanks

10 minutes ago, Vidamus said:

"xen-pciback.hide

You should be using Tools - system devices to isolate devices if at all possible  xen-pciback is a Legacy method of doing things and may (or may not) work in the future

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.