Bug 6266 - USB: Cannot enable port 1. Maybe the USB cable is bad?
USB: Cannot enable port 1. Maybe the USB cable is bad?
Status: REJECTED UNREPRODUCIBLE
Product: Drivers
Classification: Unclassified
Component: USB
i386 Linux
: P2 normal
Assigned To: Greg Kroah-Hartman
:
Depends on:
Blocks: USB
  Show dependency treegraph
 
Reported: 2006-03-21 15:21 UTC by Jean-Marc Valin
Modified: 2006-10-18 11:25 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.15
Tree: Mainline
Regression: ---


Attachments
kernel messages (15.37 KB, text/plain)
2006-03-26 01:43 UTC, Jean-Marc Valin
Details

Description Jean-Marc Valin 2006-03-21 15:21:29 UTC
Most recent kernel where this bug did not occur:
2.6.11 and Ubuntu 2.6.12 

Distribution:
Ubuntu 5.10

Hardware Environment:
Dell Latitude D600
Pentium-M 1.6 GHz
1 GB RAM

Software Environment:
Default Ubuntu environment, except for custom kernel

Problem Description:
Sometimes, when inserting a uSB device, I get:
hub 3-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
and the device doesn't work.

Steps to reproduce:

This does not happen all the time, but usually it happens when I unplug my USB
mouse and plug it back again a bit later. When plugging it back I get the error
message and cannot use any usb device anymore. I tried unloading [eu]hci_hcd and
got some success with that. I've never seen that problem happen before 2.6.11
and I suspect it *may* be the cause bug 6166.
Comment 1 Greg Kroah-Hartman 2006-03-21 22:10:08 UTC
This happens on disconnect or when you plug it in?

And which host controller is this on, uhci-hcd?

Can you post the full kernel log messages (as an attachment) for when this
happens?
Comment 2 Jean-Marc Valin 2006-03-21 22:51:33 UTC
The message happens when I recommect the device. It repeats every few seconds.
In at least one occasion, the device managed to work after several of those
messages, but most of the time, it doesn't work and the kernel keeps printing
messages. I've got a uhci-hcd controller. I'll post the full log when the
problem re-occurs (machine crashed when I tried suspend-to-RAM after the USB
problem occured). It's intermittent and I haven't found out what triggers the
problem. Had the problem twice in about two days.
Comment 3 Alan Stern 2006-03-22 07:02:57 UTC
Make sure your kernel is configured with CONFIG_USB_DEBUG turned on.

When the problem occurs again, mount /sys/kernel/debug (as type debugfs) and
copy the contents of /sys/kernel/debug/uhci/[whichever file corresponds to the
controller that isn't working].  Post that as well as the kernel log.
Comment 4 Jean-Marc Valin 2006-03-26 01:43:37 UTC
Created attachment 7676 [details]
kernel messages

This is the kernel log when the problem occurs (dmesg).
Comment 5 Jean-Marc Valin 2006-03-26 01:51:11 UTC
Note, I didn't have debug enabled yet. Can you extract enough useful information
from the log I posted. Otherwise, I'll try with a debug kernel. BTW, after tons
of "Cannot enable port 1.  Maybe the USB cable is bad?" error messages, my mouse
finally worked. This is what got printed when it worked:
[17223284.056000] usb 2-1: new low speed USB device using uhci_hcd and address
2[17223284.176000] input: Logitech USB Receiver as /class/input/input4
[17223284.176000] input: USB HID v1.10 Mouse [Logitech USB Receiver] on
usb-0000:00:1d.1-1
Comment 6 Alan Stern 2006-03-26 07:19:40 UTC
I think CONFIG_USB_DEBUG would make this a lot clearer.  I can't really tell
what's happening from your log.  BTW, the file you want under
/sys/kernel/debug/uhci is 0000:00:1d.1.

Does the same problem occur if you plug the mouse into a different port?
Comment 7 Jean-Marc Valin 2006-03-26 15:17:43 UTC
I've recompiled with CONFIG_USB_DEBUG, but I can't see anything in
/sys/kernel/debug, nor does mount seem to know about debugfs. Could you give
some more details please?
Comment 8 Alan Stern 2006-03-27 14:23:06 UTC
The command you need is:   mount -t debugfs none /sys/kernel/debug
For this to work you must set CONFIG_DEBUG_FS in the kernel hacking section.
Comment 9 Jean-Marc Valin 2006-04-10 06:43:07 UTC
This looks like some kind of heisenbug... Ever since I've started running the
debug kernel, the problem hasn't occured. Any suggestion on what could help it
trigger, or just what the error message I got meant?
Comment 10 Alan Stern 2006-04-10 12:07:29 UTC
I don't know how to make the problem reappear.  Maybe you should just be happy
that it's gone!

The error message "Can't enable port 1.  Maybe the USB cable is bad?" means that
when the hub driver tried to reset the USB port, something went wrong.  There's
no way to tell exactly what went wrong without the debugging information.
Comment 11 Adrian Bunk 2006-07-10 13:29:28 UTC
Please reopen this bug in case you'll be able to reproduce it again.
Comment 12 Martin M 2006-10-15 11:06:40 UTC
I have this problem too on a Medion MD8800 stock machine. It wasn't too bad with
SUSE 10.0 and so I didn't notice back then (kernel 2.6.13), but most of the SUSE
10.1 kernels bite big time in this regard...

Latest messages from a USB debug-enabled build of the latest 10.1 SUSE Linux
kernel, and yes, the problem occurs on a Live CD of Mandriva 2007 as well and on
the 10.2 boot-CD (2.6.18), only much worse...

I'm able to get this to to go away in one of two ways, neither very appealing:

1) blacklisting the ehci_hcd driver
2) Modifying the BIOS to set USB devices to 1.1 status (the ECHI device
disappears in lspci)

