Distribution: Slackware 10 + Kernel 2.6.10 Hardware Environment: Athlon64 + nForce3 chipset lspci output : 00:02.0 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5) 00:02.1 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5) 00:02.2 USB Controller: nVidia Corporation nForce3 USB 2.0 (rev a2) Software Environment: none Problem Description: I own a USB2 Wifi USB stick (DLink DWL-G122), which is recognized on a USB1 host but rejected on the described hardware configuration. When it is plugged in, the following errors appear in kernel log (dmesg): usb 1-2: new high speed USB device using ehci_hcd and address 3 usb 1-2: device descriptor read/64, error -71 Then the device cannot be used. However, it appears in lsusb output (file attached). On ndiswrapper wiki, somebody reported that the device works if EHCI is disabled. I didn't tested this however (will do). Steps to reproduce: Plug-in an USB2 device on an EHCI host with kernel 2.6.10. May work for other device.
Created attachment 4421 [details] lsusb output with device plugged in The device appears on the bus. But it is impossible to access it.
OK, I've tested the device without EHCI (ie: with OHCI only in USB 1.1 mode), and it works perfectly (with ndiswrapper). It seems it's really a problem related to EHCI.
Hi I have the same problem on my Thinkpad T41p with my keyboard(cherry g-224) and printer(kyocera 1010). With the uhci-hcd everything is ok, but only usb 1.1. I'm using gentoo-dev-sources-2.6.10-r6. The 2.6.9 have not this problem. lspci: 0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01) 0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01) 0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01) 0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01) dmesg: drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 16 if 0 alt 0 proto 2 vid 0x0482 pid 0x0003 usb 1-1.3: new low speed USB device using ehci_hcd and address 17 usb 1-1.3: device descriptor read/64, error -32 usb 1-1.3: device descriptor read/64, error -32 usb 1-1.3: new low speed USB device using ehci_hcd and address 18 usb 1-1.3: device descriptor read/64, error -32 usb 1-1.3: device descriptor read/64, error -32 usb 1-1.3: new low speed USB device using ehci_hcd and address 19 usb 1-1.3: device not accepting address 19, error -32 usb 1-1.3: new low speed USB device using ehci_hcd and address 20 usb 1-1.3: device not accepting address 20, error -32
try define thise line options usbcore use_both_schemes=yes in your /etc/modules.conf
*** Bug 4093 has been marked as a duplicate of this bug. ***
It is related only to EHCI. Same stick works on 2.6.9 (USB2), but doesn't on 2.6.10-2.6.11-rc2. Acctually, sometimes it works, sometimes it doesn't. I reproduced error with 2 or 3 different sticks. U can change kernel version to 2.6.10 - 2.6.11-rc2
Tried with and without use_both_scheme on 2.6.11-rc3, it still fails with the following errors in dmesg : usb 1-4: new high speed USB device using ehci_hcd and address 4 usb 1-4: device descriptor read/64, error -71 lsusb and lspci are unchanged. Please note that I do not use usbcore as a module, it is compiled in and I booted with the usbcore.use_both_scheme=1 kernel parameter in grub to check the alternate scheme. This problem is indeed EHCI specific.
Maybe it's time to raise severity to high? Couse another kernel will go out with broken USB2. As I see, it doesn't work on nVidia and Intel 82801DB/DBM chipsets.
Raised to high. However this is not critical, since USB 1.1 works and 2.6.11-pre3 seems pretty stable IMHO.
2.6.11-rc4 has the same bug... I don't get it... We should look at Changelog of 2.6.10. 2.6.9 wasn't broken :(
It works if u compile usbcore and rest of USB as modul. Next step u have to do is load usbcore with parametar old_scheme_first=1; modprobe usbcore old_scheme_first=1 && modprobe ehci_hcd Then it works. Is the "new_scheme" broken?
I didn't managed to link kernel rc4, so I didn't checked it. However, what is the the difference between module and in kernel USB support ? The scheme selection option I passed to kernel via command line should do the same as the module option. If that proves true, the initialization process is not the same if EHCI and Core are in kernel (obviously, there are both in kernel at boot and you load first core with module). That may be a difference, but I'm not quite convinced. It would be better to retry, as soon as 2.6.11 is out I check both in kernel and module ways.
Well, you didn't append old_scheme_first=1, but use_both_scheme. These are not the same...
Oops, sorry. I didn't pay enough attention to the previous post. I cannot test my device for now, I do not have it this week. I'll redo my tests this WE.
If this does not work for you, please reopen the bug.
Seems to work with -rc5 without any boot parameter. However ndiswrapper doesn't manage to make the windows driver work and the device loops in reset. I suspect the windows driver however, since many people reported it works only in USB1 even for older kernels. Will try with other drivers later. As far as linux is concerned, it seems to accept the device and give it an address now. Best regards, CC
Well, I did a more complete test today, and my device still does not work. I do not know however if it is linux fault or ndiswrapper fault, so I do not know if I should reopen this bug... When I plug the device, whatever option I use for usbcore, the device is now correctly detected, but ndiswrapper loops trying to reset the device ad vitam eternam (ie : until I unplug the device). It used to work in USB 1 mode. Some people encountered the same problem with previous kernel releases, so I suspect a windows/ndiswrapper bug and I leave the bug closed. I do not have other USB2 device and cannot test further.
Tested with an USB2 usbnet device, it works. This is definitively a ndiswrapper/windows driver bug now. Thanks