***GUIDE*** Passthrough Entire PCI USB Controller


archedraft

511 posts in this topic Last Reply

Recommended Posts

Have you checked that your USB 3 ports is enabled in the bios? If it's the front ports in your case, have you checked if they are connected to the motherboard?

 

I appreciate the sanity check, I went and checked and both of these are setup properly.

 

I reseated my front USB3 header (which was connected fine, but a reseat never hurts), and checked the bios.  XHCI and EHCI handoffs are enabled as is the onboard usb3 controller.  Neither the front usb3 ports nor the usb3 ports on the rear i/o are recognized by unraid.

Link to post
  • Replies 510
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Intent: This guide will take you through the process of passing through an entire PCI USB Controller instead of doing it individually. One benefit is that USB will be plug n play on your virtual mac

I automated steps 1-9 of this guide.   The output shows USB bus #, PCI Address, and IOMMU group #   Bus 1 PCI 0000:00:1a.0 IOMMU 20     Intel Corp.     Linux Foundation 2.0 root hub Bus 2

I believe users with this specific card (Startech PEXUSB3S44V) have no issues passing them to the machine, but have issues once passed to the machine inside the VM. Mine throws a Code 10 error on the

Posted Images

HI folks,

 

  I imagine that the usb 3 ports are on bus 02 (sysdevices page attached below), but whenever I plug a device into any of the usb3 ports (on the motherboard i/o OR the case front usb ports) the device just doesn't show up under lsusb.

 

 

when checking the lsusb are you plugging a usb 2.0 device or usb 3 device in to check it. Maybe try a usb 3.0 device if you have one. (maybe worth a try)

 

If you are sure that device 02:00.0 USB controller: VIA Technologies, Inc. Device 3483 (rev 01) isnt the controller your unraid key is on(please double check)  then you could just pass it through and see in windows if it is the usb 3 ports on front.

 

add to xml

 

<qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.2'/>

 

 

so end of your xml file would look like this

<qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=06:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=01.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=06:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.2'/>
  </qemu:commandline>
</domain>

Link to post

Unfortunately I don't have a usb3 device I can try. 

 

I tried passing through with the qemu argument you suggested (new xml below), device manager is showing a new "xhci compliant controller" with the yellow exclamation point.  If I go into the device properties it's showing a "this device cannot start (code 10)" error. 

 

I attempted to update the driver twice, once allowing windows to search for a driver, and once telling it to search the virtio iso, both times windows returned with a "your current driver is the best driver for this device" message.

 

At least it does appear as though that is the usb3 controller.

Link to post

I have been able to get everything to work on my Win10VM but USB sound (Creative SoundBlaster 2 for gaming headsets), it has static and stuttering. I attempted to set the sound quality above CD but it is greyed out and wont allow adjustment.

 

I bought a SIIG 4 port 3.0 PCIe USB controller card (JU-P40412-S1) with the hopes i could pass it through and solve the issues.

 

I now show the Creative Soundblaster on bus3 by itself, when i do the readlink command for bus3 i get back the following:

 

../../../devices/pci0000:00/0000:00:1c.6/0000:06:00.0/usb3

 

I tried using the 00 1c 6, didn't work (still static and no hot-plug ability)

I also tried 06 00 0, also no luck.

 

Am I looking at this right or is there a way to pass through the entire PCIe USB card more easily?

 

i have included the lsub and readlink output as well as the System Devices output should any kind soul wish to take a look...

 

root@unGhecko:~# lsusb

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 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 003 Device 004: ID 041e:323d Creative Technology, Ltd

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 002: ID 0480:a208 Toshiba America Info. Systems, Inc.

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

Bus 001 Device 005: ID 0781:5571 SanDisk Corp. Cruzer Fit

Bus 001 Device 018: ID 14cd:127a Super Top

Bus 001 Device 003: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser

Bus 001 Device 002: ID 1d57:0005 Xenta Wireless Receiver (Keyboard and Mouse)

Bus 001 Device 010: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

Bus 001 Device 013: ID 19b9:8d10 Data Robotics

Bus 001 Device 016: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

Bus 001 Device 015: ID 1267:0103 Logic3 / SpectraVideo plc G-720 Keyboard

Bus 001 Device 011: ID 045e:0719 Microsoft Corp. Xbox 360 Wireless Adapter

Bus 001 Device 008: ID 050d:0237 Belkin Components F5U237 USB 2.0 7-Port Hub

