Description of problem: With ehci-hcd loaded, Linux cannot see my printer. This problem has existed for a long time (FC4 at least), and thankfully has the simple workaround of 'rmmod ehci-hcd'. [root@rent ~]# lsmod | grep ehci ehci_hcd 39245 0 [root@rent ~]# lsusb Bus 001 Device 002: ID 0bc2:3000 Seagate RSS LLC Bus 001 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 003: ID 046d:c001 Logitech, Inc. N48/M-BB48 [FirstMouse Plus] Bus 003 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 [root@rent ~]# rmmod ehci-hcd [root@rent ~]# lsusb Bus 004 Device 001: ID 0000:0000 Bus 003 Device 003: ID 046d:c001 Logitech, Inc. N48/M-BB48 [FirstMouse Plus] Bus 003 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 002 Device 006: ID 0bc2:3000 Seagate RSS LLC Bus 002 Device 005: ID 03f0:5711 Hewlett-Packard Bus 002 Device 001: ID 0000:0000 [root@rent log]# rpm -q kernel kernel-2.6.23.9-85.fc8 [root@rent log]# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT8385 [K8T800 AGP] Host Bridge (rev 01) 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800/K8T890 South] 00:0a.0 Ethernet controller: 3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12) 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80) 00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South] 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60) 00:11.6 Communication controller: VIA Technologies, Inc. AC'97 Modem Controller (rev 80) 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 SE] (rev 01) 01:00.1 Display controller: ATI Technologies Inc RV280 [Radeon 9200 SE] (Secondary) (rev 01)
Is this x86_64 or x86? What is the model of the printer in question? Are there any messages in /var/log/messages or dmesg when you plug it in?
No, Jon, wait. I know John, and I think we can jump to the next step directly. It's most likely the printer thinking that it can support 480 speed, but due to its cabling and circuits only ever tested with 12 mbit/s it actually cannot. So reading of some descriptors fails or something. The right way to diagnose this is to look at _complete_ dmesg. It's going to have a -71 in it somewhere, I expect. (John, please don't drop dmesg into comments box, attach instead). Thinking even more forward, this is not likely to be fixable, mostly because we cannot blacklist anything without seeing its descriptors. It's pretty futile, so depending on what dmesg shows I think the best way may be to force 12 speed with a USB 1.1 hub. But let's see.
-71 indeed. I'm attaching /var/log/messages, the load of ehci_hcd happened here: Jan 3 05:26:41 rent kernel: ACPI: PCI Interrupt 0000:00:10.4[C] -> GSI 21 (level, low) -> IRQ 21 and I turned on the broken device shortly after.
Created attachment 290701 [details] dmesg since boot
Thanks, I've seen it. I think you have to go ahead with a search for a 1.1 hub. Strictly speaking, there's a mask in EHCI which sets the speeds of root ports (or port ownership, actually), but there's absolutely no way to set it from the outside of the driver, mostly because ports aren't numbered in any useful way (dmesg says that it's bus 2 port #1, e.g. "2-1", but generally it's random). I'll have to close this as NOTABUG, sorry.
Ugh. Fedora 12 made my printer useless. EHCI seems to be compiled in (nothing in lsmod), so the UHCI workaround can't be done.
So, what about inserting a hub? Did you try it?
I don't have one unfortunately.
FYI I tried recompiling with the USB stuff as modules. With uhci-hcd, I don't see any USB devices at all (and the nvidia module is unhappy, but that's another issue I suppose). Time for a new printer I suppose.
This is certainly embarrassing, but for the sake of completeness I must confess: I only just noticed that the cable I was using is only USB1.1-rated. a USB2 cable from the pound shop and all my problems are gone. Another question for the bozo filter I think?
I should've thought of that. Worse, it took us exactly 2 years.