Problem with USB 2.0
Contents
Problem description
On various (early?) T40 models, USB 2.0 may not function, or may function only at USB 1.1 speeds. Symptoms include inability to connect to USB 2.0 devices at USB 2.0 speeds, the "This device can perform faster" pop-up in Windows XP, device ID assignment error messages from the Linux kernel, and frequent reboots of the USB bus and connected devices.
Possible Causes
So far, two possible causes have been suggested. In both cases, replacing the system board is the only solution.
Fried Southbridge USB controller
The Southbridge chip (containing the USB controller) may have been damaged by static electricity:
Short answer: your southbridge is about to die, get your system board replaced. Hopefully its still under warranty.
Long answer: a number of Intel chipsets for Pentium IV and Pentium M processors have a design flaw that makes the southbridge (which contains the USB host controllers) especially sensitive to static electricity. As a result there is a (small) risk that when plugging in or removing a USB device causes damage to the chip. Usually, the first symptom is broken USB 2.0, behaving in exactly the way you described (ie, works under Windows, but only after some waiting and as if it was connected to a USB 1.1 controller, not a USB 2.0 one, and not at all under Linux unless you unload the USB 2.0 driver). This tends to lead to a completely dead chipset a short time later, so better get it serviced NOW.
Mechanical Damage to Mainboard
Mechanical damage (from bending, dropping or vibrating the laptop) can lead to components becoming desoldered from the mainboard and no longer having reliable electrical contact:
My T41 shows the same symptoms. USB 2.0 works if I (gently) push the USB plug, or if I slightly flex my thinkpad. For example, it works when I put a pencil under the harddrive on an otherwise flat desk, so that the thinkpad only makes contact with the desk at 3 points (I type on an external keyboard). If I flex the other way, USB 2.0 never works. USB 1.1 always works reliably, irregardless of flexing / pushing the plug.
Clearly, this is an electrical problem and not static electricity.
Solutions
This seems to be a hardware problem with the USB controller on Intel's chip or related electronics. Sending the laptop in for service may help.
If the Linux kernel refuses to register the USB device, "modprobe -r ehci_hcd" may help. This disables USB 2.0 functionality for the session.
Unloading ehci_hcd as per above confirmed to work on T41 running Ubuntu Edgy.
See Also
IBM X40 USB Problem (fried USB on multiple X40s)