Bus 001 Device 009: ID 046d:c21c Logitech, Inc. G13 Advanced Gameboard

Bus 001 Device 007: ID 05e3:0610 Genesys Logic, Inc. 4-port hub

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

root@unGhecko:~# readlink /sys/bus/usb/devices/usb3

../../../devices/pci0000:00/0000:00:1c.6/0000:06:00.0/usb3

root@unGhecko:~#

 

 

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 82801 PCI Bridge (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: NVIDIA Corporation GK104 [GeForce GTX 760] (rev a1)

01:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1)

03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03)

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)

06:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)

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

/sys/kernel/iommu_groups/8/devices/0000:03:00.0

/sys/kernel/iommu_groups/8/devices/0000:05: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

USB Devices

 

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 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 003 Device 004: ID 041e:323d Creative Technology, Ltd

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 002: ID 0480:a208 Toshiba America Info. Systems, Inc.

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

Bus 001 Device 005: ID 0781:5571 SanDisk Corp. Cruzer Fit

Bus 001 Device 018: ID 14cd:127a Super Top

Bus 001 Device 003: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser

Bus 001 Device 002: ID 1d57:0005 Xenta Wireless Receiver (Keyboard and Mouse)

Bus 001 Device 010: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

Bus 001 Device 013: ID 19b9:8d10 Data Robotics

Bus 001 Device 016: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

Bus 001 Device 015: ID 1267:0103 Logic3 / SpectraVideo plc G-720 Keyboard

Bus 001 Device 011: ID 045e:0719 Microsoft Corp. Xbox 360 Wireless Adapter

Bus 001 Device 008: ID 050d:0237 Belkin Components F5U237 USB 2.0 7-Port Hub

Bus 001 Device 009: ID 046d:c21c Logitech, Inc. G13 Advanced Gameboard

Bus 001 Device 007: ID 05e3:0610 Genesys Logic, Inc. 4-port hub

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

 

-sjhotz

 

Link to post

Thank you so much saarg! Getting closer!?

 

OK,  I enabled ACS and rebooted, its now in its own separate group (17).

 

I added the following below my last hostdev

 

<hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

      </source>

    </hostdev>

 

Clicked update and done.

 

Then edited the VM itself and unchecked the box next to the Creative device.

 

VM started up (getting 'kernel;disabling IRQ #16' error messages in the putty log), does not see the Creative Soundblaster USB (so no sound) or allow hotswap on the new PCIe card. I have included the modified XML for reference.

 

 

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

  <name>W10VM</name>

  <uuid>58fb6f65-44ea-4694-af42-e15d4ec8dadf</uuid>

  <metadata>

    <vmtemplate name="Custom" icon="windows.png" os="windows"/>

  </metadata>

  <memory unit='KiB'>12582912</memory>

  <currentMemory unit='KiB'>12582912</currentMemory>

  <memoryBacking>

    <nosharepages/>

    <locked/>

  </memoryBacking>

  <vcpu placement='static'>3</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='0'/>

    <vcpupin vcpu='1' cpuset='1'/>

    <vcpupin vcpu='2' cpuset='2'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='3' threads='1'/>

  </cpu>

  <clock offset='localtime'>

    <timer name='rtc' tickpolicy='catchup'/>

    <timer name='pit' tickpolicy='delay'/>

    <timer name='hpet' present='no'/>

  </clock>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>restart</on_crash>

  <devices>

    <emulator>/usr/bin/qemu-system-x86_64</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw' cache='writeback'/>

      <source file='/mnt/user/vdisks/W10/W10VM/vdisk1.img'/>

      <target dev='hdc' bus='virtio'/>

      <boot order='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

    </disk>

    <disk type='file' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <source file='/mnt/user/ISO's/Win10/Windows 10 Professional x86-x64.iso'/>

      <target dev='hda' bus='ide'/>

      <readonly/>

      <boot order='2'/>

      <address type='drive' controller='0' bus='0' target='0' unit='0'/>

    </disk>

    <disk type='file' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <source file='/mnt/user/ISO's/virtio-win-0.1.112.iso'/>

      <target dev='hdb' bus='ide'/>

      <readonly/>

      <address type='drive' controller='0' bus='0' target='0' unit='1'/>

    </disk>

    <controller type='usb' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>

    </controller>

    <controller type='pci' index='0' model='pci-root'/>

    <controller type='ide' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

    </controller>

    <controller type='virtio-serial' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:2b:08:ba'/>

      <source bridge='br0'/>

      <model type='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </interface>

    <serial type='pty'>

      <target port='0'/>

    </serial>

    <console type='pty'>

      <target type='serial' port='0'/>

    </console>

    <channel type='unix'>

      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/W10VM.org.qemu.guest_agent.0'/>

      <target type='virtio' name='org.qemu.guest_agent.0'/>

      <address type='virtio-serial' controller='0' bus='0' port='1'/>

    </channel>

    <hostdev mode='subsystem' type='usb' managed='yes'>

      <source>

        <vendor id='0x046d'/>

        <product id='0xc517'/>

      </source>

    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='yes'>

      <source>

        <vendor id='0x1d57'/>

        <product id='0x0005'/>

      </source>

    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='yes'>

      <source>

        <vendor id='0x046d'/>

        <product id='0xc21c'/>

      </source>

    </hostdev>

    <memballoon model='virtio'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

    </memballoon>

  </devices>

  <qemu:commandline>

    <qemu:arg value='-device'/>

    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>

  </qemu:commandline>

