There is a bug in ehci-hcd module. System don't recognize SD flash card when I insert it into Alcor 058f:6366 USB card reader (it presents in Samsung Q210 notebook). There is nothing appears in dmesg. I found a solution but that's not good: insert flash card and type `rmmod ehci-hcd && modprobe ehci-hcd`
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface). On Fri, 25 Sep 2009 15:10:13 GMT bugzilla-daemon@bugzilla.kernel.org wrote: > http://bugzilla.kernel.org/show_bug.cgi?id=14228 > > Summary: EHCI dont recognize USB card reader Alcor 058f:6366 > Product: Drivers > Version: 2.5 > Kernel Version: 2.6.31.1 > Platform: All > OS/Version: Linux > Tree: Mainline > Status: NEW > Severity: normal > Priority: P1 > Component: USB > AssignedTo: greg@kroah.com > ReportedBy: dencorpos@gmail.com > Regression: No > > > There is a bug in ehci-hcd module. > > System don't recognize SD flash card when I insert it into Alcor 058f:6366 > USB > card reader (it presents in Samsung Q210 notebook). There is nothing appears > in > dmesg. > > I found a solution but that's not good: insert flash card and type `rmmod > ehci-hcd && modprobe ehci-hcd`
On Wed, 30 Sep 2009, Andrew Morton wrote: > > http://bugzilla.kernel.org/show_bug.cgi?id=14228 > > > > Summary: EHCI dont recognize USB card reader Alcor 058f:6366 > > There is a bug in ehci-hcd module. Why do you think that's where the bug is? And why do you think there is a bug in the first place? > > System don't recognize SD flash card when I insert it into Alcor 058f:6366 > USB > > card reader (it presents in Samsung Q210 notebook). There is nothing > appears in > > dmesg. Why should there be anything in dmesg? Are you running a program like hal which will constantly probe the card reader to see if a card has been inserted? > > I found a solution but that's not good: insert flash card and type `rmmod > > ehci-hcd && modprobe ehci-hcd` Probably all you have to do is insert the card and then run (as root): blockdev --rereadpt /dev/sdN where you replace N with the actual drive letter for the card reader. However if you think this should happen automatically and you want to find out why it doesn't, then you should use usbmon to trace the USB communications. Instructions are in the kernel source file Documentation/usb/usbmon.txt. Alan Stern
Alan Stern wrote: > On Wed, 30 Sep 2009, Andrew Morton wrote: > > >>> http://bugzilla.kernel.org/show_bug.cgi?id=14228 >>> >>> Summary: EHCI dont recognize USB card reader Alcor 058f:6366 >>> > > >>> There is a bug in ehci-hcd module. >>> > > Why do you think that's where the bug is? And why do you think there > is a bug in the first place? > > >>> System don't recognize SD flash card when I insert it into Alcor 058f:6366 >>> USB >>> card reader (it presents in Samsung Q210 notebook). There is nothing >>> appears in >>> dmesg. >>> > > Why should there be anything in dmesg? Are you running a program like > hal which will constantly probe the card reader to see if a card has > been inserted? > > Today I try to insert a card after typing 'rmmod ehci-hcd'. But it hasn't result. Then it shouldn't be bug in ehci-hcd, but where? Yes, I'm running hal and if I insert a simple USB flash then message about it appears in dmesg. >>> I found a solution but that's not good: insert flash card and type `rmmod >>> ehci-hcd && modprobe ehci-hcd` >>> > > Probably all you have to do is insert the card and then run (as root): > > blockdev --rereadpt /dev/sdN > > where you replace N with the actual drive letter for the card reader. > > However if you think this should happen automatically and you want to > find out why it doesn't, then you should use usbmon to trace the USB > communications. Instructions are in the kernel source file > Documentation/usb/usbmon.txt. > > Alan Stern > > > I tried to "blockdev --rereadpt /dev/sdb" but it says that "/dev/sdb: no storage found". This is part of 'dmesg' that describes card reader (only uhci-hcd loaded): usb-storage: device scan complete scsi 7:0:0:0: Direct-Access Multi Flash Reader 1.00 PQ: 0 ANSI: 0 sd 7:0:0:0: Attached scsi generic sg2 type 0 sd 7:0:0:0: [sdb] Attached SCSI removable disk This is part of 'dmesg' that describes card reader (both uhci-hcd and ehci-hcd loaded): usb-storage: device scan complete scsi 8:0:0:0: Direct-Access Multi Flash Reader 1.00 PQ: 0 ANSI: 0 sd 8:0:0:0: Attached scsi generic sg2 type 0 sd 8:0:0:0: [sdb] Attached SCSI removable disk ------------------------------------------------------------------------------------------------------- This is part of 'lsusb -vvv' that describes card reader (both ehci-hcd and uhci-hcd loaded): Bus 001 Device 003: ID 058f:6366 Alcor Micro Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x058f Alcor Micro Corp. idProduct 0x6366 bcdDevice 1.00 iManufacturer 1 Generic iProduct 2 Mass Storage Device iSerial 3 058F0O1111B1 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk (Zip) iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered) -------------------------------------------------------------------------------------------- P.S. I'm sorry for my English.
On Sun, 4 Oct 2009, Alexey wrote: > Today I try to insert a card after typing 'rmmod ehci-hcd'. But it > hasn't result. > Then it shouldn't be bug in ehci-hcd, but where? Maybe a bug in the card reader. > Yes, I'm running hal and if I insert a simple USB flash then message > about it appears in dmesg. You should collect a usbmon trace showing what happens when the card reader is plugged in, as I suggested earlier. Alan Stern
I made traces with usbmon. I can't found a bus with card reader and I got data from /sys/kernel/debug/usb/usbmon/0u Before that I unload all modules of my usb devices (and blacklist it): uvcvideo videodev v4l1_compat usbhid hid btusb usb-storage `cat /sys/kernel/debug/usb/usbmon/0u > 0u.out` was give no data at all. It's normal because all modules uses usb unloaded. After that I did `modprobe usb-storage` and `cat /sys/kernel/debug/usb/usbmon/0u > new_0u.out`. The card reader had empty slot at the moment. Still 5 sec I stopped logging. Then I did `cat /sys/kernel/debug/usb/usbmon/0u > new_0u_pl_ej.out` and inserted card and ejected it. After that stopped logging. And after that I inserted card and did `cat /sys/kernel/debug/usb/usbmon/0u > new_0u_rel_pl_ej.out` and in other console `rmmod ehci-hcd && modprobe ehci-hcd`. Still 10 secs I ejected flash card and stopped logging. I attached files new_0u.out, new_0u_pl_ej.out, new_0u_rel_pl_ej.out to the message. Can I do anything else to help to resolve that problem? P.S. I'm sorry for my English.
On Fri, 9 Oct 2009, Alexey wrote: > I made traces with usbmon. > I can't found a bus with card reader and I got data from > /sys/kernel/debug/usb/usbmon/0u > Before that I unload all modules of my usb devices (and blacklist it): > uvcvideo > videodev > v4l1_compat > usbhid > hid > btusb > usb-storage Sorry it took a while to get back to you. > `cat /sys/kernel/debug/usb/usbmon/0u > 0u.out` was give no data at all. > It's normal because all modules uses usb unloaded. > After that I did `modprobe usb-storage` and `cat > /sys/kernel/debug/usb/usbmon/0u > new_0u.out`. The card reader had empty > slot at the moment. Still 5 sec I stopped logging. > Then I did `cat /sys/kernel/debug/usb/usbmon/0u > new_0u_pl_ej.out` and > inserted card and ejected it. After that stopped logging. You should leave the card in the slot for at least 10 seconds or so. hal checks every two seconds to see if a card has been inserted. The usbmon trace shows that no card was detected. > And after that I inserted card and did `cat > /sys/kernel/debug/usb/usbmon/0u > new_0u_rel_pl_ej.out` and in other > console `rmmod ehci-hcd && modprobe ehci-hcd`. Still 10 secs I ejected > flash card and stopped logging. This file shows that the card was detected and was working correctly. There should have been a message about it in the dmesg log. The usbmon trace shows that the card claims to hold about 7.8 GB. > I attached files new_0u.out, new_0u_pl_ej.out, new_0u_rel_pl_ej.out to > the message. Alan Stern
Alan Stern wrote: > You should leave the card in the slot for at least 10 seconds or so. > hal checks every two seconds to see if a card has been inserted. The > usbmon trace shows that no card was detected. > > I has made a new trace. I started logging and insert the card. Still 20 secs or so I ejected the card and stopped logging. I attached this log to the message. But it contains records that presents in the first and the second logs only. > This file shows that the card was detected and was working correctly. > There should have been a message about it in the dmesg log. The usbmon > trace shows that the card claims to hold about 7.8 GB. > > Yes, there is info about the card in dmesg. It's capacity was determined correctly. P.S. I'm sorry for my English.
On Tue, 13 Oct 2009, Alexey wrote: > I has made a new trace. > I started logging and insert the card. Still 20 secs or so I ejected the > card and stopped logging. > I attached this log to the message. But it contains records that > presents in the first and the second logs only. Try doing this: First, rmmod ehci-hcd, rmmod uhci-hcd, and rmmod ohci-hcd. Insert a card in the reader and start usbmon. Then modprobe ehci-hcd. After 20 seconds or so, remove the card. Then after another 10 seconds, insert the card again. 20 seconds after that, stop usbmon. Let's see what that shows. Alan Stern
Alan Stern wrote: > Try doing this: First, rmmod ehci-hcd, rmmod uhci-hcd, and rmmod > ohci-hcd. Insert a card in the reader and start usbmon. Then modprobe > ehci-hcd. After 20 seconds or so, remove the card. Then after another > 10 seconds, insert the card again. 20 seconds after that, stop usbmon. > Let's see what that shows. > > I did that. The log is attached to the message.
On Wed, 14 Oct 2009, Alexey wrote: > Alan Stern wrote: > > Try doing this: First, rmmod ehci-hcd, rmmod uhci-hcd, and rmmod > > ohci-hcd. Insert a card in the reader and start usbmon. Then modprobe > > ehci-hcd. After 20 seconds or so, remove the card. Then after another > > 10 seconds, insert the card again. 20 seconds after that, stop usbmon. > > Let's see what that shows. > > > > > > I did that. The log is attached to the message. Exactly what did you do when removing the card? Did you click on an "Eject" button or run an eject program, as opposed to simply taking the card out of the reader? If that's the case then you may need to run a corresponding "load" program to load a new card. Simply inserting the card in the reader might not be enough. Alternatively, instead of using an "Eject" program, you could unmount any filesystems on the card and just take it out of the reader. Then there shouldn't be any need to run a "load" program. Alan Stern
Alan Stern wrote: > Exactly what did you do when removing the card? Did you click on an > "Eject" button or run an eject program, as opposed to simply taking the > card out of the reader? > > I use the KDE kicker's applet "Disk applet" to eject any portable disk. The card reader doesn't have any buttons like "Eject" or "Load". This is a simple aperture on the side of the notebook Samsung Q210 FS-02. > If that's the case then you may need to run a corresponding "load" > program to load a new card. Simply inserting the card in the reader > might not be enough. > > Alternatively, instead of using an "Eject" program, you could unmount > any filesystems on the card and just take it out of the reader. Then > there shouldn't be any need to run a "load" program. > I tried to unmount volume and take the flash card out but the card reader didn't recognize the card when I secondarily insert it. P.S. I'm sorry for my English.
On Wed, 14 Oct 2009, Alexey wrote: > Alan Stern wrote: > > Exactly what did you do when removing the card? Did you click on an > > "Eject" button or run an eject program, as opposed to simply taking the > > card out of the reader? > > > > > I use the KDE kicker's applet "Disk applet" to eject any portable disk. > The card reader doesn't have any buttons like "Eject" or "Load". > This is a simple aperture on the side of the notebook Samsung Q210 FS-02. > > If that's the case then you may need to run a corresponding "load" > > program to load a new card. Simply inserting the card in the reader > > might not be enough. > > > > Alternatively, instead of using an "Eject" program, you could unmount > > any filesystems on the card and just take it out of the reader. Then > > there shouldn't be any need to run a "load" program. > > > I tried to unmount volume and take the flash card out but the card reader > didn't recognize the card when I secondarily insert it. Then maybe the reader does want to receive a "load" command. You can use the sg_start program from the sg3_utils package to send this command. You should start usbmon, then insert the card, then run sg_start -l /dev/sdb The load command should show up in the usbmon log. Let's see if it convinces the reader to look for the card. If it doesn't work then there's a good possibility your card reader is simply broken. Alan Stern
Alan Stern wrote: > Then maybe the reader does want to receive a "load" command. You > can use the sg_start program from the sg3_utils package to send this > command. > > You should start usbmon, then insert the card, then run > > sg_start -l /dev/sdb > > The load command should show up in the usbmon log. Let's see if it > convinces the reader to look for the card. > > I tried to `sg_start -l /dev/sdb` after I inserted the card into the card reader but it doesn't work. The trace of the usbmon contains only records that repeats all time. I also tried `sg_start -s -l /dev/sdb` and a lot of other options of sg_start but with no effect. > If it doesn't work then there's a good possibility your card reader is > simply broken. > But it works with `rmmod ehci_hcd` (if ehci-hcd loaded) or with `modprobe ehci-hcd` (if it wasn't loaded). And with the same commands for uhci-hcd. And the card reader normal works in the Windows OS. P.S. I'm sorry for my English.
On Thu, 15 Oct 2009, Alexey wrote: > I tried to `sg_start -l /dev/sdb` after I inserted the card into the > card reader but it doesn't work. > The trace of the usbmon contains only records that repeats all time. Can you post the usbmon trace? It should have at least one other command, from the sg_start program. > I also tried `sg_start -s -l /dev/sdb` and a lot of other options of > sg_start but with no effect. > > > If it doesn't work then there's a good possibility your card reader is > > simply broken. > > > But it works with `rmmod ehci_hcd` (if ehci-hcd loaded) or with > `modprobe ehci-hcd` (if it wasn't loaded). > And with the same commands for uhci-hcd. However it _should_ work without unloading and reloading those modules. The fact that it doesn't indicates something is wrong with it. > And the card reader normal works in the Windows OS. So we should find out what commands Windows sends to the reader. You can do this using the SnoopyPro program. Alan Stern
> However it _should_ work without unloading and reloading those modules. > The fact that it doesn't indicates something is wrong with it. > I found that sg_start needs a scsi device to manipulate. It's /dev/sg2 but not /dev/sdb as I tested before. And the only way to detect media in the card reader I found is to: `sg_reset -b /dev/sg2` And the eject command runs as well: `sg_start -e /dev/sg2` But if I try to `sg_start -l /dev/sg2` then it not works. >> And the card reader normal works in the Windows OS. >> > > So we should find out what commands Windows sends to the reader. You > can do this using the SnoopyPro program. > I tested the device in Windows XP about a year ago. And when I tried to test it yeasterday then... the device didn't work. I can initialize the current inserted media with "Restart device" option in SnoopyPro only. Then you was right about the broken device. I'm so sorry for the disturbing.
Thanks for letting us know it was a hardware problem.
On Sun, 18 Oct 2009, Alexey wrote: > I found that sg_start needs a scsi device to manipulate. It's /dev/sg2 > but not /dev/sdb as I tested before. Some commands can use either device, and some need to use the sg device. > And the only way to detect media in the card reader I found is to: > `sg_reset -b /dev/sg2` > And the eject command runs as well: > `sg_start -e /dev/sg2` > But if I try to `sg_start -l /dev/sg2` then it not works. That's not what one would expect, but it makes sense if the device isn't working right. > I tested the device in Windows XP about a year ago. And when I tried to > test it yeasterday then... the device didn't work. > I can initialize the current inserted media with "Restart device" option > in SnoopyPro only. > Then you was right about the broken device. Then you're all set: You know how to make the device detect a new card and you know that this isn't a bug in the kernel. So you can close out the bug report. Alan Stern
Alan Stern wrote: > Then you're all set: You know how to make the device detect a new card > and you know that this isn't a bug in the kernel. So you can close out > the bug report > Thank you for helping.
While this bug is a non kernel issue for Alex, it is a a real issue for several other people: https://bugs.launchpad.net/ubuntu/+bug/366478 I have a brand new Asus UL30A with this device Bus 002 Device 002: ID 058f:6366 Alcor Micro Corp. running Linux 2.6.31. It fails to detect any media inserts and ejects. sg_start -l /dev/sdb does not help it detecting the SD HC media I inserted.