The problem with both 'solutions' is that my USB removable harddisk only runs at
USB 1.1 with these workarounds. Everything does, of course.

I've tried to force load of ehci before uhci, but the same thing happens regardless.

There is a slight possibility that the USB wireless mouse and keyboard that came
with the system is causing this, but if so it seems to be a negotiation problem
between 1.1 and 2.0 status.

Some of the latest kernelmessages look like this:
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: state 7 ports 4 chg 0000 evt 0004
hub 5-3:1.0: reset change on port 2
hub 5-3:1.0: port 2, status 0101, change 0011, 12 Mb/s
hub 5-3:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: state 7 ports 4 chg 0000 evt 0004
hub 5-3:1.0: reset change on port 2
hub 5-3:1.0: port 2, status 0101, change 0011, 12 Mb/s
hub 5-3:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
SFW2-INext-ACC-TRUST IN=eth0 OUT= MAC=00:13:d3:b1:72:0f:00:11:09:f3:89:78:08:00
SRC=192.168.33.12 DST=192.168.33.13 LEN=100 TOS=0x10 PREC=0x00 TTL=64 ID=57722
DF PROTO=TCP SPT=1922 DPT=22 WINDOW=606 RES=0x00 ACK PSH URGP=0 OPT
(0101080A1B1CA1850141B493)
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
SFW2-INext-ACC-TRUST IN=eth0 OUT= MAC=00:13:d3:b1:72:0f:00:11:09:f3:89:78:08:00
SRC=192.168.33.12 DST=192.168.33.13 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=21889 DF
PROTO=TCP SPT=14775 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 OPT
(020405B40402080A1B1CA2600000000001030307)
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: state 7 ports 4 chg 0000 evt 0004
hub 5-3:1.0: reset change on port 2
hub 5-3:1.0: port 2, status 0101, change 0011, 12 Mb/s
hub 5-3:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: state 7 ports 4 chg 0000 evt 0004
hub 5-3:1.0: reset change on port 2
hub 5-3:1.0: port 2, status 0101, change 0011, 12 Mb/s
hub 5-3:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...

I will attach the full log and turn on debugfs and send the info mentioned from
there....
Comment 13 Martin M 2006-10-15 11:45:24 UTC
Here's the debugfs output. Not much...

20:50 dualpc:/usr/src/linux # ls -l /sys/kernel/debug/uhci/
totalt 0
drwxr-xr-x 2 root root 0 2006-10-15 21:30 .
drwxr-xr-x 3 root root 0 2006-10-15 21:30 ..
-rw-r--r-- 1 root root 0 2006-10-15 21:30 0000:00:1d.0
-rw-r--r-- 1 root root 0 2006-10-15 21:30 0000:00:1d.1
-rw-r--r-- 1 root root 0 2006-10-15 21:30 0000:00:1d.2
-rw-r--r-- 1 root root 0 2006-10-15 21:30 0000:00:1d.3