</domain>

 

Did i edit the XML incorrectly?

 

-sjhotz

 

Link to post

Looks like the edit no longer in your xml.

After you edited it and took out the Creative device in vm manager it gets rid of the xml edit.

You must edit the xml then leave it, if you gointo vm manager and change anything it will get rid of anything manually added to the xml

Link to post

Thank you all!

 

I know have working sound!

 

As long as I don't switch to the unraid monitor input and away i got no IRQ #16 errors either!

 

My system is happily humming along allowing me to game and convert a vmdk to image at the same time!

 

Next stop blueray drive!

 

Fun!

-sjhotz

Link to post

Try using the usb driver for that controller(via) from the driver cd for your motherbaord. Or if you dont have it goto motherboard manufacturers website and dl the driver from there.

 

I can't believe I didn't think of that to be honest.  I did try the driver and it got me closer.  Now I have a VIA usb3 root hub that won't work.  I've tried different drivers even going direct to the VIA side and getting their drivers.  I'm not sure that this is a passthrough issue anymore, and I'm thinking of just buying a USB3 pci card to passthrough and calling it a day.

 

Thanks for your help gridrunner! :D

Link to post

Would an accurate summary of the choices be:

 

1) Passthrough specific devices which need to be plugged in at the time of passthru and NO swapping later

or

2) Passthrough whole controller (and can swap later)

 

No passthrough of individual ports possible?

 

This is how I understand it as well.

Link to post

arch - thanks for the great write-up.  I hit a snag where the controller I wanted to pass was in an IOMMU group that had other devices I didn't want to pass to the VM, though.  :(

 

Since this is a PCIe card, I didn't expect this.  I found this blog post about IOMMU groups really helpful, specifically

In closing, let's discuss strategies for dealing with IOMMU groups that contain more devices than desired.  For a plug-in card, the first option would be to determine whether installing the card into a different slot may produce the desired grouping.

 

After a few tries, I found a slot that put the usb controller and the GPU I want to pass in the same group.  So I don't need to try the PCIe ACS override.

 

Maybe it is worth addressing what to do if you don't have nice groups in your first post?  Also, your group shell script would look pretty good in that first post!

 

And again, thanks!

Link to post

I am having an issue with my logitech C525 USB webcam. I have tried passing it through to my Windows 10 VM in a few different ways. If I plug it in to a USB port on my motherboard (doesn't matter if it is the onboard Intel or ASMedia controller) it shows up under the USB Devices menu but doesn't show up at all in Windows. I bought an Inateck PCI-E USB 3.0 card to see if that would work (also to get USB hotplugging) and there are issues there too.

 

This is the output of  lspci | grep USB

 

00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)

04:00.0 USB controller: ASMedia Technology Inc. Device 1242

05:00.0 USB controller: Fresco Logic Device 1100 (rev 10)

 

The Fresco Logic Device must be the Inateck card is it wasn't there before I installed the card and that is the only change I made.

 

lsusb shows this

 

Bus 006 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 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 003 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 003: ID 046d:c32b Logitech, Inc.

Bus 001 Device 002: ID 046d:0a17 Logitech, Inc. G330 Headset

Bus 001 Device 004: ID 13fe:3e00 Kingston Technology Company Inc. Flash Drive

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

 

