USB 1.1 automatic fallback if 2.0 fails

Pär Lidén par.liden at
Sun Dec 30 01:07:09 UTC 2007

My idea is that if a USB device gets plugged in, and Linux isn't able to
initialize it properly at usb 2.0, it should try initializing it with
usb 1.1 instead.

The rationale is that you could have a situation where usb 1.1 works, but
not 2.0. I have a problem where some of my usb-ports (the front ports) work
at usb 1.1 speeds. If I plug in lower speed devices, such as my
keyboard, it works perfectly from the front ports. But when i connect
higher speed devices, such as usb-sticks, or my digital camera, it won't
work. It just fails silently. However, if I remove the usb 2.0 support
from the kernel (unloading that module, ie sudo rmmod ehci-hcd), and
then insert the usb-stick after that, it works, but only at usb 1.1
speeds of course.

So I think it would be quite nice if Ubuntu could do this:
When a usb 2.0 device  device gets connected on a 2.0 capable port (ie one
that is connected to an ehci controller), it should of course first try to
init it with usb 2.0 (ehci). If that doesn't work, try with usb
1.1(uhci/ohci), and preferably put up some message to the user that
the device
is not working at full 2.0 speed. (This is what win xp does.) I think that a
lot of users gets confused when their devices just silently fails at some
ports of their computer. And if initializing it with uhci/ohci doesn't work
either, then pop up some error message then also of course.

I don't know if this is hard to implement, I'm no kernel hacker. I
suppose that the fallback itself would be implemented purely in the
kernel (thats why I reported this against linux-source), but bringing
forth the message to the user would require probably  involving at least
udev and HAL also.

I'm pretty sure the cause for me is that the internal cabling to the front
ports is bad. The two front usb ports are connected via one cable to a
10-pin connector on the motherboard. The back ports, which connect
directly to he motherboard, work perfectly.

I've looked at bug #88746, which describes the same symptoms, and the
same solution (unloading ehci-hcd). However, in my case, I don't think
Linux or the motherboard is to blame, but just the cables, as it works
in winxp (but at 1.1 speeds). Implementing this feature would certainly help
people affected by bug #88746, and not computer-savvy enough to unload
ehci-hcd. This feature would then provide a (ugly?) workaround for them that
least enables them to use their devices (albeit at low speeds).

Does anyone have any comments, or know if this is hard to implement, or
something else? I appreciate any comments.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Ubuntu-devel-discuss mailing list