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}]
add an example, a script, a trick and tips
examples
no example yet ...
... Feel free to add your own example above to help other Linux-lovers !
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 parameters,
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
follows:
-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 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
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
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
{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
{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
{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
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 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
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 current IRQ setting.
availability
The tunelp command is part of the util-linux package and is
available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
files
/dev/lp?
/proc/parport/*/*
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.
bugs
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.