USB problems on Linux

This entry was posted by on Saturday, 17 April, 2010 at

´╗┐Article about some USB troubleshooting.

Symptom: mouse/keyboard/general USB freeze
On Edgy Eft I had the problem of frequent by irregular ‘mouse freeze’. Unplug the mouse, replug it and all was fine again. Sometimes even the keyboard freaked. After replugging the problem was solved for a random time.
Sub-optimal yet still workable. Trying to solve this I did a fresh install of Feisty Fawn (beta) and had the same problems, only now replugging did not work. The entire usb subsystem freaked. lsusb would hang when invoked after a freeze. With no mouse and keyboard the only option was to restart using ssh from a different box.

Solution was quite simple albeit far from elegant: Turn off Legacy USB support in the BIOS. Problem solved. A BIOS update did not change anything.

Consequence: no support for USB keyboard in Grub. There is support during POST so you can still get into BIOS settings, switch on Legacy USB and then switch OS in Grub.
Mainboard: ASUS (nVidia) M2N-E lsusb:

00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)

from /var/log/messages:

Apr 13 19:01:11 localhost kernel: [ 146.940436] usb 2-3.3: USB disconnect, address 4
Apr 13 19:01:15 localhost kernel: [ 148.976904] ohci_hcd 0000:00:02.0: IRQ INTR_SF lossage

Bottom line: Something is amiss in Legacy USB support in (K)Ubuntu Linux.
Update: this problem can be fixed with adding the following to your boot options in /boot/grub/menu.lst:
acpi=force irqpoll

However, at some point in time this also stopped working and it turns out that
noapic acpi=off

might do the trick.
Under Edgy it was possible to unload and reload USB like so:

modprobe -r ohci_hcd
modprobe ohci_hcd
modprobe usbhid

But this does not work under Feisty.
Numerous kernel updates (and bugreports…) later the problem still persists. After Gutsy I have not seen this again. If you do get these problems: a good workaround is using a USB to PS2 converter and just plug the mouse into PS2.

Leave a Reply