tunelp - set various parameters for the lp device
SYNOPSIS
tunelp <device> [-i <IRQ> | -t <TIME> | -c <CHARS> | -w
<WAIT> | -a [on|off] | -o [on|off] | -C [on|off] | -r | -s
| -q [on|off] | - T [on|off] ]
DESCRIPTION
tunelp sets several parameters for the /dev/lp? devices,
for better performance (or for any performance at all, if
your printer won't work without it...) Without parame
ters, it tells whether the device is using interrupts, and
if so, which one. With parameters, it sets the device
characteristics accordingly. The parameters are as fol
lows:
-i <IRQ>
specifies the IRQ to use for the parallel port in
question. If this is set to something non-zero, -t
and -c have no effect. If your port does not use
interrupts, this option will make printing stop.
The command tunelp -i 0 restores non-interrupt
driven (polling) action, and your printer should
work again. If your parallel port does support
interrupts, interrupt-driven printing should be
somewhat faster and efficient, and will probably be
desirable.
NOTE: This option will have no effect with kernel
2.1.131 or later since the irq is handled by the
parport driver. You can change the parport irq for
example via /proc/parport/*/irq. Read
/usr/src/linux/Documentation/parport.txt for more
details on parport.
-t <TIME>
is the amount of time in jiffies that the driver
waits if the printer doesn't take a character for
the number of tries dictated by the -c parameter.
10 is the default value. If you want fastest pos
sible printing, and don't care about system load,
you may set this to 0. If you don't care how fast
your printer goes, or are printing text on a slow
printer with a buffer, then 500 (5 seconds) should
be fine, and will give you very low system load.
This value generally should be lower for printing
graphics than text, by a factor of approximately
10, for best performance.
is the number of times to try to output a character
to the printer before sleeping for -t <TIME>. It
is the number of times around a loop that tries to
send a character to the printer. 120 appears to be
a good value for most printers in polling mode.
1000 is the default, because there are some print
ers that become jerky otherwise, but you must set
this to `1' to handle the maximal CPU efficiency if
you are using interrupts. If you have a very fast
printer, a value of 10 might make more sense even
if in polling mode. If you have a really old
printer, you can increase this further.
Setting -t <TIME> to 0 is equivalent to setting -c
<CHARS> to infinity.
-w <WAIT>
is the number of usec we wait while playing with
the strobe signal. While most printers appear to
be able to deal with an extremely short strobe,
some printers demand a longer one. Increasing this
from the default 1 may make it possible to print
with those printers. This may also make it possi
ble to use longer cables. It's also possible to
decrease this value to 0 if your printer is fast
enough or your machine is slow enough.
-a [on|off]
This is whether to abort on printer error - the
default is not to. If you are sitting at your com
puter, you probably want to be able to see an error
and fix it, and have the printer go on printing.
On the other hand, if you aren't, you might rather
that your printer spooler find out that the printer
isn't ready, quit trying, and send you mail about
it. The choice is yours.
-o [on|off]
This option is much like -a. It makes any open()
of this device check to see that the device is on-
line and not reporting any out of paper or other
errors. This is the correct setting for most ver
sions of lpd.
-C [on|off]
This option adds extra ("careful") error checking.
When this option is on, the printer driver will
ensure that the printer is on-line and not report
ing any out of paper or other errors before sending
that normally appear to accept data when turned
off.
NOTE: This option is obsolete because it's the
default in 2.1.131 kernel or later.
-s This option returns the current printer status,
both as a decimal number from 0..255, and as a list
of active flags. When this option is specified, -q
off, turning off the display of the current IRQ, is
implied.
-T [on|off]
This option tell the lp driver to trust or not the
IRQ. This option makes sense only if you are using
interrupts. If you tell the lp driver to trust the
irq, then, when the lp driver will get an irq, it
will send the next pending character to the printer
unconditionally, even if the printer still claims
to be BUSY. This is the only way to sleep on
interrupt (and so the handle the irq printing effi
ciently) at least on Epson Stylus Color Printers.
The lp driver automagically detects if you could
get improved performance by setting this flag, and
in such case it will warn you with a kernel mes
sage.
NOTE: Trusting the irq is reported to corrupt the
printing on some hardware, you must try to know if
your printer will work or not...
-r This option resets the port. It requires a Linux
kernel version of 1.1.80 or later.
-q [on|off]
This option sets printing the display of the cur
rent IRQ setting.
NOTES
-o, -C, and -s all require a Linux kernel version of
1.1.76 or later.
-C requires a Linux version prior to 2.1.131.
-T requires a Linux version of 2.1.131 or later.
By some unfortunate coincidence the ioctl LPSTRICT of
2.0.36 has the same number as the ioctl LPTRUSTIRQ intro
duced in 2.1.131. So, use of the -T option on a 2.0.36
kernel with an tunelp compiled under 2.1.131 or later may
have unexpected effects.
FILES
/dev/lp?
/proc/parport/*/*
Man(1) output converted with
man2html