Acps Posted October 25, 2015 Posted October 25, 2015 I had originally posted this in archedraft's guide, since I was following his guide. However it has been a week now and I haven't heard back from him, so I thought I would start my own post for some help. I will copy and paste everything as I had a lot of information in it: archedraft, I have a few more things I would like to see if you could help me. I went ahead a bought a PCIe USB 3.0 expansion card. I installed it and started testing all the 3.0 ports. There are 7 total, 5 external and 2 internal, all 3.0. Here is what I have so far. lspci | grep USB: 00:14.0 USB controller: Intel Corporation 9 Series Chipset Family USB xHCI Controller 00:1a.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2 00:1d.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1 06:00.0 USB controller: Fresco Logic Device 1100 (rev 10) The Intel controller is my onboard USB ports, and the Fresco Logic Device is my PCIe USB 3.0 expansion card. Internal - lsusb: Bus 003 Device 004: ID 154b:00ad PNY Bus 004 Device 008: ID 154b:00ad PNY External - lsusb: Bus 004 Device 003: ID 154b:00ad PNY Bus 004 Device 004: ID 154b:00ad PNY Bus 004 Device 005: ID 154b:00ad PNY Bus 004 Device 006: ID 154b:00ad PNY Bus 004 Device 007: ID 154b:00ad PNY readlink /sys/bus/usb/devices/usb: ../../../devices/pci0000:00/0000:00:14.0/usb1 ../../../devices/pci0000:00/0000:00:14.0/usb2 ../../../devices/pci0000:00/0000:00:1c.4/0000:06:00.0/usb3 ../../../devices/pci0000:00/0000:00:1c.4/0000:06:00.0/usb4 ../../../devices/pci0000:00/0000:00:1a.0/usb5 ../../../devices/pci0000:00/0000:00:1d.0/usb6 System Devices - 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:02.0 /sys/kernel/iommu_groups/3/devices/0000:00:03.0 /sys/kernel/iommu_groups/4/devices/0000:00:14.0 /sys/kernel/iommu_groups/5/devices/0000:00:16.0 /sys/kernel/iommu_groups/6/devices/0000:00:1a.0 /sys/kernel/iommu_groups/7/devices/0000:00:1b.0 /sys/kernel/iommu_groups/8/devices/0000:00:1c.0 /sys/kernel/iommu_groups/8/devices/0000:00:1c.2 /sys/kernel/iommu_groups/8/devices/0000:00:1c.3 /sys/kernel/iommu_groups/8/devices/0000:00:1c.4 /sys/kernel/iommu_groups/8/devices/0000:03:00.0 /sys/kernel/iommu_groups/8/devices/0000:04:00.0 /sys/kernel/iommu_groups/8/devices/0000:06:00.0 /sys/kernel/iommu_groups/9/devices/0000:00:1d.0 /sys/kernel/iommu_groups/10/devices/0000:00:1f.0 /sys/kernel/iommu_groups/10/devices/0000:00:1f.2 /sys/kernel/iommu_groups/10/devices/0000:00:1f.3 System Devices - PCI 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:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06) 00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio 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: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.4 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 (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: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2) 01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1) 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c) 04:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41) 06:00.0 USB controller: Fresco Logic Device 1100 (rev 10) [\code] System Devices - USB Devices: [code] Bus 006 Device 002: ID 8087:8001 Intel Corp. Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 002: ID 2109:0812 Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 2109:2812 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 002: ID 8087:8009 Intel Corp. Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub I tried passing through: 06:00.0 USB controller: Fresco Logic Device 1100 (rev 10), however that did not work, multiple errors. My unRaid USB is the SanDisk Cruzer, on Bus 01, which is located on a 2.0 USB port on the motherboard. A few things I have noticed is that "readlink /sys/bus/usb/devices/usb" for Bus 3 and 4, produce an extra address that the other ones do. I think this might be related to : 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.4 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 (rev d0) Which makes some sense, however that is only 5 of the 7 USB ports. I am assuming that these are the 5 external ports. Then there are the 2 internal ports. The extremely odd thing is the fact that all 5 of the external ports are on Bus 4, which makes sense, but then the internal ports, one is on Bus 3 and one is on Bus 4. So a total of 6 on Bus 4 and 1 on Bus 3. So I am lost at what to do next, maybe there is something I need to do in the Bios??? Or could it be a driver issue? I don't know what I should try next to pass through this USB card. Any help I would greatly appreciate it. Would love any help in helping me get this pass-through to my Win10 VM. Thanks in advance!!!
billington.mark Posted October 27, 2015 Posted October 27, 2015 Could you post your VMs XML, and also what errors you get when starting up the VM.
bungee91 Posted October 27, 2015 Posted October 27, 2015 You have ALL this stuff in IOMMU group 8 /sys/kernel/iommu_groups/8/devices/0000:00:1c.0 /sys/kernel/iommu_groups/8/devices/0000:00:1c.2 /sys/kernel/iommu_groups/8/devices/0000:00:1c.3 /sys/kernel/iommu_groups/8/devices/0000:00:1c.4 /sys/kernel/iommu_groups/8/devices/0000:03:00.0 /sys/kernel/iommu_groups/8/devices/0000:04:00.0 /sys/kernel/iommu_groups/8/devices/0000:06:00.0 You have to isolate just the USB card 06:00:0, one way or another, or pass all of those devices to the VM. Easiest way, enable ACS override downstream, and you should have a device per group and should be able to get this working. If you can get the grouping to be 1 device per group without the override, it is preferred, but I would assume with that many devices (I just looked, it is mainly just your USB3 card, and a Realtek NIC) it is unlikely and you will need to use it. I have had it enabled with 2 active VM's for months now without any known issues, along with many others who have it enabled.
thaddeussmith Posted October 28, 2015 Posted October 28, 2015 also, use this method for passing through the pci device: http://lime-technology.com/forum/index.php?topic=38259.0 you'll still need to sort out the iommu issue, but it's far simpler than the other method (and works).
Acps Posted October 28, 2015 Author Posted October 28, 2015 also, use this method for passing through the pci device: http://lime-technology.com/forum/index.php?topic=38259.0 you'll still need to sort out the iommu issue, but it's far simpler than the other method (and works). You have ALL this stuff in IOMMU group 8 /sys/kernel/iommu_groups/8/devices/0000:00:1c.0 /sys/kernel/iommu_groups/8/devices/0000:00:1c.2 /sys/kernel/iommu_groups/8/devices/0000:00:1c.3 /sys/kernel/iommu_groups/8/devices/0000:00:1c.4 /sys/kernel/iommu_groups/8/devices/0000:03:00.0 /sys/kernel/iommu_groups/8/devices/0000:04:00.0 /sys/kernel/iommu_groups/8/devices/0000:06:00.0 You have to isolate just the USB card 06:00:0, one way or another, or pass all of those devices to the VM. Easiest way, enable ACS override downstream, and you should have a device per group and should be able to get this working. If you can get the grouping to be 1 device per group without the override, it is preferred, but I would assume with that many devices (I just looked, it is mainly just your USB3 card, and a Realtek NIC) it is unlikely and you will need to use it. I have had it enabled with 2 active VM's for months now without any known issues, along with many others who have it enabled. Thank you guys for your help. I used both of your inputs and go exactly what I was looking for. The original post i was referring too, had a lot of great information on how to map and see what each port is assigned to. I was then able to enable PCIe ACS override and get my PCIe USB 3.0 controller on it's on IOMMU group, then I used the the instructions in the post from thaddeus and was able to easily add that PCIe device to my Windows 10 KML, and it booted right up, it is passing through all 7 of my USB ports on my PCIe controller. Thank you fellas. Is there any downside to the PCIe ACS function I enabled?
bungee91 Posted October 28, 2015 Posted October 28, 2015 Is there any downside to the PCIe ACS function I enabled? Possible data corruption (silent too, that's always the best!), however it's unlikely. Search for posts about it, Alex Williamson (Red Hat) discusses its use and cautions, however you may not really have a choice if you want to be able to do what you're doing on your specific hardware.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.