I recently purchased a laser printer, a Brother HL-5140, which can be connected through a USB 2.0 or a parallel cable. I'm using the ports of my motherboard, a MSI KT6 Delta-FSIR. It has a VIA VT8237 chipset (more details below). I tested it with Linux (SUSE 9.1 with kernel 2.6.5, 2.6.8 and 2.6.9-rc1).
First, the printer works well over a parallel cable, both on Windows and Linux. But over a USB 2.0 cable it works well only in Windows. I tried to plug the printer to a USB 2.0 port as well as a USB 1.1 port, since my motherboard has both. The behaviour is the same in each case. It may be relevant to say that, at boot time, the ehci driver is loaded before the uhci one. In Linux, over a USB 2.0 cable, the printer is seen, detected and configured without problem. It reacts when I try to print something but after a couple of seconds it indicates that data are still in the queue, and nothing happens after that, not a page comes out, I have to switch off the printer to reset it. Exception: if I try to print only raw ASCII, like a good old "Hello world" test, it works. It's probably not a hardware problem, since the printer works fine in Windows. It's not the printing driver (a PPD file in CUPS), since it works in Linux over a parallel cable. So I venture that it probably comes from the USB subsystem. I reported the problem to SUSE. I was answered that that sort of problem is known but difficult to pinpoint and: > In your case it works for a few bytes (e.g. for printing "Hello") > but it does no longer work when tons of data are sent for normal > printing. Therefore it seems the problem is the data-handshake. > Unfortunately there is no soulution. and that the best I could do was to report it to you, for your information. If I can help you in any way, for example testing something, please let me know. Now here are more details about my system: Part of /var/log/messages that appears when the printer is plugged in: kernel: usb 1-7: new high speed USB device using address 9 kernel: usb 1-7: Product: HL-5140 kernel: usb 1-7: Manufacturer: Brother kernel: usb 1-7: SerialNumber: B4J257833 /etc/hotplug/usb.agent[22973]: need a device for this command kernel: drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 9 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0021 kernel: usbcore: registered new driver usblp kernel: drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver /etc/hotplug/usb.agent[23034]: Keeping default configuration with /sys//class/usb/lp0 Content of /proc/bus/usb/devices (the part about the printer is at the bottom): T: Bus=05 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.8-20040906151119-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.3 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=04 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.8-20040906151119-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.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=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc=118/900 us (13%), #Int= 1, #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.8-20040906151119-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.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=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=045e ProdID=0026 Rev= 1.02 S: Manufacturer=Microsoft S: Product=SideWinder Game Pad Pro USB version 1.0 C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 20mA I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=10ms T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 3 Spd=1.5 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=046d ProdID=c501 Rev= 9.10 S: Manufacturer=Logitech S: Product=USB Receiver C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 50mA I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc=236/900 us (26%), #Int= 2, #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.8-20040906151119-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.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 T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=046d ProdID=c503 Rev=10.20 S: Manufacturer=Logitech S: Product=USB Receiver C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 50mA I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=10ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8 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.8-20040906151119-default ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:10.4 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=01 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#= 9 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=04f9 ProdID=0021 Rev= 1.00 S: Manufacturer=Brother S: Product=HL-5140 S: SerialNumber=B4J257833 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms Output of lspci -v (minus some obviously unrelated devices, like sound card, network adapter...): 0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400 AGP] Host Bridge (rev 80) Subsystem: VIA Technologies, Inc.: Unknown device 0000 Flags: bus master, 66Mhz, medium devsel, latency 8 Memory at e0000000 (32-bit, prefetchable) Capabilities: [80] AGP version 3.5 Capabilities: [c0] Power Management version 2 0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge (prog-if 00 [Normal decode]) Flags: bus master, 66Mhz, medium devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 Memory behind bridge: dde00000-dfefffff Prefetchable memory behind bridge: cdd00000-ddcfffff Capabilities: [80] Power Management version 2 0000:00:0e.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 46) (prog-if 10 [OHCI]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 590d Flags: bus master, medium devsel, latency 32, IRQ 177 Memory at dffdb800 (32-bit, non-prefetchable) I/O ports at cc00 [size=128] Capabilities: [50] Power Management version 2 0000:00:0f.0 RAID bus controller: VIA Technologies, Inc.: Unknown device 3149 (rev 80) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5901 Flags: bus master, medium devsel, latency 32, IRQ 185 I/O ports at e800 I/O ports at e400 [size=4] I/O ports at e000 [size=8] I/O ports at dc00 [size=4] I/O ports at d800 [size=16] I/O ports at d400 [size=256] Capabilities: [c0] Power Management version 2 0000:00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5901 Flags: bus master, medium devsel, latency 32, IRQ 185 I/O ports at fc00 [size=16] Capabilities: [c0] Power Management version 2 0000:00:10.0 USB Controller: VIA Technologies, Inc. USB (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5901 Flags: bus master, medium devsel, latency 32, IRQ 193 I/O ports at bc00 [size=32] Capabilities: [80] Power Management version 2 0000:00:10.1 USB Controller: VIA Technologies, Inc. USB (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5901 Flags: bus master, medium devsel, latency 32, IRQ 193 I/O ports at c000 [size=32] Capabilities: [80] Power Management version 2 0000:00:10.2 USB Controller: VIA Technologies, Inc. USB (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5901 Flags: bus master, medium devsel, latency 32, IRQ 193 I/O ports at c400 [size=32] Capabilities: [80] Power Management version 2 0000:00:10.3 USB Controller: VIA Technologies, Inc. USB (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5901 Flags: bus master, medium devsel, latency 32, IRQ 193 I/O ports at c800 [size=32] Capabilities: [80] Power Management version 2 0000:00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86) (prog-if 20 [EHCI]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5901 Flags: bus master, medium devsel, latency 32, IRQ 193 Memory at dfff7e00 (32-bit, non-prefetchable) Capabilities: [80] Power Management version 2 0000:00:11.0 ISA bridge: VIA Technologies, Inc.: Unknown device 3227 Subsystem: VIA Technologies, Inc.: Unknown device 0000 Flags: bus master, stepping, medium devsel, latency 0 Capabilities: [c0] Power Management version 2 -- Thibaut Cousin http://www.thibaut-cousin.net
pgprVkvjOMv2w.pgp
Description: PGP signature