Some hardware just don’t work with ehci_hcd on Ubuntu and other distributions. My older mobile phone refused to work no matter what I did and want. After plugging the device nothing happened, doing dmesg showed me the following error:
Output from dmesg:
1 2 3 4 5
[ 4494.828096] usb 5-1: new low speed USB device using uhci_hcd and address 41 [ 4495.244038] usb 5-1: device not accepting address 41, error -71 [ 4495.356066] usb 5-1: new low speed USB device using uhci_hcd and address 42 [ 4495.768030] usb 5-1: device not accepting address 42, error -71 [ 4495.768057] hub 5-0:1.0: unable to enumerate USB device on port 1
After searching a lot around web, I came to a conclusion that my device (mobile phone) doesn’t work with USB 2.0. So I tried to disable the ehci_hcd to make it work.
Since Karmic doesn’t use ehci_hcd as a module, modprobe -r ehci_hcd no longer works. This module was compiled into the kernel.
There is a trick to disable it. execute the following commands in terminal:
cd /sys/bus/pci/drivers/ehci_hcd ls
You will see one or two files with 0000:00:xx.x format. Execute the following command:
sudo sh -c 'echo -n "0000:00:xx.x" > unbind'
Replace the xx.x with the numbers displayed on your file/s. It should disable the ehci_hcd.
cd /sys/bus/pci/drivers/ehci_hcd/ sudo sh -c 'find ./ -name "0000:00:*" -print| sed "s/\.\///">unbind'