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() 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.

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.

This page is part of the util-linux (a random collection of Linux
utilities) project. Information about the project can be found at
⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩. If you have a
bug report for this manual page, send it to
util-linux@vger.kernel.org. This page was obtained from the
project's upstream Git repository
⟨git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git⟩ on
2016-10-04. If you discover any rendering problems in this HTML ver‐
sion of the page, or you believe there is a better or more up-to-date
source for the page, or you have corrections or improvements to the
information in this COLOPHON (which is not part of the original man‐
ual page), send a mail to man-pages@man7.org
util-linux October 2011 TUNELP(8)