summaryrefslogtreecommitdiff
path: root/sys-utils/tunelp.8
blob: 06abff5d40344f5c0c11635a3a6ebcf57c498b5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
.\" This file Copyright (C) 1992-1997 Michael K. Johnson <johnsonm@redhat.com>
.\" This file Copyright (C) 1998      Andrea Arcangeli   <andrea@e-mind.com>
.\" It may be distributed under the terms of the GNU General Public License,
.\" version 2, or any higher version.  See section COPYING of the GNU General
.\" Public license for conditions under which this file may be redistributed.
.\"
.\" Polished a bit - aeb
.TH tunelp 8 "7 May 1999" "tunelp" "Linux Programmer's Manual"
.SH NAME
tunelp \- set various parameters for the lp device
.SH SYNOPSIS
.B tunelp
.I device
.RB [ \-i
.IR IRQ ]
.RB [ \-t
.IR TIME ]
.RB [ \-c
.IR CHARS ]
.RB [ \-w
.IR WAIT ]
.RB [ \-a
.RB { on | off }]
.RB [ \-o
.RB { on | off }]
.RB [ \-C
.RB { on | off }]
.RB [ \-r ]
.RB [ \-s ]
.RB [ \-q
.RB { on | off }]
.RB [ \-T
.RB { on | off }]
.SH DESCRIPTION
\fBtunelp\fP sets several parameters for the /dev/lp\fI?\fP 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:

.TP
.BI \-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
.B 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
.IR /proc/parport/*/irq .
Read
.I /usr/src/linux/Documentation/parport.txt
for more details on parport.

.TP
.BI \-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.

.TP
.BI \-c " CHARS"
is the number of times to try to output a character to the
printer before sleeping for \-t \fITIME\fP.  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 \fImust\fP
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 \fIreally\fP old printer, you can increase this further.

Setting \-t \fITIME\fP to 0 is equivalent to setting \-c \fICHARS\fP
to infinity.

.TP
.BI \-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.

.TP
.BR \-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.

.TP
.BR \-o " {" on | off }
This option is much like \-a.  It makes any
.I 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.

.TP
.BR \-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.

.TP
.B \-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.

.TP
.BR \-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...

.TP
.B \-r
This option resets the port.  It requires a Linux kernel version of
1.1.80 or later.

.TP
.BR \-q " {" on | off }
This option sets printing the display of the current IRQ setting.


.SH NOTES
.BR \-o ,
.BR \-C ,
and
.B \-s
all require a Linux kernel version of 1.1.76 or later.

.B \-C
requires a Linux version prior to 2.1.131.

.B \-T
requires a Linux version of 2.1.131 or later.

.SH 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.

.SH FILES
.I /dev/lp?
.br
.I /proc/parport/*/*

.SH AVAILABILITY
The tunelp  command is part of the util-linux-ng package and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.