Printer-device configuration problems

Eric S. Raymond (esr@thyrsus.com)
Thu, 10 Sep 1998 01:59:54 -0400


This is an expansion of my previous bug report on the behavior of lp devices.

Hardware:
Tyan dual Pentium II 400 motherboard
One parallel port, base address jumpered to 378 (normally lp1)

I now think I'm seeing two separate bugs:

Bug #1: Failure of get_device_list() to find configured devices with major=6

This bug has been observed on two different machines; mine, under both
2.0.35 and 2.1.120, and the print server at VA Research (according to Rob
Walker, copied above).
My machine under 2.0.35 and VAR's print server can both print
through lp1, despite the fact that "cat /proc/devices" doesn't show "6 lp"
as it apparently should. So the lp device is functional in these
configurations but it's invisible under /proc. What's up with *that*?

Bug #2: Something isn't right in the 2.1.xx lp initialization

My machine under 2.1.120 cannot print. Attempts to cat to /dev/lp0
or /dev/lp1 yield "Operation not supported by device".
I suspect this has something to do with the facts that (a) the port
address configured for the port is 378, which would normally be lp1,
(b) /proc/parport contains only the entry `0', and (c) the 2.1.xx
driver, unlike the 2.0.xx driver, tries to map port addresses
to devices dynamically.

Frobbing lp boot time options has yielded no good result.

My 2.1.20 configuration includes the following:

CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
# CONFIG_PARPORT_OTHER is not set
CONFIG_PRINTER=y
# CONFIG_PRINTER_READBACK is not set

Any insights?

-- 
		<a href="http://www.tuxedo.org/~esr">Eric S. Raymond</a>

The following is a Python RSA implementation. According to the US Government these three lines are "munitions" and posting them makes me an international arms trafficker! Join me in civil disobedience; add these lines of code to your .sig block to help get this stupid and unconstitutional law changed. ============================================================================ from sys import*;from string import*;a=argv;[s,p,q]=filter(lambda x:x[:1]!= '-',a);d='-d'in a;e,n=atol(p,16),atol(q,16);l=(len(q)+1)/2;o,inb=l-d,l-1+d while s:s=stdin.read(inb);s and map(stdout.write,map(lambda i,b=pow(reduce( lambda x,y:(x<<8L)+y,map(ord,s)),e,n):chr(b>>8*i&255),range(o-1,-1,-1)))

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/faq.html