When i plug in an usb-storage device (it's a 2 GB USB 2.0 mp3 player), the device can't be loaded by the kernel anymore. To except a hardware issue i tried it on several machines: The device works on my laptop with kernel 2.6.22, on my old 2.6.13 workstation and even on my ps3 with kernel 2.6.23. But it doesn't work using 2.6.24. I will attach more detailed informations about the used kernel versions and the dmesg outputs. I know this bug will be hard to fix... let me know if i can do anything to support you. It seems that this kind of failure is more common since a friend told me that he has nearly the same problem with an usb printer. Reproducible: Always
Created attachment 144012 [details] uname and dmesg outputs
Can you attach the output of lsusb -v for that particular device? Also, did it work on 2.6.23? What was the last working kernel before the 2.6.24.X version. lsusb is provided by: sys-apps/usbutils
Created attachment 144151 [details] lsusb -v of the device Here is the output of lsusb -v of the device (I saved the output using 2.6.22 because the device doesn't appear on 2.6.24). Now I will compile a 2.6.23 kernel on my system and give you feedback about the last working kernel version after that.
The last working kernel version is gentoo-sources-2.6.22-r10; gentoo-sources-2.6.23 doesn't work. Additionally I tried it on my ps3 using the latest ps3-sources-2.6.24 from the cell overlay and it worked there. So it seems to be an architecture specific problem. I also found out something interresting: The usb-storage device works with gentoo-sources-2.6.24-r2 (and probably with 2.6.23) when it was plugged in before boot. But when I plug it in after booting the system, it doesn't. This is reproducable. I will attach a full 2.6.24 dmesg output when i plugged it in before boot.
Created attachment 144155 [details] dmesg output 2.6.24 working (plugged in before boot)
Can you attach a dmesg with CONFIG_USB_DEBUG and CONFIG_USB_STORAGE_DEBUG turned on.
Created attachment 144636 [details] dmesg output with usb debugging enabled Here is the result :) You can find the output after pluggin in the device at the end of the logfile (plugged in to usb 1-6) Do you also need the same of a working kernel?
Is ehci_hcd compiled as a module?
No, it isn't.
Some people have reported sucess by trying the following: after building ehci_hcd as a module and rebooting: Remove the device modprobe -r ehci_hcd plug in the device Does it work? Does the module show up in lsmod, if not what happens if you modprobe ehci_hcd. If the above steps work, it might be a timing issue.
After boot - the usb device is plugged in, but not active arcadis sb # lsmod Module Size Used by snd_pcm_oss 33952 0 snd_mixer_oss 13184 1 snd_pcm_oss snd_seq_oss 26752 0 snd_seq_midi_event 5440 1 snd_seq_oss snd_seq 41104 7 snd_seq_oss,snd_seq_midi_event kfusd 17628 0 snd_usb_audio 72032 0 snd_usb_lib 13376 1 snd_usb_audio snd_rawmidi 17696 1 snd_usb_lib snd_seq_device 5836 3 snd_seq_oss,snd_seq,snd_rawmidi snd_hwdep 6276 1 snd_usb_audio aes_i586 34048 0 snd_hda_intel 270836 1 snd_pcm 56336 3 snd_pcm_oss,snd_usb_audio,snd_hda_intel snd_timer 17928 2 snd_seq,snd_pcm snd 40516 14 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_usb_audio,snd_rawmidi,snd_seq_device,snd_hwdep,snd_hda_intel,snd_pcm,snd_timer snd_page_alloc 7240 2 snd_hda_intel,snd_pcm ipw2200 120736 0 ehci_hcd 40536 0 fglrx 1448236 22 # Now i'm removing the device and the kernel module arcadis sb # rmmod ehci_hcd arcadis sb # lsmod Module Size Used by snd_pcm_oss 33952 0 snd_mixer_oss 13184 1 snd_pcm_oss snd_seq_oss 26752 0 snd_seq_midi_event 5440 1 snd_seq_oss snd_seq 41104 7 snd_seq_oss,snd_seq_midi_event kfusd 17628 0 snd_usb_audio 72032 0 snd_usb_lib 13376 1 snd_usb_audio snd_rawmidi 17696 1 snd_usb_lib snd_seq_device 5836 3 snd_seq_oss,snd_seq,snd_rawmidi snd_hwdep 6276 1 snd_usb_audio aes_i586 34048 0 snd_hda_intel 270836 1 snd_pcm 56336 3 snd_pcm_oss,snd_usb_audio,snd_hda_intel snd_timer 17928 2 snd_seq,snd_pcm snd 40516 14 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_usb_audio,snd_rawmidi,snd_seq_device,snd_hwdep,snd_hda_intel,snd_pcm,snd_timer snd_page_alloc 7240 2 snd_hda_intel,snd_pcm ipw2200 120736 0 fglrx 1448236 22 # The only connected device is my keyboard arcadis sb # lsusb Bus 004 Device 001: ID 0000:0000 Bus 003 Device 017: ID 046d:c225 Logitech, Inc. Bus 003 Device 016: ID 046d:c042 Logitech, Inc. Bus 003 Device 015: ID 046d:c221 Logitech, Inc. Bus 003 Device 010: ID 046d:c223 Logitech, Inc. Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 # Now i've plugged in the device. The device failed and doesn't show up but produced some output on dmesg ( i will attach it ) arcadis sb # lsusb Bus 004 Device 001: ID 0000:0000 Bus 003 Device 017: ID 046d:c225 Logitech, Inc. Bus 003 Device 016: ID 046d:c042 Logitech, Inc. Bus 003 Device 015: ID 046d:c221 Logitech, Inc. Bus 003 Device 010: ID 046d:c223 Logitech, Inc. Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 arcadis sb # lsmod Module Size Used by snd_pcm_oss 33952 0 snd_mixer_oss 13184 1 snd_pcm_oss snd_seq_oss 26752 0 snd_seq_midi_event 5440 1 snd_seq_oss snd_seq 41104 7 snd_seq_oss,snd_seq_midi_event kfusd 17628 0 snd_usb_audio 72032 0 snd_usb_lib 13376 1 snd_usb_audio snd_rawmidi 17696 1 snd_usb_lib snd_seq_device 5836 3 snd_seq_oss,snd_seq,snd_rawmidi snd_hwdep 6276 1 snd_usb_audio aes_i586 34048 0 snd_hda_intel 270836 1 snd_pcm 56336 3 snd_pcm_oss,snd_usb_audio,snd_hda_intel snd_timer 17928 2 snd_seq,snd_pcm snd 40516 14 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_usb_audio,snd_rawmidi,snd_seq_device,snd_hwdep,snd_hda_intel,snd_pcm,snd_timer snd_page_alloc 7240 2 snd_hda_intel,snd_pcm ipw2200 120736 0 fglrx 1448236 22 # After loading the ehci_hcd module the device doesn't work either, but there is a lot dmesg output arcadis sb # modprobe ehci_hcd I will attach the dmesg output...
Created attachment 145845 [details] dmesg output ehci_hcd compiled as module In order to improove the readability I inserted lines like "--- MARKER: Removing the device and the ehci_hcd module ---" between each of the above steps. So search for "MARKER" :)
Can you try something else: Remove the device modprobe -r ehci_hcd echo Y > /sys/module/usbcore/parameters/old_scheme_first plug in the device
Currently I'm using a kernel with usb compiled in so i didn't removed any module. But.... great, it works!