Distribution: Gentoo Hardware Environment: Acer TravelMate 803LCi Problem Description: I recently bought a usb 2.0 stick, 512 MB, branded by Ultra-Media. The Linux kernel only runs it as a usb 1.1 device, whereas in Windows XP it works with full usb 2.0 speed (and without installing additional drivers there), so I think this should be a kernel problem. KInfoCenter reports the device with the name "Unknown" in the "Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #x (x)" bus (x == 1..3), which is 1.1. The usb 2.0 bus would be "Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (4)", this is where other usb 2.0 devices are put into (for example, my external hd or other usb sticks work, just not this one). As for the device details, KInfoCenter says: Class: 0 ((Defined at Interface level)) Subclass: 0 Protocol: 0 USB Version: 1.10 Vendor ID: 0x9a6 (Poinchips) Product ID: 0x8001 Revision: 1.00 Speed: 12 Mbit/s Channels: 0 Max. Packet Size: 0 When plugging in, dmesg says: usb 1-2: new full speed USB device using uhci_hcd and address 3 scsi3 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 3 usb-storage: waiting for device to settle before scanning Vendor: UM 2.0 Model: Rev: 1.06 Type: Direct-Access ANSI SCSI revision: 00 SCSI device sda: 1046464 512-byte hdwr sectors (536 MB) sda: Write Protect is off sda: Mode Sense: 00 06 00 00 sda: assuming drive cache: write through SCSI device sda: 1046464 512-byte hdwr sectors (536 MB) sda: Write Protect is off sda: Mode Sense: 00 06 00 00 sda: assuming drive cache: write through sda: sda1 sda2 Attached scsi removable disk sda at scsi3, channel 0, id 0, lun 0 usb-storage: device scan complete What can I do to help fixing this? (Not being a kernel hacker, you know.) Steps to reproduce: - Plug the usb stick in - See the device properties, I use KInfoCenter, but I'm sure there's some files in /proc too
Are you sure you loaded "ehci-hcd"? Normally that should be the "usb1" bus, but not here. That suggests you don't have the right drivers loaded. If you have, then please update this report to include "dmesg" output for (a) starting up EHCI, and (b) plugging in this device, which will first include EHCI messages. Make sure to build your kernel with CONFIG_USB_DEBUG.
Can you provide the output of 'mount'?
Oh, can you also provide the output of 'cat /proc/bus/usb/devices' with the device plugged in?
(1 of 3) Here's the dmesg output. I have removed output from the other devices and marked what belongs to the booting process and what comes when plugging in the stick. As you can see, ehci-hcd is loaded properly and already before the stick is plugged in. I could maybe also mention that the issue has also been present in 2.6.12 already. USB Universal Host Controller Interface driver v2.3 ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10 ACPI: PCI Interrupt 0000:00:1d.0[A] -> Link [LNKA] -> GSI 10 (level, low) -> IRQ 10 PCI: Setting latency timer of device 0000:00:1d.0 to 64 uhci_hcd 0000:00:1d.0: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 uhci_hcd 0000:00:1d.0: detected 2 ports uhci_hcd 0000:00:1d.0: check_and_reset_hc: legsup = 0x0f30 uhci_hcd 0000:00:1d.0: Performing full reset uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1 uhci_hcd 0000:00:1d.0: irq 10, io base 0x00001800 usb usb1: default language 0x0409 usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 usb usb1: Manufacturer: Linux 2.6.13-suspend2-r4 uhci_hcd usb usb1: SerialNumber: 0000:00:1d.0 usb usb1: hotplug usb usb1: adding 1-0:1.0 (config #1, interface 0) usb 1-0:1.0: hotplug hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected hub 1-0:1.0: standalone hub hub 1-0:1.0: no power switching (usb 1.0) hub 1-0:1.0: individual port over-current protection hub 1-0:1.0: power on to power good time: 2ms hub 1-0:1.0: local power source is good hub 1-0:1.0: state 5 ports 2 chg 0000 evt 0000 ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 5 PCI: setting IRQ 5 as level-triggered ACPI: PCI Interrupt 0000:00:1d.1[B] -> Link [LNKD] -> GSI 5 (level, low) -> IRQ 5 PCI: Setting latency timer of device 0000:00:1d.1 to 64 uhci_hcd 0000:00:1d.1: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 uhci_hcd 0000:00:1d.1: detected 2 ports uhci_hcd 0000:00:1d.1: check_and_reset_hc: legsup = 0x0010 uhci_hcd 0000:00:1d.1: Performing full reset uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:1d.1: irq 5, io base 0x00001820 usb usb2: default language 0x0409 usb usb2: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 usb usb2: Manufacturer: Linux 2.6.13-suspend2-r4 uhci_hcd usb usb2: SerialNumber: 0000:00:1d.1 usb usb2: hotplug usb usb2: adding 2-0:1.0 (config #1, interface 0) usb 2-0:1.0: hotplug hub 2-0:1.0: usb_probe_interface hub 2-0:1.0: usb_probe_interface - got id hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected hub 2-0:1.0: standalone hub hub 2-0:1.0: no power switching (usb 1.0) hub 2-0:1.0: individual port over-current protection hub 2-0:1.0: power on to power good time: 2ms hub 2-0:1.0: local power source is good hub 2-0:1.0: state 5 ports 2 chg 0000 evt 0000 ACPI: PCI Interrupt 0000:00:1d.2[C] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10 PCI: Setting latency timer of device 0000:00:1d.2 to 64 uhci_hcd 0000:00:1d.2: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 uhci_hcd 0000:00:1d.2: detected 2 ports uhci_hcd 0000:00:1d.2: check_and_reset_hc: legsup = 0x0410 uhci_hcd 0000:00:1d.2: Performing full reset uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:1d.2: irq 10, io base 0x00001840 usb usb3: default language 0x0409 usb usb3: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: Product: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 usb usb3: Manufacturer: Linux 2.6.13-suspend2-r4 uhci_hcd usb usb3: SerialNumber: 0000:00:1d.2 usb usb3: hotplug usb usb3: adding 3-0:1.0 (config #1, interface 0) usb 3-0:1.0: hotplug hub 3-0:1.0: usb_probe_interface hub 3-0:1.0: usb_probe_interface - got id hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected hub 3-0:1.0: standalone hub hub 3-0:1.0: no power switching (usb 1.0) hub 3-0:1.0: individual port over-current protection hub 3-0:1.0: power on to power good time: 2ms hub 3-0:1.0: local power source is good hub 3-0:1.0: state 5 ports 2 chg 0000 evt 0000 uhci_hcd 0000:00:1d.0: suspend_rh (auto-stop) uhci_hcd 0000:00:1d.1: suspend_rh (auto-stop) uhci_hcd 0000:00:1d.2: suspend_rh (auto-stop) ehci_hcd: block sizes: qh 128 qtd 96 itd 192 sitd 96 ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 10 ACPI: PCI Interrupt 0000:00:1d.7[D] -> Link [LNKH] -> GSI 10 (level, low) -> IRQ 10 PCI: Setting latency timer of device 0000:00:1d.7 to 64 ehci_hcd 0000:00:1d.7: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller ehci_hcd 0000:00:1d.7: reset hcs_params 0x103206 dbg=1 cc=3 pcc=2 ordered !ppc ports=6 ehci_hcd 0000:00:1d.7: reset hcc_params 6871 thresh 7 uframes 1024 64 bit addr ehci_hcd 0000:00:1d.7: debug port 1 ehci_hcd 0000:00:1d.7: capability 0001 at 68 ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 4 ehci_hcd 0000:00:1d.7: irq 10, io mem 0xd0000000 ehci_hcd 0000:00:1d.7: reset command 080022 (park)=0 ithresh=8 Async period=1024 Reset HALT PCI: cache line size of 32 is not supported by device 0000:00:1d.7 ehci_hcd 0000:00:1d.7: init command 010001 (park)=0 ithresh=1 period=1024 RUN ehci_hcd 0000:00:1d.7: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004 ehci_hcd 0000:00:1d.7: supports USB remote wakeup usb usb4: default language 0x0409 usb usb4: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb4: Product: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller usb usb4: Manufacturer: Linux 2.6.13-suspend2-r4 ehci_hcd usb usb4: SerialNumber: 0000:00:1d.7 usb usb4: hotplug usb usb4: adding 4-0:1.0 (config #1, interface 0) usb 4-0:1.0: hotplug hub 4-0:1.0: usb_probe_interface hub 4-0:1.0: usb_probe_interface - got id hub 4-0:1.0: USB hub found hub 4-0:1.0: 6 ports detected hub 4-0:1.0: standalone hub hub 4-0:1.0: no power switching (usb 1.0) hub 4-0:1.0: individual port over-current protection hub 4-0:1.0: Single TT hub 4-0:1.0: TT requires at most 8 FS bit times hub 4-0:1.0: power on to power good time: 20ms hub 4-0:1.0: local power source is good hub 4-0:1.0: state 5 ports 6 chg 0000 evt 0000 ACPI: PCI Interrupt 0000:00:1f.5[B] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10 PCI: Setting latency timer of device 0000:00:1f.5 to 64 --- So much for the booting process, --- --- what follows is the usb stick plug-in output --- hub 4-0:1.0: state 5 ports 6 chg 0000 evt 0008 ehci_hcd 0000:00:1d.7: GetStatus port 3 status 001803 POWER sig=j CSC CONNECT hub 4-0:1.0: port 3, status 0501, change 0001, 480 Mb/s hub 4-0:1.0: debounce: port 3: total 100ms stable 100ms status 0x501 ehci_hcd 0000:00:1d.7: port 3 full speed --> companion ehci_hcd 0000:00:1d.7: GetStatus port 3 status 003801 POWER OWNER sig=j CONNECT uhci_hcd 0000:00:1d.1: wakeup_rh (auto-start) hub 4-0:1.0: port_wait_reset: err = -107 hub 2-0:1.0: state 5 ports 2 chg 0000 evt 0002 uhci_hcd 0000:00:1d.1: port 1 portsc 0093,00 hub 2-0:1.0: port 1, status 0101, change 0001, 12 Mb/s hub 2-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101 usb 2-1: new full speed USB device using uhci_hcd and address 2 usb 2-1: ep0 maxpacket = 16 usb 2-1: new device strings: Mfr=0, Product=0, SerialNumber=0 usb 2-1: hotplug usb 2-1: adding 2-1:1.0 (config #1, interface 0) usb 2-1:1.0: hotplug hub 2-0:1.0: state 5 ports 2 chg 0000 evt 0002 Initializing USB Mass Storage driver... usb-storage 2-1:1.0: usb_probe_interface usb-storage 2-1:1.0: usb_probe_interface - got id scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning usbcore: registered new driver usb-storage USB Mass Storage support registered. Vendor: UM 2.0 Model: Rev: 1.06 Type: Direct-Access ANSI SCSI revision: 00 usb-storage: device scan complete SCSI device sda: 1046464 512-byte hdwr sectors (536 MB) sda: Write Protect is off sda: Mode Sense: 00 06 00 00 sda: assuming drive cache: write through SCSI device sda: 1046464 512-byte hdwr sectors (536 MB) sda: Write Protect is off sda: Mode Sense: 00 06 00 00 sda: assuming drive cache: write through sda: sda1 sda2 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
(2 of 3) The output of 'cat /proc/bus/usb/devices', which is obviously the source of information for KInfoCenter (from where I copied the information in the first comment of the bug report). The stick is the 4th entry. $ cat /proc/bus/usb/devices T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-suspend2-r4 ehci_hcd S: Product=Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller S: SerialNumber=0000:00:1d.7 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-suspend2-r4 uhci_hcd S: Product=Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 S: SerialNumber=0000:00:1d.2 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-suspend2-r4 uhci_hcd S: Product=Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 S: SerialNumber=0000:00:1d.1 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs= 1 P: Vendor=09a6 ProdID=8001 Rev= 1.00 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=05 Prot=50 Driver=usb-storage E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-suspend2-r4 uhci_hcd S: Product=Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 S: SerialNumber=0000:00:1d.0 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
(3 of 3) The output of 'mount'. I've got 2 partitions on the stick, neither one shows any errors or non-standard stuff when mounting. $ mount -v /dev/sda1 /dev/sda1 on /media/USB-DATA type vfat (rw,nosuid,nodev,sync,noatime,utf8,user=jakob) $ mount -v /dev/sda2 /dev/sda2 on /media/USB-OS type vfat (rw,nosuid,nodev,sync,noatime,utf8,user=jakob)
> $ mount -v /dev/sda1 > /dev/sda1 on /media/USB-DATA type vfat > (rw,nosuid,nodev,sync,noatime,utf8,user=jakob) This is why your device is so slow, the "sync" option. Disable that and your device should be a lot faster.
> This is why your device is so slow, the "sync" option. > Disable that and your device should be a lot faster. 1. Thanks, you're right. Even if the entry in fstab, along with its options, is generated automatically with HAL and the KDE media:/ ioslave, but it doesn't have to concern you kernel devs how I manage to get an entry without 'sync'. 2. But, even if fast enough without 'sync', that doesn't explain why the stick is only running in Full-Speed USB 1.1 mode instead of Hi-Speed USB 2.0. Do you think it's really a 1.1 stick (even if indicated otherwise on its packaging)? Anyways, I have to get back to Windows to check if it exceeds a speed of 12 Mbps there (which is of course not happening in Linux, even without 'sync', because it's recognized as 1.1 device). Sorry if I'm wasting your time with a moot problem, in case it is one.
No, your device is USB 2.0 compliant, just the "full speed" portion of that spec :( Yeah, it's very confusing, and you aren't the first one to be caught by companies not being entirely honest in their advertising, numerous printers are also like this. From what I can see, yes, your device is running as fast as it can.
Ok Greg, thanks very much for your time, insight and explanations :) I'll see what I'm going to do with that knowledge...
*** Bug 5308 has been marked as a duplicate of this bug. ***