This is my unRAID flash drive Kingston Technology Company Inc. Flash Drive

 

Logitech Inc. is my G910 keyboard and Logitech Inc. G330 Headset is a USB sound card since onboard sound apparantly doesn't work with Skylake

 

My Logitech webcam doesn't show up even though it is plugged into the Inateck card and I also have another flash drive plugged into the Inateck card that doesn't show up.

 

Both the flash drive and webcam show up if I plug them into an onboard USB port.

 

Any advice would be greatly appreciated.

 

Link to post

Has anyone done the mapping on a Supermicro X10SLL-F board?

 

lspci

00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)

 

lsusb

Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 003 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 005: ID 0557:2419 ATEN International Co., Ltd
Bus 001 Device 003: ID 0000:0001
Bus 001 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 002: ID 13fe:3100 Kingston Technology Company Inc. 2/4 GB stick
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

The board has:

* 4 external USB 2.0 ports

* 1 internal USB 3.0 port (type A)

* 1 port internal usb 3.0 header

* 2 port internal usb 2.0 header.

 

When connecting a USB device (DOK) to the external USB 2.0 ports I get them all on BUS 001 but my boot disk which is connected to the internal USB 3.0 port is also on BUS 001.

 

I do not have internal cables to USB headers so can't test all other ports.

 

How can both USB 3.0 and USB 2.0 reside on the same controller?

 

edit:

I found and added an internal USB 2.0 header and still the test DOK is shown as USB 001 !!!

 

Are all the motherboards' USB ports connected to the same controller?!

 

Link to post

With some flash drives attached, please sun this:

 

echo "unRAID - > " $(udevadm info -q path -n /dev/disk/by-label/UNRAID |grep -Po '0000:\K\w{2}:\w{2}\.\w{1}' )
for d in /dev/disk/by-id/usb-*; do echo "$d -> " $(udevadm info -q path -n $d |grep -Po '0000:\K\w{2}:\w{2}\.\w{1}')|column -t ; done

 

See if any device is on a different PCI bus.

Link to post

Has anyone done the mapping on a Supermicro X10SLL-F board?

 

lspci

00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)

 

The xHCI is your USB3 controller.

EHCI #2 is for USB2 controller and if it is like my X9SCM-F MB it will be the one the internal USB port is connected.

EHCI #1 is for USB2 controller and if it is like my X9SCM-F MB it is the one I pass through to VMs and has most of the external USB ports on it.

 

 

But based on the description at newegg the internal USB port is one of the USB3 ports.  The four external are likely to all be connected to the EHCI #1 port and the 2 on the header are likely to be on EHCI #2.

Link to post

With some flash drives attached, please sun this:

 

echo "unRAID - > " $(udevadm info -q path -n /dev/disk/by-label/UNRAID |grep -Po '0000:\K\w{2}:\w{2}\.\w{1}' )
for d in /dev/disk/by-id/usb-*; do echo "$d -> " $(udevadm info -q path -n $d |grep -Po '0000:\K\w{2}:\w{2}\.\w{1}')|column -t ; done

 

See if any device is on a different PCI bus.

I will do it later on today when I get back home and post back.

 

BobPhoenix,

That is what is puzzling... all ports (internal USB 3.0, internal USB 2.0, external USB 2.0) are reporting back the same BUS 001 !

 

Link to post

I've followed the guide and the results make no sense in that every socket is coming back as bus 003.

Did you ever get it working - did you understand why they are all reporting the same bus? I am having the same issue.

 

Link to post

I ran readlink on all usb devices

Tower login: root
Linux 4.1.17-unRAID.
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:1a.0/usb3
root@Tower:~#  readlink /sys/bus/usb/devices/usb4
../../../devices/pci0000:00/0000:00:1d.0/usb4
root@Tower:~#

 

It seems that USB1 and USB2 are on the same PCI device 00:14.0 although one is USB2.0 and the other is USB 3.0.

 

If so what are the other 2 USB devices (3 and 4)?

 

Link to post

After reading Intel® C222 Express PCH datasheet, it seems that the xHCI controller supports 14 USB 2.0 ports of which 6 can be USB 3.0 (In addtion there are 2 EHCI controllers).

See section 5.21 of http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/8-series-chipset-pch-datasheet.pdf

 

I am now thinking that SuperMicro connected all USB ports (2.0 and 3.0) to the xHCI controller - meaning that it cannot be passed-through as a whole.  >:(:(

 

Link to post

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.