hello guys. Im having some problems passing through a USB pcie card (http://www.amazon.com/gp/product/B00FPIMICA?psc=1&redirect=true&ref_=oh_aui_detailpage_o01_s00)
i have attached a usb bluetooth device in the pcie card that i want to passthrough and it shows that is in bus 003:
Bus 003 Device 003: ID 0a5c:2198 Broadcom Corp. Bluetooth 3.0 Device
this is the result from readlink /sys/bus/usb/devices/usbX
root@Tower:~# readlink /sys/bus/usb/devices/usb1
../../../devices/pci0000:00/0000:00:14.0/usb1
root@Tower:~# readlink /sys/bus/usb/devices/usb2
../../../devices/pci0000:00/0000:00:14.0/usb2
root@Tower:~# readlink /sys/bus/usb/devices/usb3
../../../devices/pci0000:00/0000:00:1c.3/0000:04:00.0/0000:05:05.0/0000:08:00.0/usb3
root@Tower:~# readlink /sys/bus/usb/devices/usb4
../../../devices/pci0000:00/0000:00:1c.3/0000:04:00.0/0000:05:05.0/0000:08:00.0/usb4
root@Tower:~# readlink /sys/bus/usb/devices/usb5
../../../devices/pci0000:00/0000:00:1c.6/0000:0a:00.0/usb5
root@Tower:~# readlink /sys/bus/usb/devices/usb6
../../../devices/pci0000:00/0000:00:1c.6/0000:0a:00.0/usb6
root@Tower:~# readlink /sys/bus/usb/devices/usb7
../../../devices/pci0000:00/0000:00:1a.0/usb7
root@Tower:~# readlink /sys/bus/usb/devices/usb8
../../../devices/pci0000:00/0000:00:1d.0/usb8
this is the 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/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:14.0
/sys/kernel/iommu_groups/3/devices/0000:00:16.0
/sys/kernel/iommu_groups/4/devices/0000:00:19.0
/sys/kernel/iommu_groups/5/devices/0000:00:1a.0
/sys/kernel/iommu_groups/6/devices/0000:00:1b.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.2
/sys/kernel/iommu_groups/7/devices/0000:00:1c.3
/sys/kernel/iommu_groups/7/devices/0000:00:1c.6
/sys/kernel/iommu_groups/7/devices/0000:03:00.0
/sys/kernel/iommu_groups/7/devices/0000:04:00.0
/sys/kernel/iommu_groups/7/devices/0000:05:01.0
/sys/kernel/iommu_groups/7/devices/0000:05:03.0
/sys/kernel/iommu_groups/7/devices/0000:05:05.0
/sys/kernel/iommu_groups/7/devices/0000:05:07.0
/sys/kernel/iommu_groups/7/devices/0000:07:00.0
/sys/kernel/iommu_groups/7/devices/0000:08:00.0
/sys/kernel/iommu_groups/7/devices/0000:09:00.0
/sys/kernel/iommu_groups/7/devices/0000:0a:00.0
/sys/kernel/iommu_groups/8/devices/0000:00:1d.0
/sys/kernel/iommu_groups/9/devices/0000:00:1f.0
/sys/kernel/iommu_groups/9/devices/0000:00:1f.2
/sys/kernel/iommu_groups/9/devices/0000:00:1f.3
and this is the list of devices that i currently have on my unraid build (taken from system devices)
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:14.0 USB controller: Intel Corporation 9 Series Chipset Family USB xHCI Controller
00:16.0 Communication controller: Intel Corporation 9 Series Chipset Family ME Interface #1
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
00:1a.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2
00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller
00:1c.0 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 (rev d0)
00:1c.2 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 3 (rev d0)
00:1c.3 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 4 (rev d0)
00:1c.6 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 7 (rev d0)
00:1d.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1
00:1f.0 ISA bridge: Intel Corporation 9 Series Chipset Family Z97 LPC Controller
00:1f.2 SATA controller: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode]
00:1f.3 SMBus: Intel Corporation 9 Series Chipset Family SMBus Controller
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio [Radeon HD 6400 Series]
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
04:00.0 PCI bridge: ASMedia Technology Inc. Device 1184
05:01.0 PCI bridge: ASMedia Technology Inc. Device 1184
05:03.0 PCI bridge: ASMedia Technology Inc. Device 1184
05:05.0 PCI bridge: ASMedia Technology Inc. Device 1184
05:07.0 PCI bridge: ASMedia Technology Inc. Device 1184
07:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
08:00.0 USB controller: Fresco Logic Device 1100 (rev 10)
09:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
0a:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
my 2 main questions are:
1- do i need to passthrough all the devices currently on group 7? if so, how do i make sure that all those devices are not critically importat for unraid to properly work? (my unraid usb is on bus 001)
2- which one is the right address for my bus 003? (as it shows ../../../devices/pci0000:00/0000:00:1c.3/0000:04:00.0/0000:05:05.0/0000:08:00.0/usb3)
PD: I'm passing it through to use it with El Capitan Virtual Machine.
thanks in advance for any help that can be provided. suggestions and/or corrections are very welcome.
Edit: I have figured it out.
First I had to enable the option "PCIe ACS Override" on VM Manager under settings. Second, I was using the wrong method to Pass it through because I'm using this method in a q35 machine (Mac OS X El Capitan). I was using the Hostdev method and I needed to use the qemu:arg method.
Wrong (Hostdev method):
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
</source>
</hostdev>
Right (qemu:arg method):
<qemu:arg value='-device'/>
<qemu:arg value='vfio-pci,host=08:00.0,bus=root.1,addr=00.1'/>
Note that the addr=00.1 because in the addr=00.0 i have my GPU passed through.
Is now working like a charm. Hope it can help somebody.