Force a USB device to use OHCI

Posted by Moser on 21 Apr 2009

As I described in my previous post I built a cheap USB wireless adapter into my NSLU2. It finds my network and connects without problems. But when I transfer bigger loads of data, it sometimes stops working. The log showed that it disconnects from the USB hub. Other people experiencing similar problems indicated that this was a problem with the ehci_hcd kernel module and “solved” by removing this module. But thats definitely not a good idea when your only mass storage device is connected via USB too.

So I needed to disable the EHCI for the wireless adapter only. That should have no big impact because I don’t think my network really offers speeds above 12 Mbit/s. Fortunately there is a script by Ernestas Vaiciukevičius that does exactly this.

Update: Seems like the link is dead. You can find the script here. Usage: Create a udev rule that runs it:

SUBSYSTEM=="usb", ENV{PRODUCT}=="xxxx/yyyy/*" RUN+="/usr/local/bin/"

xxxx and yyyy can be found in lsusb’s output:

$ lsusb
Bus 001 Device 001: ID xxxx:yyyy Device name

For testing reasons you can also run it from the command line:

$ ./ "xxxx:yyyy"