I'm hoping that this is a stupid question that will have a simple
answer, but I've searched the list archives and the documentation and
so far have been unable to solve my problem.
Recently we upgraded from a 2.2.x kernel to a 2.4.x kernel (more
specifically, a stock Redhat 7.1 distribution with a kernel version
2.4.2-2), and I was very excited because finally I was going to be
able to do ECP-mode data transfers to my laser printer, something my
Window-running colleagues have been able to do for years.
Unfortunately I have been unable to get this to happen.
Here's what I'm doing: I have a laser printer (a GCC Elite 21 in this
case, but I've tried others including some HP printers) connected to
the parallel port via a 1284 compliant cable. I boot up the printer,
then copy a test file to the printer like so:
cat testfile.ps > /dev/lp0
For the particular test files I'm using and on this particular printer
I expect the data transfer rate to be somewhere in the vicinity of 400
Kbytes/second (which is what I get with machines running Windows 98)
but I'm only getting 10 to 20 Kbytes/second. This tells me that the
data transfers are happening in compatibility mode. I have access to
the internal firmware on this printer and also to parallel port
analyzers, and from them I can tell that the Linux host is never even
attempting to place the channel into ECP mode.
For reference, I've included below the dmesg output from the test.
What do I have to do to get a Linux box to do ECP mode transfers?
Any help would be appreciated.
-- Dave Strauss
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Winbond Super-IO detection, now testing ports 3F0,370,250,4E,2E ...
Winbond chip at EFER=0x2e key=0x87 devid=52 devrev=17 oldid=ff
Winbond chip type 83627
Winbond LPT Config: cr_30=01 60,61=0378 70=07 74=03, f0=3a
Winbond LPT Config: active=yes, io=0x0378 irq=7, dma=3
Winbond LPT Config: irqtype=pulsed low, high-Z, ECP fifo threshold=7
Winbond LPT Config: Port mode=ECP
SMSC Super-IO detection, now testing Ports 2F0, 370 ...
0x378: FIFO is 16 bytes
0x378: writeIntrThreshold is 9
0x378: readIntrThreshold is 9
0x378: PWord is 8 bits
0x378: Interrupts are ISA-Pulses
0x378: ECP port cfgA=0x10 cfgB=0x48
0x378: ECP settings irq=7 dma=<none or set by other means>
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,COMPAT,EPP,ECP]
parport0: irq 7 detected
parport0: cpp_daisy: aa5500ff(98)
parport0: assign_addrs: aa5500ff(98)
parport0: No more nibble data (0 bytes)
parport0: faking semi-colon
parport0: Printer, GCC Elite 21
lp0: using parport0 (polling).
-- To unsubscribe, send mail to: firstname.lastname@example.org --
-- with the single word "unsubscribe" in the body of the message. --
This archive was generated by hypermail 2b29 : Wed Aug 15 2001 - 16:39:01 EDT