tunelp - set various parameters for the lp device
tunelp [options]
device
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 parameters, it tells whether the device is using
interrupts, and if so, which one. With parameters, it sets the device
characteristics accordingly.
-
-i, --irq argument
- 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 milliseconds
- 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 possible
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.
-
-c, --chars characters
- 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 printers 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 milliseconds
- 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 possible 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, --abort <on|off>
- This is whether to abort on printer error - the default is
not to. If you are sitting at your computer, 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, --check-status <on|off>
- This option is much like -a. It makes any open(2) 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
versions of lpd.
-
-C, --careful <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 reporting any out of paper or other errors
before sending data. This is particularly useful for printers 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, --status
- 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, --trust-irq <on|off>
- This option is obsolete. It was added in Linux 2.1.131, and
removed again in Linux 2.3.10. The below is for these old kernels
only.
- This option tells 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 efficiently) 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 message.
- 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, --reset
- This option resets the port. It requires a Linux kernel
version of 1.1.80 or later.
-
-q, --print-irq <on|off>
- This option sets printing the display of the current IRQ
setting.
-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 introduced 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.
/dev/lp?
/proc/parport/*/*
The tunelp command is part of the util-linux package and is available from
Linux
Kernel Archive