USB passthrough Oculus Rift multiple sensors


Recommended Posts

I am trying to pass through two sensors for an Oculus Rift.  Obviously they are the same vendor etc.. causing a conflict.  I am getting error

 

operation failed: Multiple USB devices for 2833:211, use <address> to specify one

 

I only have the on board controller and am reluctant to pass it through out if fear of messing up the unraid install.  I can not add a PCI card as my GPU blocks the only open slot.  Is there a way to somehow just rename it to resolve the conflict?  Thanks in advance for any assistance. 

Link to comment

I was able to assign the devices in xml by bus and device number as outlined in the sticky in this forum.  When I launch the VM the Oculus software detects all sensors.  Then for some reason during setup the device numbers keep getting changed.  When I check Tools/System Devices the device number assigned to the device is off a couple of digits making the address useless in a matter of seconds.  Is there anyway to prevent this?

Link to comment

Not every USB port is created equal on your mobo.  Some go through USB hubs and some go straight to the PCH (the Intel chipset chip on the mobo, not the processor).  If you can find a USB port that goes straight to the PCH, you can put Unraid there and pass the rest of the controller.

On mine, I have a number of USB host controllers:

IOMMU group 21
[8086:8d31] 00:14.0 USB controller: Intel Corporation C610/X99 series chipset USB xHCI Host Controller (rev 05)

IOMMU group 24
[8086:8d2d] 00:1a.0 USB controller: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #2 (rev 05)

IOMMU group 30
[8086:8d26] 00:1d.0 USB controller: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #1

IOMMU group 35
[8086:1578] 03:02.0 PCI bridge: Intel Corporation DSL6540 Thunderbolt 3 Bridge [Alpine Ridge 4C 2015]
[8086:15b6] 06:00.0 USB controller: Intel Corporation DSL6540 USB 3.1 Controller [Alpine Ridge]

IOMMU group 42
[1b73:1100] 4e:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev 10)

IOMMU group 47
[1b73:1100] 54:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev 10)

 

The 00:14.0 controller is the PCH USB 3.0 host controller.  

I think the 00:1a.0 and 00.1d.0 are the PCH USB 2.0 host controllers

The 06:00.0 address is the Alpine ridge thunderbolt controller, which also runs a single USB 3.1 port and a USB type C port.

The 4e:00.0 and 54:00.0 are my PCI plug in controllers.

 

Some deep stuff around USB host controllers coming up....

 

There are actually separate USB 3.0 and USB 2.0 controllers on the Intel PCH (chipset).  If you can pass the USB 3.0 controller (usually called xHCI), then it won't necessarily pass the usb 2.0 controllers.  This puts things in a weird state where USB 3.0 devices will show up to the VM and USB 2.0 devices go to unraid.  This should allow your unraid thumb driver, mouse and keyboard to run at USB 2.0 to the unraid host and the 3.0 devices (oculus stuff) to the VM.

 

I'm really not sure if something like this would work for you.  I've never actually sliced up the USB 2.0 and USB 3.0 controllers for passthru.  I'm not sure you can do it for a 8086 mapped PCH device.  But I have often disabled the USB 3.0 controller in some way, where the USB 2.0 function continues to run just fine.  USB 2.0 and USB 3.0 are only slightly related.  If you look at a USB cable, you will find that it is two entirely independent cables that happen to share a sheath and plugs.  There is little interaction between the USB 2.0 and USB 3.0 worlds.  In other words, a USB 3.0 cable with the USB2.0 D+/- lines removed will still work as a USB3.0 cable.  Just like a USB 2.0 cable plugged into a USB 3.0 plug will continue to run as USB 2.0.

 

Link to comment

The Oculus sensors are probably being re-enumerated after the VM launches.  Lots of things can cause a USB port to re-enumerate (which just means get assigned a number).  This is why device number is worthless.  It is dynamically assigned.  The vendor ID stays the same.  PCI re-mapping is much more straight forward.

Link to comment

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.