xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)

Radu B. Rusu-3
Administrator

So it turns out that the xhci_hcd (USB 3.0) kernel driver is broken, and the code is quite crappy (just look at it for
yourself), and results in a lot of "Not enough bandwidth" issues with some of the older PrimeSense/Asus units (as well
as many other devices), when connected to USB 3.0 ports.

The fix is actually pretty simple, and involves using the older, more stable ehci_hcd (USB 2.0) kernel driver instead:

  * [optional] if your BIOS has an option for "XHCI Pre-Boot Mode" set it to Disabled. Unfortunately I had to upgrade
the BIOS on my laptop to get the "Disabled" option - I only had "Enabled" and "Auto", so this wouldn't have worked until
February this year when they released a new BIOS for my machine

  * compile a new kernel (Ubuntu has the USB 2.0 and 3.0 modules pre-compiled unfortunately - why???) and set both the
xhci_hcd and ehci_hcd drivers as modules

  * add a blacklist-xhci_hcd.conf file in /etc/modprobe.d with
blacklist xhci_hcd

  * reboot and "modprobe ehci_hcd" at will, or add it to /etc/modules

Problem solved! Hope this helps.

Cheers,
Radu.
--
http://openperception.org

_______________________________________________
PCL-developers mailing list
[hidden email]
http://pointclouds.org/mailman/listinfo/pcl-developers
http://pointclouds.org
Reply | Threaded
Open this post in threaded view
|

Re: xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)

Eduardo Fernandez
This post has NOT been accepted by the mailing list yet.
I have tried this but it doesn't work in my case. I'm using ubuntu 13.04 64bits, I've compiled the kernel 3.8.0 specifying the drivers xhci_hcd and ehci_hcd as modules. I've blacklisted the xhci_hcd and I do "modprobe ehci_hcd" after reboot. The result is that I cannot access the ports USB 3.0 anymore, they are not detected by 'lsusb'. Any suggestion for solving this?

Radu, could you also say which OS and what kernel are you using? Please.

Thank you,

Cheers,
Eduardo
Reply | Threaded
Open this post in threaded view
|

Re: xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)

hongpcl
This post has NOT been accepted by the mailing list yet.
In reply to this post by Radu B. Rusu-3
Hi Radu,

I agreed with you about USB 3.0 and Primesense/ASUS Xtion Live with Ubuntu 12.04
I did the following steps:
  step 1: add a blacklist-xhci_hcd.conf file in /etc/modprobe.d with
blacklist xhci_hcd
  step 2: reboot and "modprobe ehci_hcd" at will, or add it to /etc/modules
I got the following errors:
"cannot get freq at eq 0x84"
"cannot set freq 44100 to ep 0x84"

Anybody solve the problem yet.

Thanks
Tsai Hong
nh2
Reply | Threaded
Open this post in threaded view
|

Re: xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)

nh2
This post has NOT been accepted by the mailing list yet.
@hongpcl

I think you forgot to recompile the xhci_hcd and ehci_hcd drivers as modules (that means you have to set

CONFIG_USB_EHCI_HCD=m
CONFIG_USB_XHCI_HCD=m

by default they are set to

CONFIG_USB_EHCI_HCD=y
CONFIG_USB_XHCI_HCD=y
nh2
Reply | Threaded
Open this post in threaded view
|

Re: xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)

nh2
This post has NOT been accepted by the mailing list yet.
I didn't manage to get it to work with this - when disabling `xhci_hcd`, the camera would not get recognized at all in dmesg.

But upgrading the Xtion firmware made it work.

Details are at https://github.com/nh2/asus-xtion-fix
Reply | Threaded
Open this post in threaded view
|

Re: xhci_hcd, I hate you (USB 3.0 and Primesense/Asus Xtion)

Winne
This post has NOT been accepted by the mailing list yet.
nh2 wrote
But upgrading the Xtion firmware made it work.
Details are at https://github.com/nh2/asus-xtion-fix
Before upgrading with the unofficial firmware your link points to, you should try Asus' official firmware update 5.8.22 from late 2013. For me, it did the trick while maintaining both OpenNI 1.x and 2.x compatibility. http://support.asus.com/download.aspx?SLanguage=en&m=Xtion+PRO&os=