Bugzilla – Bug 349065
USB devices not detected on plugin
Last modified: 2008-09-24 12:48:30 UTC
When plugging USB devices into Opensuse 10.3 the devices are not detected. In Opensuse 10.2 when plugging in devices they were detected and a window would pop asking what action to take. I do not get this in 10.3 Actions taken - Full complete clean reinstall of 10.3 Reinstall, downgrade and upgrade HAL & D-BUS Tried installing IVman If I run fdisk -l with the devices plugged in it shows absolutely nothing has been detected - so they are not even available for a forced mount. Tried rchal force-reload - nothing happens It appears that there is also no power being fed to the usb port as batteries in my devices are not recharged when plugged in. Tried a range of live cds PCLOS 2007 Simply Mepis 6.5 Ubuntu (one year old distro) all these live CDs have absolutely no problem in detecting USB devices. Full clean install of 10.2 - no problem detecting USB devices. Interestingly the latest Mepis 7.0 RC2 Live CD also does not detect usb devices when plugged in. Full clean install 10.3 does not detect. If I plug the usb devices in while the computer is switched off and boot with them plugged in they are detected without problem. For the output of these commands dmesg | grep -i i/o dmesg | grep usb lsmod | grep hci see here http://forums.suselinuxsupport.de/index.php?showtopic=63265# Hardware IBM Thinkcentre Intel Celeron D CPU 2.80GHz 1.5GB ram AC '97 2.3 Digital controller Eight USB ports (two in front, six in back), USB 2.0 Most recently available BIOS update USB devices always plugged in - lexmark printer, Buffalo 120GB USB 2.0 drive
Do you have a file /usr/share/hal/fdi/policy/gparted-disable-automount.fdi ?
No - no such directory. I have /usr/share/hal/fdi/policy/10osvendor /usr/share/hal/fdi/policy/20thirdparty only
As far as usb devices are not being powered it IMHO looks like kernel driver issue.
Your devices cannot be configured at the USB level due to -EPROTO. Unfortunately the logs you posted do not show the reason for that error. Can you recompile your kernel with CONFIG_USB_DEBUG?
How do I do that?
Debugging RPMs can be found under: http://beta.suse.com/private/oneukum/349065/
Thanks - but there only seems to be 64 bit versions available there. Any idea where I can get a 32 bit version. Also - once I have this exactly what test shoudl I run - a reapeat of the ones I did previously?
When i installed suse 10.3 a few weeks ago on my systems, hotplugging worked on all of my machines. But sometime after the last two kernel updates in the last week or so hotplugging has stopped working on all of my machines.
I have the same problem, when I plug an usb camera for exemple, I get this : usb 3-2: new full speed USB device using uhci_hcd and address 8 usb 3-2: new device found, idVendor=04a9, idProduct=30bb usb 3-2: new device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-2: Product: Canon Digital Camera usb 3-2: Manufacturer: Canon Inc. usb 3-2: configuration #1 chosen from 1 choice Bug nothing else, peripherical is not mounted :( I'm in 32b kernel too, no gparted-disable-automount.fdi file
Created attachment 193785 [details] output commands after installing debug kernel from opensuse repo
Created attachment 193786 [details] hwinfo --usb output
Created attachment 193789 [details] usb devices plugged in at boot
Created attachment 193790 [details] dmesg
Please provide dmesg also for the non-working case.
Created attachment 193967 [details] Dmesg non working This dmesg is after booting with no usb devices plugged in then hotplugging the sony walkman
any way to help you to solve the bug ?!? I can't connect my disk / camera / ipod on my usb .. not fun :( tell me what can I do .. if you want me to activate some debug, please precise on what module I wouldn't to recompile all my kernel
@Paul Pinault Unfortunately in 10.3 activation of USB debugging output requires a recompilation of more or less the whole kernel.
Can you please add the entry: blacklist ehci_hcd to /etc/modprobe.d/blacklist and retry?
I did what was suggested in comment #19 on one of my amd64 machines (not my file server) and it made the kde screen which asks what you want to do with the newly plugged in device work for both my usb compact flash card reader and my dvd drive (which is an ata device). Without adding that line, these devices would never get mounted nor would that screen pop up. Kenny
I try this ... to discover that my problem is different ... Usb disk are discovered and associated to device, camera is discovred but not attached to any device. Kde do not popup any windows on any peripherical and Digicam is not able to find the camera. Any idea ? should I create a new ticket? Paul
just for completeness: when, and only when, i do what comment 19 suggests, digikam is able to find my card and everything is mounted properly. also, my problems only stated after one of the last two kernel updates. Before that everything worked fine. is there anymore information you need from me?
As comment 21 suggests, this may be two separate problems. I went back and i tried to mount my usb camera on all of my suse10.3 machines. I have no problems at all on my intel x86-64 (lenovo t60), nor my 2 intel x86-32 machines, a shuttle and ibm t42. This problem only occurs on my two amd64 based machines. While these machines have different motherboards, they are both amd 4400 processors with nvidia chipsets and as i said, your hack in #19 fixes the problem on at least one of these machines (i am more careful with my file server). I am sorry, i should have tested this before: I just saw that others were having what appeared to be the same problem as myself. But the amd-64s are my everyday machines and so when i could not get my camera card mounted on these two machines, i just made the incorrect, more broadly based assumption. Kenny
Problem closed for me too ... /proc/bus/usb was not mounted (but I do not know why). I can access my camera.
Oliver, I assume from comment #19, that you have some general idea about what is causing my problem. Is there something else that you want me to try on my machine to narrow the problem further? I am a gcc developer, not a kernel hacker, so be explicit about anything you need. Kenny
Thanks - but doesn't seem to have corrected the issue for me. Added the entry as idrected. Saved and rebooted. Plugged in usb device. Disk powers up when plugged as it did before but is not detected by opensuse as a connected device. Power light on the cable goes out.
@Paul & Kenneth Please open separate bug reports. Your problems are different
@Mark, your log is simply blank with regards to hotplug on USB, as if you never had plugged in a device, no signs of failure, simply nothing. Did you verify that the devices you test with work on other computers?
Yes, verified that they work on the same computer with differenct OS. If I were to do a clean install of Opensuse 10.2 on this very computer now I would not see the issue. As I mentioned in the original post also Mepis 6.5 Live CD Hotplug works flawlessly Mepis 7.0 Live CD shows same symptoms as Opensuse 10.3 This si why I beleive my issue is different to most postings here. With 10.3 it is simply as if no USB device has been plugged in at all when I plug in after OS as already completed booting. If I plug devices in before booting they are loaded and work as they should.
Oh - an also verified that devices all work perfectly when plugged into my wife's XP notebook.
Is the log from #16 with the kernel from beta.suse.com? If not, could you please retest?
I used the debug kernel from the 10.3 repo. The link you provided above is for a 64 bit kernel is it not? I need a 32 bit kernel.
Oh - I see there is now a 32 bit kernel that wasn't there previously. I'll give it a try in.
New Kernel available in opensuse 10.3 update repo today 2.6.22.17-0.1 Installed and tested - has fixed my problem. Plug in usb device. Device detected by opensuse and window pops asking what I want to do. What was in this update that would have corrected the issue? Haven't had a chance to try the debug kernel that you suggested - do I still need to do this?
hmmmmm . . . ongoing issue. I swear all I did to correct this problem was to update to the latest available kernel through YAST. Downgraded to an earlier kernel and no problem detecting usb devices. (??) Decided to do a full clean vanilla install of 10.3 default kernel on DVD - usb devices not detected on plugin. Using opensuse updater - update to latest kernel (one that previously corrected my problem) - plug in usb device - not detected. What the ....!!!? So my next move here was to try the debug kernel from beta.suse.com Downloaded kernel-debug-2.6.18.8-0.8.i586.rpm Installed through kpackage When trying to boot cannot find my harddisk. Get message "Waiting for device dev/disk/by-id/... to appear" Asks if I want to go to a fallback position so go "yes" but still cannot find my disk. Tried installing through YAST and command line but same problem. Going back to default kernel problem disappears. Might need some help on this one.
Please open a separate bug report for this.
Fixed as per comment #34.
Issue is not resolved. Not sure what happened with comment 34 but could not replicate correction after clean install of opensuse. Debug kernel from the repo hasn't shed any light on the issue as per below attachments. Haven't yet been able to get the debug kernel from above link in comment 7 to work. System won't boot for me with this kernel. Nobody has yet been able to explain why. Still looking for a resolution but not sure where to go from here.
Currently using kernel 2.6.22.17-0.1-default i686 Issue still present.
Please provide dmesg of the cleanly installed new system.
Created attachment 211465 [details] output of dmesg on a new installation
I have attached output from my dmesg (with drive plugged in), I'm having exactly the same issue. I was running openSUSE 10.3 on the same system with updates, the drive was working fine and I backed up my data to it. I decided to repartition and reformat my laptop, and soon after installing 10.3, tried plugging in my drive to copy back my data, and its not even being seen. The LED comes on but that's all. I noticed though that when booting dbus complains that user gdm not found. I dunno if this has any effect. I'm running KDE with KDM.
OK, this may be the same issue I am compiling a new debug kernel.
Please try the suggestion from comment #19
A new debugging kernel on http://beta.suse.com/private/oneukum/349065/
Created attachment 214108 [details] DMESG from Debug Kernel 2.6.22.18-0.1 (geeko@buildhost) Interesting Updating to this Kernel and rebooting. Hotplug works just fine. As you can see near the bottom of the dmesg output - Sony Walkman which was plugged in following boot is detected fine. I am going to try downgrading to Opensuse default Kernel (non debug) Linux 2.6.22.17-0.1-default and see if things still work following this
OK Have downgraded to Kernel 2.6.22.17-0.1-default i686 Plugged in device after rebooting and it is detected without problem. I'm very confused. Looks as if something in the changing the kernel has corrected the problem. However, isn't the first time I have changed the kernel and it hadn't previously been fixed (other than comment #34). Waiting to see if it stays fixed (looking forward to upgrade to Opensuse 11 in the near future)
Created attachment 214143 [details] DEMSG with blacklist ehci_hcd removed OK - seems I have jumped the gun again. What I didn't notice initially once debug kernel was installed was that my Buffalo/Samsung USB external drive had slowed from full speed (USB ) to very slow transfer speeds (USB 1) Playing around, found that deleting the entry blacklist ehci_hcd from /etc/modprobe.d/blacklist then rebooting fixed the speed issue with the Buffalo drive, but on plugging in other USB devices I am back where I started with them not being detected. ??? Here is demsg output with the blacklist ehci_hcd removed
Here is a workaround I have stumbled upon Have removed the entry blacklist ehci_hcd Boot into 10.3 $sudo modprobe -r ehci_hcd Insert my usb device which is detected without problem $sudo modprobe ehci-hcd Get full speed USB 2.0 access back on all usb devices - including the one I just plugged in and the one that was plugged in at boot
OK, this is getting confusing. Can you please provide "lsusb -v" for all devices that you have connected and mark those devices which fail to be properly detected?
Created attachment 214733 [details] lsusb -v number 1
Created attachment 214734 [details] lsusb -v number 2
The issue is all devices fail to be properly detected when plugged in unless plugged in prior to booting. The two lsusb files have exactly the same devices plugged in. The difference between the two is that the first device listed in number 2 (Sony HDD Walkman) is only detected after the modprobe -r ehci_hcd command.
Sorry. Just to clear things up. Bus 005 Device 003 "Melco Inc" & Bus 001 Device 004 "Lexmark International" were plugged in prior to booting. Bus 005 Device 004 was plugged into an already loaded OS. In the first lsusb file you can see it is not present although it is plugged in. In the second lsusb file you can see it is the first device listed once USB 2.0 has been disabled and then re-enabled.
Hi, you'll find a file named "registers" under: /sys/kernel/debug/ehci/X where X is a pci id. Please provide - that file before you plug in a device - "dmesg -c" at that time - that file after you plug in a device - "dmesg" at that time
Don't have any such file or directory as described. In /sys/kernel/debug have two directories /kprobes & /uhci Neither of these directories contain such file. Doing a system search for "registers" file have found one located in /sys/class/usb_host/usb_host4/ Is this the same thing?
Created attachment 215090 [details] Registers file before plugging device
Created attachment 215091 [details] dmesg -c before plugging device
Created attachment 215092 [details] Registers file after plugging device (still undetected)
Created attachment 215093 [details] dmesg after plugging device
Not sure if the "registers" file I am dealing with here is the one that you are talking about - but thought worth posting as there are some changes in the file after plugging in my device - although ti still remains unrecognized. Another point probably worth mentioning . . . The location of the registers file seems to change location. I have five directories in /sys/class/usb_host they are /sys/class/usb_host/usb_host1 /sys/class/usb_host/usb_host2 /sys/class/usb_host/usb_host3 /sys/class/usb_host/usb_host4 /sys/class/usb_host/usb_host5 Each time I reboot the "registers" file - while mostly appearing in the fourth directory - on occasion appears in the third directory instead. It never appears in more than one directory at the same time & I haven't seen it yet appear in anything but the third or fourth directory. (This is following a half dozen reboots) Of course a longer period of observation might show otherwise.
Yes, this is the correct registers file. You'll see only one file because you have only one ehci controller in your computer. Now to the content. It is interesting. Before plug: port 1 status 001000 POWER sig=se0 port 2 status 003000 POWER OWNER sig=se0 port 3 status 001005 POWER sig=se0 PE CONNECT port 4 status 001000 POWER sig=se0 port 5 status 001000 POWER sig=se0 port 6 status 001000 POWER sig=se0 port 7 status 001000 POWER sig=se0 port 8 status 001000 POWER sig=se0 irq normal 243 err 4 reclaim 168 (lost 2) After plug: port 1 status 001000 POWER sig=se0 port 2 status 003000 POWER OWNER sig=se0 port 3 status 001005 POWER sig=se0 PE CONNECT port 4 status 001000 POWER sig=se0 port 5 status 001000 POWER sig=se0 port 6 status 001000 POWER sig=se0 port 7 status 001803 POWER sig=j CSC CONNECT port 8 status 001000 POWER sig=se0 irq normal 243 err 4 reclaim 168 (lost 2) Port 7 has changed. A low speed device has been detected, but CSC (Connect Status Change) is still set. Normally this indicates that the event has not been processed and should happen only very briefly. Khubd is supposed to clear this and handle the event.
Ok, 1. - khubd may be stuck -> please attach the output of "ps aux" 2. - interrupt delivery may be bad -> please attach the output of "cat /proc/interrupts" in both cases before and after the hotplug
Created attachment 215546 [details] ps aux before
Created attachment 215547 [details] ps aux after
Created attachment 215548 [details] cat before
Created attachment 215550 [details] cat after
One interrupt, odd. Please provide the output of "lspci -v" (as root)
Created attachment 215924 [details] lspce -v Did you also need this after a device is hotplugged?
No it cannot change.
*** This bug has been marked as a duplicate of bug 373128 ***
reopening as bug still present in Opensuse 11 Has been established that not same as bug 373128
Please make sure the registers file hasn't changed in 11.0
Doing system wide search there is no such file as "registers" located anywhere on my system. Has the name of the file changed for Opensuse 11.0? Using KDE4 by the way.
You need to install the kernel-debug kernel.
Debug kernel is installed. Tried reinstalling debug kernel. Still no registers file located anywhere on computer.
Have done a complete reinstall of Opensuse 11 form DVD with debug kernel and can still not locate any "registers" file anywhere on computer. Are we sure this file should exist in 11.0?
It is supposed to exist when the debug kernel is installed. If not, that's a bug.
Please attach /proc/config.gz
Created attachment 227217 [details] /proc/config.gz Installed latest available debug kernel Linux 2.6.25.9-0.2-debug i686 still no registers file to be found anywhere on system
From config.gz: # CONFIG_USB_DEBUG is not set That explains it. I'll fix it and compile a kernel with the fix.
Debugging kernels that fix the problem can be found under: http://beta.suse.com/private/oneukum/349065/
Interesting . . . Installed your Kernel. Registers file is located /sys/kernel/debug/ehci/0000:00:1d.7 It is a completely empty file (0 bytes) Plug in device there is no change - still completely empty. run modprobe -r ehci_hcd modprobe ehci-hcd device now loaded but registers is still a completely empty file. ??
.
Please try the new kernel at the same place.
Installed the latest kernel you provided Linux 2.6.25.11-0.1-debug i686 exactly the same situation as the previous kernel. At each of the three stages noted in previous comment the "registers" file remains unchanged (a completely empty file 0 bytes) ??
Odd, very odd. I am investigating.
I misclicked.
Just to make sure this actually sane, please provide the output of "cat /proc/config.gz" with the last kernel i provided. This needs double checking.
Created attachment 231270 [details] output from cat /proc/config.gz
Inexplicable. Anyway, as this approach will probably not work, please attach with the debug kernel "dmesg -c" before you plug in a device that is not detected and "dmesg -c" after plugging it in.
Created attachment 231392 [details] dmesg -c before inserting device dmesg -c immediately after booting
Created attachment 231393 [details] dmesg -c after inserting device after inserting pendrive - nothing detected
Created attachment 231394 [details] dmesg -c after modprobe also supplying this dmesg -c following modprobe with device now detected (not sure if this one is useful or not)
That shows that the interrupt is lost. Why it is lost could be learned from the register file.
Please provide the output of "cat /proc/interrupts"
Created attachment 232576 [details] output of cat /proc/interrupts
These are exactly the same symptoms of the bug this bug was originally considered a duplicate of
Perhaps same symptoms but bug is unresolved for me.
This needs the register file. I'll recheck the debug kernels.
Without the register file this is undebuggable.
so what would my next step be here? How can I get this issue resolved?
should I open a new bug? Enter a bug for the registers file?
Yes, do so.