March 8, 201610 yr How do I pass through multiple pci devices? I passed through my NIC to PFsense, but can't passthrough my USB PCI device to Windows 10. I'm using pci-stub.ids=8086:1521 but how do I add multiple targets?
March 8, 201610 yr I have only stub'd one device (HDD controller) so that the disks don't show up on the dashboard otherwise I wouldn't bother even for that. XML for the VM: <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/> </source> <alias name='hostdev0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x0b' slot='0x01' function='0x0'/> </source> <alias name='hostdev1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </source> <alias name='hostdev2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </source> <alias name='hostdev3'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x07' slot='0x00' function='0x0'/> </source> <alias name='hostdev4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </source> <alias name='hostdev5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> </hostdev> Note unRAID added the alias names and the address types above. Also 00:1d.0 is my MB USB controller it would be done the same way for a PCI USB controller if you are passing the whole controller through to a VM. Devices: 00:00.0 Host bridge: Intel Corporation Xeon E3-1200 Processor Family DRAM Controller (rev 09) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:06.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05) 00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5) 00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5) 00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b5) 00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5) 00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5) 00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5) 00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b5) 00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5) 00:1f.0 ISA bridge: Intel Corporation C204 Chipset Family LPC Controller (rev 05) 00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05) 00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05) 01:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03) 02:00.0 Multimedia controller: Philips Semiconductors SAA7164 (rev 81) 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 05:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 06:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 07:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 02) 08:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 02) 09:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 02) 0a:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 10) 0b:01.0 SCSI storage controller: Marvell Technology Group Ltd. MV88SX6081 8-port SATA II PCI-X Controller (rev 09) IOMMU groups: /sys/kernel/iommu_groups/0/devices/0000:00:00.0 /sys/kernel/iommu_groups/1/devices/0000:00:01.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.0 /sys/kernel/iommu_groups/2/devices/0000:00:06.0 /sys/kernel/iommu_groups/2/devices/0000:02:00.0 /sys/kernel/iommu_groups/3/devices/0000:00:1a.0 /sys/kernel/iommu_groups/4/devices/0000:00:1c.0 /sys/kernel/iommu_groups/5/devices/0000:00:1c.1 /sys/kernel/iommu_groups/6/devices/0000:00:1c.2 /sys/kernel/iommu_groups/7/devices/0000:00:1c.3 /sys/kernel/iommu_groups/8/devices/0000:00:1c.4 /sys/kernel/iommu_groups/9/devices/0000:00:1c.5 /sys/kernel/iommu_groups/10/devices/0000:00:1c.6 /sys/kernel/iommu_groups/11/devices/0000:00:1d.0 /sys/kernel/iommu_groups/12/devices/0000:00:1e.0 /sys/kernel/iommu_groups/12/devices/0000:0b:01.0 /sys/kernel/iommu_groups/13/devices/0000:00:1f.0 /sys/kernel/iommu_groups/13/devices/0000:00:1f.2 /sys/kernel/iommu_groups/13/devices/0000:00:1f.3 /sys/kernel/iommu_groups/14/devices/0000:03:00.0 /sys/kernel/iommu_groups/15/devices/0000:04:00.0 /sys/kernel/iommu_groups/16/devices/0000:05:00.0 /sys/kernel/iommu_groups/17/devices/0000:06:00.0 /sys/kernel/iommu_groups/18/devices/0000:07:00.0 /sys/kernel/iommu_groups/19/devices/0000:08:00.0 /sys/kernel/iommu_groups/20/devices/0000:09:00.0 /sys/kernel/iommu_groups/20/devices/0000:0a:00.0 syslinux.cfg: default /syslinux/menu.c32 menu title Lime Technology prompt 0 timeout 50 label unRAID OS menu default kernel /bzimage append intel_pstate=disable pci-stub.ids=11ab:6081 initrd=/bzroot label unRAID OS Safe Mode (no plugins) kernel /bzimage append initrd=/bzroot unraidsafemode label Memtest86+ kernel /memtest 11ab:6081 is the 0b:01.0 entry in the iommu groups and the devices list above. So to pass through PCI devices you don't need to stub them unless you want to hide them from unRAID. If you just put them in the XML unRAID will take care of removing them from use in unRAID automatically so you don't need to stub them. Hope that helps you! Edit should have read your post closer. If you are passing through an individual USB device and not the whole USB controller then the info above will not help you. I've never passed through an individual USB device only whole controllers - sorry.
March 8, 201610 yr Author No this helps, thank you by the way, I want to pass through the entire controller. I need it to be hot swapable as its my HTPC and my usb extender likes to disconnect from time to time. So Ill try doing a XML edit and see if I can't get it to pass through. So I only do a Syslinux edit if I want the device to be hidden from UNRAID?
March 9, 201610 yr No this helps, thank you by the way, I want to pass through the entire controller. I need it to be hot swapable as its my HTPC and my usb extender likes to disconnect from time to time. So Ill try doing a XML edit and see if I can't get it to pass through. So I only do a Syslinux edit if I want the device to be hidden from UNRAID? Essentially. There might be reasons that require it but I have not encountered any myself. I only do it on the HDD controller to hide the drives from unRAID so that they don't show up on the dash board or in unassigned devices. One reason I can see that you might need this is if you are passing through a graphics card. You might need to hide it from unRAID so it doesn't steal it. NOTE that is just a guess on my part as my VMs are all headless.
March 9, 201610 yr No this helps, thank you by the way, I want to pass through the entire controller. I need it to be hot swapable as its my HTPC and my usb extender likes to disconnect from time to time. So Ill try doing a XML edit and see if I can't get it to pass through. So I only do a Syslinux edit if I want the device to be hidden from UNRAID? Essentially. There might be reasons that require it but I have not encountered any myself. I only do it on the HDD controller to hide the drives from unRAID so that they don't show up on the dash board or in unassigned devices. One reason I can see that you might need this is if you are passing through a graphics card. You might need to hide it from unRAID so it doesn't steal it. NOTE that is just a guess on my part as my VMs are all headless. There is no need to hide the graphics card from unraid as it doesn't bind the card and do release it if you pass it through.
March 9, 201610 yr Author So it worked, by editing XML only the USB card is passed through, I have a hot swap-able USB port now. The NIC pass through works flawlessly as well. Thank you so much.
Archived
This topic is now archived and is closed to further replies.