20:57 dualpc:/usr/src/linux # lspci
00:00.0 Host bridge: Intel Corporation 945G/GZ/P/PL Express Memory Controller
Hub (rev 81)
00:01.0 PCI bridge: Intel Corporation 945G/GZ/P/PL Express PCI Express Root Port
(rev 81)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition
Audio Controller (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI
Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface
Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller
(rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) Serial ATA
Storage Controller IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0147 (rev a2)
02:01.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video
Broadcast Decoder (rev d1)
02:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
02:03.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller
(rev 80)
02:04.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video
Broadcast Decoder (rev d1)
02:05.0 Communication controller: Agere Systems Unknown device 0620

When I have the opportunity I'll try to boot with a regular keyboard and the
wireless one not connected.
20:49 dualpc:/usr/src/linux # cat /sys/kernel/debug/uhci/0000\:00\:1d.0
Root-hub state: auto-stopped
HC status
  usbcmd    =     0048   Maxp32 CF EGSM
  usbstat   =     0020   HCHalted
  usbint    =     0002
  usbfrnum  =   (1)248
  flbaseadd = 3c7a3248
  sof       =       40
  stat1     =     0080
  stat2     =     0080
Frame List
Skeleton QHs
20:50 dualpc:/usr/src/linux # cat /sys/kernel/debug/uhci/0000\:00\:1d.1
Root-hub state: auto-stopped
HC status
  usbcmd    =     0048   Maxp32 CF EGSM
  usbstat   =     0020   HCHalted
  usbint    =     0002
  usbfrnum  =   (0)a88
  flbaseadd = 3c1cea88
  sof       =       40
  stat1     =     0080
  stat2     =     0080
Frame List
Skeleton QHs
20:50 dualpc:/usr/src/linux # cat /sys/kernel/debug/uhci/0000\:00\:1d.2
Root-hub state: auto-stopped
HC status
  usbcmd    =     0048   Maxp32 CF EGSM
  usbstat   =     0020   HCHalted
  usbint    =     0002
  usbfrnum  =   (1)28c
  flbaseadd = 3edd728c
  sof       =       40
  stat1     =     0080
  stat2     =     0080
Frame List
Skeleton QHs
20:50 dualpc:/usr/src/linux # cat /sys/kernel/debug/uhci/0000\:00\:1d.3
Root-hub state: auto-stopped
HC status
  usbcmd    =     0048   Maxp32 CF EGSM
  usbstat   =     0020   HCHalted
  usbint    =     0002
  usbfrnum  =   (0)b94
  flbaseadd = 3b93fb94
  sof       =       40
  stat1     =     0080
  stat2     =     0080
Frame List
Skeleton QHs


Comment 14 Martin M 2006-10-15 11:47:51 UTC
Is there anything more I can do? Are there any options I can set to try and make
this problem go away?
Comment 15 Alan Stern 2006-10-16 06:50:24 UTC
Actually this looks like a problem with the internal hub in your wireless
keyboard/mouse device.  It's not clear why it works better at full speed than at
high speed.

Try detaching it and see what happens.
Comment 16 Martin M 2006-10-16 10:48:06 UTC
I have disconnected all external USB devices now and I still get the error.

I have a USB X10 device and a USB Wifi controller on the motherboard.

Also, lsusb never returns when called (again, if I unload ehci, it works):

With EHCI, straced:

19:50 dualpc:~ # ls /dev/bus/usb/
.  ..  001  002  003  004  005

19:45 dualpc:~ # strace lsusb
execve("/usr/bin/lsusb", ["lsusb"], [/* 80 vars */]) = 0
brk(0)                                  = 0x512000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b1ec4010000
uname({sys="Linux", node="dualpc", ...}) = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=217369, ...}) = 0
mmap(NULL, 217369, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b1ec4011000
close(3)                                = 0
open("/usr/lib64/libusb-0.1.so.4", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\31\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=32784, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b1ec4047000
mmap(NULL, 1079240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x2b1ec4112000
madvise(0x2b1ec4112000, 1079240, MADV_SEQUENTIAL|0x1) = 0
mprotect(0x2b1ec4118000, 1048576, PROT_NONE) = 0
mmap(0x2b1ec4218000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x2b1ec4218000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\322\1\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1475924, ...}) = 0
mmap(NULL, 2289896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x2b1ec421a000
madvise(0x2b1ec421a000, 2289896, MADV_SEQUENTIAL|0x1) = 0
mprotect(0x2b1ec4340000, 1048576, PROT_NONE) = 0
mmap(0x2b1ec4440000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x126000) = 0x2b1ec4440000
mmap(0x2b1ec4445000, 16616, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2b1ec4445000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b1ec444a000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b1ec444b000
arch_prctl(ARCH_SET_FS, 0x2b1ec444aae0) = 0
mprotect(0x2b1ec4440000, 12288, PROT_READ) = 0
munmap(0x2b1ec4011000, 217369)          = 0
brk(0)                                  = 0x512000
brk(0x533000)                           = 0x533000
open("./usb.ids", O_RDONLY)             = -1 ENOENT (No such file or directory)
open("/usr/share/usb.ids", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=152845, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b1ec4011000
read(3, "#\n#\tList of USB ID\'s\n#\n#\tMaintai"..., 4096) = 4096
read(3, "\t5637  M5637 IDE Controller\n0403"..., 4096) = 4096
read(3, "\n\t040b  N-Gage GSM Phone\n\t040f  "..., 4096) = 4096
read(3, "telliMouse\n\t000b  Natural Keyboa"..., 4096) = 4096
read(3, "se (4-button)\n\tc501  Cordless Mo"..., 4096) = 4096
read(3, "ner\n04a8  Multivideo Labs, Inc.\n"..., 4096) = 4096
read(3, "f000  CY30700 Licorice evaluatio"..., 4096) = 4096
read(3, "500  Veridicom 5thSense Fingerpr"..., 4096) = 4096
read(3, "4a6  Linux-USB Serial Gadget\n\ta4"..., 4096) = 4096
read(3, "200 CU\n\t0002  ScanExpress 600 CU"..., 4096) = 4096
read(3, "esizer\n0583  Padix Co., Ltd (Roc"..., 4096) = 4096
read(3, "rnet [pegasus]\n\t3363  MicroLink "..., 4096) = 4096
read(3, "o Instruments, Inc.\n061a  Veridi"..., 4096) = 4096
read(3, " (USB 2.0)\n\t2515  Flash Disk Emb"..., 4096) = 4096
read(3, "dgetTemperatureSensor Ver 1.0\n\t0"..., 4096) = 4096
read(3, "005  Crypto Token\n073e  NEC, Inc"..., 4096) = 4096
read(3, "anner\n07b4  Olympus Optical Co.,"..., 4096) = 4096
read(3, "Port V.90 Fax/Modem\n0840  Argosy"..., 4096) = 4096
brk(0x554000)                           = 0x554000
read(3, "rnier\n\t0001  LabPro\n\t0002  EasyT"..., 4096) = 4096
read(3, "Corp.\n09c3  ActivCard, Inc.\n\t000"..., 4096) = 4096
read(3, "42 MP3 Player\n0aaa  Japan CBM Co"..., 4096) = 4096
read(3, "\n\t00eb  USR1120 802.11b Adapter\n"..., 4096) = 4096
read(3, "\n0c8f  Applied Microsystems\n0c99"..., 4096) = 4096
read(3, "rive II+ VP2160\n0d7e  American C"..., 4096) = 4096
read(3, "py 3000 PDA\n0e82  Ching Tai Elec"..., 4096) = 4096
read(3, "lectronics Co., Ltd\n0fbb  Bitwis"..., 4096) = 4096
read(3, "werLinc\n10c4  Cygnal Integrated "..., 4096) = 4096
read(3, "ra\n\t0003  Dimage Xg Camera\n\t0006"..., 4096) = 4096
read(3, "net [pegasus]\n\t4003  DSB-650TX-P"..., 4096) = 4096
read(3, "on\n8341  EGO Systems, Inc.\n\t2000"..., 4096) = 4096
read(3, "\nAT 0700  Embedded Undefined\nAT "..., 4096) = 4096
read(3, "Landing Gear\n\t0bf  Toe Break\n\t0c"..., 4096) = 4096
read(3, "1  F22\n\t072  F23\n\t073  F24\n\t074 "..., 4096) = 4096
read(3, " Sleep Mode\n\t035  Illumination\n\t"..., 4096) = 4096
read(3, "d\n\t226  AC Stop\n\t227  AC Refresh"..., 4096) = 4096
brk(0x575000)                           = 0x575000
read(3, "ead\n\t032  Cursur Position Report"..., 4096) = 4096
read(3, "\n\t040  Terminate Charge\n\t041  Te"..., 4096) = 4096
read(3, "rit\nL 0057  Konkani\nL 0058  Mani"..., 4096) = 1293
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x2b1ec4011000, 4096)            = 0
open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents64(3, /* 7 entries */, 4096)    = 168
close(3)                                = 0
open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents64(3, /* 7 entries */, 4096)    = 168
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
open("/dev/bus/usb/005", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents64(3, /* 6 entries */, 4096)    = 144
open("/dev/bus/usb/005/008", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0x7fffe6ab1eb0) = 0
read(4, "\22\1\20\1\0\0\0\10\307\v\6\0\0\2\1\2\0\1", 18) = 18
read(4, "\t\2 \0\1\1\0\240", 8)         = 8
read(4, "\1\t\4\0\0\2\377\0\0\0\7\5\201\3\10\0\n\7\5\2\3\10\0\n"..., 24) = 24
close(4)                                = 0
open("/dev/bus/usb/005/003", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0x7fffe6ab1eb0) = 0
read(4, "\22\1\0\2\0\0\0@\214\r\0R\0\1\0\0\0\1", 18) = 18
read(4, "\t\2\'\0\1\1\0\200", 8)        = 8
read(4, "2\t\4\0\0\3\377\377\377\0\7\5\1\2\0\2\0\7\5\202\2\0\2\0"..., 31) = 31
close(4)                                = 0
open("/dev/bus/usb/005/002", O_RDWR)    = 4
ioctl(4, USBDEVFS_CONNECTINFO 

Without EHCI:

19:50 dualpc:~ # rmmod ehci_hcd
19:50 dualpc:~ # ls /dev/bus/usb/
.  ..  001  002  003  004

19:50 dualpc:~ # lsusb
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 006: ID 0bc7:0006 X10 Wireless Technology, Inc.
Bus 002 Device 005: ID 148f:2570 Ralink Technology, Corp. 802.11g WiFi
Bus 002 Device 004: ID 05e3:0606 Genesys Logic, Inc.
Bus 002 Device 003: ID 0d8c:5200 C-Media Electronics, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

There's a USB cardreader as well which have never worked in Linux but works fine
in Windows. I wonder if that is the troublesome one. It isn't listed as
usb-storage at all....

19:51 dualpc:~ # lsusb -v

Bus 003 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.16.21-0.25-smp uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:1d.2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
Device Status:     0x0001
  Self Powered

Bus 002 Device 006: ID 0bc7:0006 X10 Wireless Technology, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0bc7 X10 Wireless Technology, Inc.
  idProduct          0x0006
  bcdDevice            2.00
  iManufacturer           1 X10 WTI
  iProduct                2 RF receiver
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)

Bus 002 Device 005: ID 148f:2570 Ralink Technology, Corp. 802.11g WiFi
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x148f Ralink Technology, Corp.
  idProduct          0x2570 802.11g WiFi
  bcdDevice            0.01
  iManufacturer           1 Ralink
  iProduct                2 802.11g WLAN
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              300mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 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)

Bus 002 Device 004: ID 05e3:0606 Genesys Logic, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x05e3 Genesys Logic, Inc.
  idProduct          0x0606
  bcdDevice            7.02
  iManufacturer           0
  iProduct                1 USB2.0 Hub
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             4
  wHubCharacteristic 0x00e9
    Per-port power switching
    Per-port overcurrent protection
    Port indicators
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent    100 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0103 power enable connect
   Port 3: 0000.0303 lowspeed power enable connect
   Port 4: 0000.0100 power
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0003
  Self Powered
  Remote Wakeup Enabled

Bus 002 Device 003: ID 0d8c:5200 C-Media Electronics, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0d8c C-Media Electronics, Inc.
  idProduct          0x5200
  bcdDevice            1.00
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      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     0x0040  1x 64 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     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               9
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)

Bus 002 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.16.21-0.25-smp uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:1d.1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0103 power enable connect
   Port 2: 0000.0103 power enable connect
Device Status:     0x0001
  Self Powered

Bus 004 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.16.21-0.25-smp uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:1d.3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
Device Status:     0x0001
  Self Powered

Bus 001 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.16.21-0.25-smp uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:1d.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
Device Status:     0x0001
  Self Powered

When I removed the ehci_hcd module I got this in dmesg:

hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: port_wait_reset: err = -22
hub 5-3:1.0: port 2 not enabled, trying reset again...
hub 5-3:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
hub 5-3:1.0: state 7 ports 4 chg 0000 evt 0004
hub 5-3:1.0: reset change on port 2
hub 5-3:1.0: port 2, status 0101, change 0011, 12 Mb/s
ehci_hcd 0000:00:1d.7: remove, state 1
ehci_hcd 0000:00:1d.7: roothub graceful disconnect
usb usb5: USB disconnect, address 1
usb 5-3: USB disconnect, address 2
hub 5-3:1.0: hub_port_status failed (err = -19)
hub 5-3:1.0: connect-debounce failed, port 2 disabled
hub 5-3:1.0: cannot disable port 2 (err = -19)
usb 5-3.3: USB disconnect, address 8
usb 5-3.3: usb_disable_device nuking all URBs
usb 5-3.3: unregistering interface 5-3.3:1.0
usb 5-3.3:1.0: uevent
usb 5-3.3: unregistering device
usb 5-3.3: uevent
usb 5-3: usb_disable_device nuking all URBs
usb 5-3: unlink qh256-0001/ffff81003c523140 start 255 [1/0 us]
ehci_hcd 0000:00:1d.7: shutdown urb ffff81003cd71d80 pipe 40408280 ep1in-intr
usb 5-3: unregistering interface 5-3:1.0
usb 5-3:1.0: uevent
usb 5-3: unregistering device
usb 5-3: uevent
usb 5-4: USB disconnect, address 3
usb 5-4: usb_disable_device nuking all URBs
usb 5-4: unregistering interface 5-4:1.0
usb 5-4:1.0: uevent
usb 5-4: unregistering device
usb 5-4: uevent
usb usb5: usb_disable_device nuking all URBs
ehci_hcd 0000:00:1d.7: shutdown urb ffff81003b564ac0 pipe 40408180 ep1in-intr
usb usb5: unregistering interface 5-0:1.0
usb 5-0:1.0: uevent
usb usb5: unregistering device
usb usb5: uevent
ehci_hcd 0000:00:1d.7: stop
ehci_hcd 0000:00:1d.7: reset command 010003 (park)=0 ithresh=1 period=1024 Reset RUN
uhci_hcd 0000:00:1d.1: wakeup_rh (auto-start)
hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0004
uhci_hcd 0000:00:1d.1: port 2 portsc 0093,00
hub 2-0:1.0: port 2, status 0101, change 0001, 12 Mb/s
ehci_hcd 0000:00:1d.7: irq normal 24504 err 0 reclaim 8834 (lost 1)
ehci_hcd 0000:00:1d.7: complete 24514 unlink 0
ehci_hcd 0000:00:1d.7: ehci_stop completed status 1000 Halt
ehci_hcd 0000:00:1d.7: USB bus 5 deregistered
hub 2-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
usb 2-2: new full speed USB device using uhci_hcd and address 3
usb 2-2: new device found, idVendor=0d8c, idProduct=5200
usb 2-2: new device strings: Mfr=0, Product=0, SerialNumber=0
usb 2-2: uevent
usb 2-2: device is bus-powered
usb 2-2: configuration #1 chosen from 1 choice
usb 2-2: adding 2-2:1.0 (config #1, interface 0)
usb 2-2:1.0: uevent
drivers/usb/core/inode.c: creating file '003'
hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0006
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 4
usb 2-1: default language 0x0409
usb 2-1: new device found, idVendor=05e3, idProduct=0606
usb 2-1: new device strings: Mfr=0, Product=1, SerialNumber=0
usb 2-1: Product: USB2.0 Hub
usb 2-1: uevent
usb 2-1: device is self-powered
usb 2-1: configuration #1 chosen from 1 choice
usb 2-1: adding 2-1:1.0 (config #1, interface 0)
usb 2-1:1.0: uevent
hub 2-1:1.0: usb_probe_interface
hub 2-1:1.0: usb_probe_interface - got id
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 4 ports detected
hub 2-1:1.0: standalone hub
hub 2-1:1.0: individual port power switching
hub 2-1:1.0: individual port over-current protection
hub 2-1:1.0: TT requires at most 32 FS bit times (2664 ns)
hub 2-1:1.0: Port indicators are supported
hub 2-1:1.0: power on to power good time: 100ms
hub 2-1:1.0: local power source is good
hub 2-1:1.0: enabling power on all ports
drivers/usb/core/inode.c: creating file '004'
hub 2-1:1.0: state 7 ports 4 chg 0000 evt 0000
hub 2-1:1.0: port 2, status 0101, change 0001, 12 Mb/s
hub 2-1:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
usb 2-1.2: new full speed USB device using uhci_hcd and address 5
usb 2-1.2: default language 0x0409
usb 2-1.2: new device found, idVendor=148f, idProduct=2570
usb 2-1.2: new device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1.2: Product: 802.11g WLAN
usb 2-1.2: Manufacturer: Ralink
usb 2-1.2: uevent
usb 2-1.2: device is bus-powered
usb 2-1.2: configuration #1 chosen from 1 choice
usb 2-1.2: adding 2-1.2:1.0 (config #1, interface 0)
usb 2-1.2:1.0: uevent
drivers/usb/core/inode.c: creating file '005'
hub 2-1:1.0: port 3, status 0301, change 0001, 1.5 Mb/s
hub 2-1:1.0: debounce: port 3: total 100ms stable 100ms status 0x301
usb 2-1.3: new low speed USB device using uhci_hcd and address 6
usb 2-1.3: default language 0x0409
usb 2-1.3: new device found, idVendor=0bc7, idProduct=0006
usb 2-1.3: new device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1.3: Product: RF receiver
usb 2-1.3: Manufacturer: X10 WTI
usb 2-1.3: uevent
usb 2-1.3: device is bus-powered
usb 2-1.3: configuration #1 chosen from 1 choice
usb 2-1.3: adding 2-1.3:1.0 (config #1, interface 0)
usb 2-1.3:1.0: uevent
drivers/usb/core/inode.c: creating file '006'
hub 2-1:1.0: state 7 ports 4 chg 0000 evt 0008
ati_remote 2-1.3:1.0: usb_probe_interface
ati_remote 2-1.3:1.0: usb_probe_interface - got id
input: X10 WTI RF receiver as /class/input/input3
usbcore: registered new driver ati_remote
drivers/usb/input/ati_remote.c: Registered USB driver ATI/X10 RF USB Remote
Control v. 2.2.1
drivers/usb/input/ati_remote.c: Weird data, len=1 ff 00 00 00 00 00 ...

It looks like an autonegotiation problem from where I'm sitting, but as I
haven't done any kernel development I am realy just guessing...

Is there any way to, say, ignore this bad, *bad* port 2 on hub 5?
Comment 17 Martin M 2006-10-16 11:26:25 UTC
Booted again with USB harddisk attached. Connected USB keyboard/mouse after
bootup. This is the contents of /dev/bus/usb/005:

20:40 dualpc:~ # ls -l /dev/bus/usb/005
totalt 0
drwxr-xr-x  2 root root      140 2006-10-16 22:10 .
drwxr-xr-x  7 root root      140 2006-10-16 22:06 ..
crw-r--r--  1 root root 189, 512 2006-10-16 22:06 001
crw-r--r--  1 root root 189, 513 2006-10-16 22:06 002
crw-rw-r--+ 1 root root 189, 514 2006-10-16 22:06 003
crw-r--r--  1 root root 189, 515 2006-10-16 22:09 004
crw-rw-r--+ 1 root root 189, 520 2006-10-16 22:10 009
Comment 18 Alan Stern 2006-10-17 07:31:44 UTC
I was wrong before.  The trouble-causing device is the internal hub (from
Genesys Logic) connected to the X10 device and the Wifi controller.  You
probably can't disconnect that without mutilating your motherboard.  But maybe
you can disable those devices in the BIOS.

If you can't, here is an experimental patch which might help a little:

   http://marc.theaimsgroup.com/?l=linux-usb-devel&m=116005765229549&w=2

By the way, when you want to add large listings into the bug report, you should
attach them instead of pasting them into a Comment section.  Your single comment
#16 doubled the length of the entire report, making it a lot harder to read.
Comment 19 Martin M 2006-10-17 10:58:29 UTC
Sorry about the long post. I'll do my best to not do that again.

I've tried the patch. It applied cleanly to my SUSE 2.6.16.21 kernel, but upon
reboot I don't see the new 'file' in /sys/class:

19:58 dualpc:/usr/src/linux # ls /sys/class/
.   bluetooth  graphics     ieee1394       ieee1394_node      input  misc 
pci_bus  scsi_device   scsi_host  spi_master  usb         usb_host  video4linux
..  dma        i2c-adapter  ieee1394_host  ieee1394_protocol  mem    net  
printer  scsi_generic  sound      tty         usb_device  vc

I did this:
patch -p1 < ../usbhub-ignore.diff
make -C /lib/modules/$(uname -r)/source M=drivers/usb/ clean 
make -C /lib/modules/$(uname -r)/source M=drivers/usb/
make -C /lib/modules/$(uname -r)/source M=drivers/usb/ modules_install

Everything USB should be compiled as modules already so is this an udev thing?

I cannot disable any of the internal USB units in the BIOS. I can only toggle
between 2.0 and 1.1 in a general way and that would leave me with a USB HDD with
a maximum transferspeed of about 1 MB.. Not liking that...

/Martin.
Comment 20 Alan Stern 2006-10-17 11:41:41 UTC
You didn't say what directory you were in when you issued the "patch" command. 
Unless it was the directory containing your current kernel's source (in which
case the "-C /lib/modules/$(uname -r)/source" was unnecessary), you ended up
compiling a different kernel from the one you patched.  And if you have an
initramdisk image containing the usbcore module, it would need to be updated as
well.

Basically the only reason for /sys/class/usb_hub not showing up is that you did
not end up booting the kernel with the patch.
Comment 21 Martin M 2006-10-17 12:50:00 UTC
That is odd...

I was in /usr/src/linux which *is* linked to the running kernel..

lrwxrwxrwx  1 root root   20 2006-10-14 18:42 linux -> linux-2.6.16.21-0.25

21:25 dualpc:/usr/src # uname -a
Linux dualpc 2.6.16.21-0.25-smp #1 SMP Sun Oct 15 17:59:38 CEST 2006 x86_64
x86_64 x86_64 GNU/Linux

I just used that syntax as it worked well with my modified medion_remote module
and hoped I could skip a full 'make modules' (and I could).

I now have about 3 2.6.16.21 kernels and I've booted each of them.

Tried make bzImage again and it seems it's now 1 byte smaller. Trying one last
boot today...

21:33 dualpc:/usr/src/linux # ls -l
/lib/modules/2.6.16.21-0.25-smp/kernel/drivers/usb/core/
totalt 232
drwxr-xr-x  2 root root     80 2006-10-15 19:08 .
drwxr-xr-x 14 root root    360 2006-10-15 19:08 ..
-rw-r--r--  1 root root 235476 2006-10-15 19:01 usbcore.ko

Hmm.. That should have been today...

Okay then... Trying again after cleaning out the modules...

21:35 dualpc:/usr/src/linux-2.6.16.21-0.25 # make M=drivers/usb/

21:38 dualpc:/usr/src/linux-2.6.16.21-0.25 # ls -l
/lib/modules/2.6.16.21-0.25-smp/kernel/drivers/usb/core/
totalt 232
drwxr-xr-x  2 root root     80 2006-10-15 19:08 .
drwxr-xr-x 14 root root    360 2006-10-15 19:08 ..
-rw-r--r--  1 root root 235476 2006-10-15 19:01 usbcore.ko
21:38 dualpc:/usr/src/linux-2.6.16.21-0.25 # ls -l drivers/usb/core/usbcore.ko
-rw-r--r-- 1 root root 237064 2006-10-17 21:37 drivers/usb/core/usbcore.ko

Hmm.. modules_install doesn't seem to work when invoked like this. Copying
usbcore manually.

21:38 dualpc:/usr/src/linux-2.6.16.21-0.25 # cp drivers/usb/core/usbcore.ko
/lib/modules/2.6.16.21-0.25-smp/kernel/drivers/usb/core/
/bin/cp: overskriv
'/lib/modules/2.6.16.21-0.25-smp/kernel/drivers/usb/core/usbcore.ko'? y
21:40 dualpc:/usr/src/linux-2.6.16.21-0.25 # depmod -a

And now for the reboot. Here's hoping!

Well well well! It still takes forever to boot but at least I can get the system
to quiet down afterwards now:

21:58 dualpc:../usb_hub/usbhub5.2 # cat ignore
2

I first tried usbhub5.1 but that didn't help any.

21:58 dualpc:/sys/class/usb_hub # ls
.  ..  usbhub1.1  usbhub2.1  usbhub3.1  usbhub4.1  usbhub5.1  usbhub5.2

Now I just need to remove the debugging again, but the port thing is now mute:

21:58 dualpc:/sys/class/usb_hub # dmesg
...
usb-storage: -- transfer complete
usb-storage: Bulk status result = 0
usb-storage: Bulk Status S 0x53425355 T 0x403 R 0 Stat 0x0
usb-storage: scsi cmd done, result=0x0
usb-storage: *** thread sleeping.

My logs were growing very big very fast!!

Now that I can actually do a 'lsusb' with ehci loaded this is the result:

Bus 005 Device 011: ID 0bc7:0006 X10 Wireless Technology, Inc.
Bus 005 Device 006: ID 0dbf:9001 Quik Tech Solutions
Bus 005 Device 002: ID 05e3:0606 Genesys Logic, Inc.
Bus 005 Device 001: ID 0000:0000
Bus 005 Device 003: ID 0d8c:5200 C-Media Electronics, Inc.
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 004 Device 002: ID 1131:1001 Integrated System Solution Corp. KY-BT100
Bluetooth Adapter
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 002: ID 04f2:0420 Chicony Electronics Co., Ltd
Bus 003 Device 001: ID 0000:0000

The Chicony is the keyboard. The Quik Tech Solutions thing is apparently my
external USB disk...
Comment 22 Martin M 2006-10-17 12:53:49 UTC
It works wonders the the load on the system, too!

Is there any way I can pass this along from grub so I don't have to wait through
5-10 minutes of bad cables? sort of a 'usbcore.hub_ignore=5.2:2' ?
Comment 23 Alan Stern 2006-10-17 14:14:41 UTC
No, unfortunately this can't be set at boot time.  What you can do is edit the
startup scripts (typically in /etc/rc.d), find the part where udev starts up,
and then shortly after that do the write.  Remember to leave a time delay long
enough for /sys/class/usb_hub to be populated.
Comment 24 Martin M 2006-10-17 14:35:46 UTC
Okay. I have make a simple script to echo 2 into usbhub5.2/ignore and set it to
be the last 'boot' action of the system:

lrwxrwxrwx  1 root root   16 2006-05-24 19:12 S12boot.ipconfig -> ../boot.ipconfig
lrwxrwxrwx  1 root root   22 2006-10-17 23:47 S99boot.fixusb ->
/usr/local/bin/fix-usb
23:47 dualpc:/etc/init.d/boot.d # 

I'll see if this is a good location when I can safely reboot again (wouldn't
want to miss a MythTV recording now, would I?) :)
Comment 25 Martin M 2006-10-17 23:53:19 UTC
I hope this patch or one like it gets into the kernel proper.
It would be nice if it would automatically ignore a port if it has retried it 50
times.
Comment 26 Alan Stern 2006-10-18 08:56:25 UTC
I will submit something like it, but it won't appear in the standard kernel
until 2.6.20 or later.

We can't just start ignoring a port after 50 retries.  You'd be in trouble when
you plugged a device in for the 51st time.

We could arrange to ignore a port if 50 retries occur during a 1-minute period.
 (Or 10 retries during 10 seconds.)  But this would require keeping track of
timeouts and retry counts for each port separately, which is a lot of work for a
pretty uncommon problem.
Comment 27 Martin M 2006-10-18 09:36:50 UTC
Okay.

I don't suppose there is anything that could be done to make that Genesys Logic
thing *work*? If it is the cardreader, it functions just fine in Windows, but it
may have a non-standard way of presenting itself... (Although I should probably
test that it is still the case. Haven't used any of from for months and Windows
only sees the light of day 5-10 times a year, usually...
Comment 28 Alan Stern 2006-10-18 11:25:44 UTC
It isn't the card reader.  Read your "lsusb -v" output and re-read Comment #18.
 The Genesys Logic device is an internal hub, connected to the X10 and Wifi devices.

I don't know why it isn't working, nor what can be done to make it work.

Note You need to log in before you can comment on or make changes to this bug.