Bug 11921 - USB printer finding problem (USB 1.x)
Summary: USB printer finding problem (USB 1.x)
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Greg Kroah-Hartman
URL:
Keywords:
: 11922 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-10-31 11:36 UTC by Mario Bachmann
Modified: 2012-02-22 20:58 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.27.4
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Mario Bachmann 2008-10-31 11:36:45 UTC
Latest working kernel version: 2.6.27.4
Earliest failing kernel version: 2.6.26.x
Distribution: Gentoo
Hardware Environment: AMD Duron 1200 MHz, 768 MB RAM, 160 GB HD, USB-Printer
Software Environment: x86 i686
Problem Description:
I have a HP Laserjet 1300 (USB 1.x) on a USB1.1 Controller. 
With kernel 2.6.25.18 everything works great. All kernels before worked great. 

With kernel 2.6.26.4 and 2.6.27.4 i have a strange behavior, that the printer
is not always found by "the kernel".

First everything is fine: After a fresh restart of the machine and turning on
the printer -> dmesg shows
  usb 1-1: new full speed USB device using ohci_hcd and address 3
  usb 1-1: configuration #1 chosen from 1 choice
  usblp0: USB Bidirectional printer dev 3 if 0 alt 1 proto 2 vid 0x03F0 pid
0x1017
That is fine and lsusb shows my "Hewlett-Packard". 

Now i turn off the printer and wait an hour and put the printer on again. Than
dmesg will never show me finding the usb-printer. I already changed the cable
with a brand new one. 

My OHCI-USB-Controller is onboard:
00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller
(rev 07) (prog-if 10 [OHCI])
        Subsystem: Silicon Integrated Systems [SiS] USB 1.1 Controller
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at cfffc000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd

I put OHCI in all my kernels (not a module). 

Summary:
(kernel 2.5.25.18 + [SiS] USB 1.1 + HP Laserjet 1300) works perfekt. 
(kernel 2.5.27.4 + [SiS] USB 1.1 + HP Laserjet 1300) works at the beginning. 

Other testing:
The printer perfectly works on an other Linux Box with USB 2.0. 
The USB-cable is brand new.
I tried an other USB1.x pci card with silicon image chipset. that find the
printer always, but printing do not work. 



Steps to reproduce:
1. boot kernel 2.6.27.4
2. turn on and turn off usb-printer several times with breaks of minutes or hours
3. after some tries the printer is never shown in dmesg. printer will never work again without a reboot. 

1b) boot kernel 2.6.25.18
2b) turn on and turn off usb-printer several times with breaks of minutes or hours
3b) kernel find printer _every_ time and dmesg show it.
Comment 1 Greg Kroah-Hartman 2008-10-31 12:12:12 UTC
*** Bug 11922 has been marked as a duplicate of this bug. ***
Comment 2 Mario Bachmann 2008-11-25 16:39:28 UTC
same problem with linux kernel 2.6.28-rc6

:-(
Comment 3 Mario Bachmann 2009-01-21 11:22:39 UTC
same problem with linux kernel 2.6.28.1

when i searched in the net, i found other entries where old usb-hardware (printer, scanner) is not recognized any more with "new" linux kernels. 

can somebody tell me if old usb-features are turned off in new kernels? or if old usb-compatibility-hacks were removed?

the problem is: i _need_ my printer, so i have to use the old kernel (2.6.25.20). every try with new kernels (2.6.28.1 now) do not work ("not"="at most, my printer work one time and never again without a reboot").

perhaps my usb-setting in the .config of the new kernel helps to find a solution (grep USB /usr/src/linux-2.6.28.1/.config):

CONFIG_DVB_USB=m
CONFIG_DVB_USB_DIBUSB_MB=m
CONFIG_SND_USB=y
CONFIG_USB_HID=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_MON=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_PRINTER=y
CONFIG_USB_STORAGE=y

i tried the command "lsusb -v", but i really do not understand the output. 
Comment 4 Mario Bachmann 2009-01-26 03:35:03 UTC
first, i tried kernel 2.6.28.2 with same settings. same result. 

than i tried to compile two things as module:
  /lib/modules/2.6.28.2/kernel/drivers/usb/host/ohci-hcd.ko
  /lib/modules/2.6.28.2/kernel/drivers/usb/class/usblp.ko

1. boot linux with kernel 2.6.28.2 (with the two modules). 
2. turn on HP 1300, dmesg shows: 
      ohci_hcd: auto-wakeup root hub
      usblp0: USB Bidirectional printer dev
      usbcore: registered new interface driver usblp
3. turn off printer, dmesg shows:
      usb 2-1: USB disconnect
      usb 2-1: unregistering device
      ohci_hcd: auto-stop root hub
4. turn on printer again.   PROBLEM:  nothing happens. 
5. rmmod ohci_hcd; modprobe ohci_hcd;
6. printer is found now. :-)

Summarize: unload and reload the ohci-module solved the problem but this is not a nice solution. 

My question: why the ohci-root-hub do not wake up automatically when turning on the printer ageain? 
It must be a problem *before* udev (and the rules), right? do somebody have a hint for me? thanks.

(first i thought, my problem is related with bug #12301, but i think it is not.)
Comment 5 Greg Kroah-Hartman 2012-02-22 20:58:38 UTC
All USB bugs should be sent to the linux-usb@vger.kernel.org mailing 
list, and not entered into bugzilla.  Please bring this issue up there,
if it is still a problem in the latest kernel release.

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