1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
---|
2 | <HTML> |
---|
3 | <HEAD> |
---|
4 | <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> |
---|
5 | <TITLE> LPRng-HOWTO: System Specific Notes</TITLE> |
---|
6 | <LINK HREF="LPRng-HOWTO-6.html" REL=next> |
---|
7 | <LINK HREF="LPRng-HOWTO-4.html" REL=previous> |
---|
8 | <LINK HREF="LPRng-HOWTO.html#toc5" REL=contents> |
---|
9 | </HEAD> |
---|
10 | <BODY> |
---|
11 | <A HREF="LPRng-HOWTO-6.html">Next</A> |
---|
12 | <A HREF="LPRng-HOWTO-4.html">Previous</A> |
---|
13 | <A HREF="LPRng-HOWTO.html#toc5">Contents</A> |
---|
14 | <HR> |
---|
15 | <H2><A NAME="sysdep"></A> <A NAME="s5">5. System Specific Notes</A></H2> |
---|
16 | |
---|
17 | <P>The following are a set of suggestions and recommendations for |
---|
18 | specific systems. |
---|
19 | <H2><A NAME="solarisinstall"></A> <A NAME="ss5.1">5.1 Solaris 2.4, 2.5, 2.6, 2.7</A> |
---|
20 | </H2> |
---|
21 | |
---|
22 | <P>The Sun Solaris operating system is derived from the System V UNIX |
---|
23 | baseline. |
---|
24 | Use the following installation procedure. |
---|
25 | <OL> |
---|
26 | <LI>First, |
---|
27 | install the LPRng software |
---|
28 | and then rename all of the existing Solaris print facilities. |
---|
29 | See the |
---|
30 | <A HREF="LPRng-HOWTO-4.html#installation">Installation</A> section for details. |
---|
31 | You should especially look out for |
---|
32 | <CODE>lp</CODE>, |
---|
33 | <CODE>lpstat</CODE>, |
---|
34 | <CODE>lpsched</CODE>, |
---|
35 | <CODE>lpadmin</CODE>, |
---|
36 | and other executables used by Solaris for print support.</LI> |
---|
37 | <LI>You may need to remove the <CODE>printer</CODE> entry in the |
---|
38 | <CODE>/etc/inetd.conf</CODE> file. |
---|
39 | Make sure it is removed.</LI> |
---|
40 | <LI><EM>Reboot</EM>. |
---|
41 | Don't try to be fancy and kill off processes, |
---|
42 | use the <EM>nlsadmin</EM> command, |
---|
43 | or other insanity. |
---|
44 | This is brutal, but appears to be necessary in order to ensure |
---|
45 | that the networking support is set up correctly.</LI> |
---|
46 | <LI>When the system restarts, try using <CODE>lpq</CODE> |
---|
47 | to check to see if the <CODE>lpd</CODE> server is active.</LI> |
---|
48 | </OL> |
---|
49 | <P>James P. Dugal <CODE><jpd@usl.ed></CODE> has also made the following |
---|
50 | suggestions as well. |
---|
51 | <BLOCKQUOTE><CODE> |
---|
52 | <PRE> |
---|
53 | From: "Dugal James P." <jpd@usl.edu> |
---|
54 | To: lprng@iona.com |
---|
55 | Subject: Re: [LPRng] start up trouble |
---|
56 | |
---|
57 | Here are some more tips for Solaris: |
---|
58 | |
---|
59 | 1. If /var/spool/cron/crontabs/lp exists, remove it. |
---|
60 | |
---|
61 | In fact, we actually test if /etc/init.d/lp exists on any newly-installed |
---|
62 | system, and if so, we issue these commands: |
---|
63 | /etc/init.d/lp stop |
---|
64 | /usr/sbin/pkgrm -n SUNWpsu |
---|
65 | /usr/sbin/pkgrm -n SUNWscplp |
---|
66 | /usr/sbin/pkgrm -n SUNWpcu |
---|
67 | /usr/sbin/pkgrm -n SUNWpsr |
---|
68 | /usr/sbin/pkgrm -n SUNWpcr |
---|
69 | /bin/rm -f /var/spool/cron/crontabs/lp |
---|
70 | |
---|
71 | Regards, |
---|
72 | -- James Dugal, N5KNX Internet: jpd@usl.edu |
---|
73 | Associate Director Ham packet: n5knx@k5arh.#lft.la.usa.noam |
---|
74 | Computing Support Services US Mail: PO Box 42770 Lafayette, LA 70504 |
---|
75 | University of Southwestern LA. Tel. 318-482-6417 U.S.A. |
---|
76 | </PRE> |
---|
77 | </CODE></BLOCKQUOTE> |
---|
78 | <P> |
---|
79 | <H2><A NAME="ss5.2">5.2 Solaris, Newsprint and FrameMaker</A> |
---|
80 | </H2> |
---|
81 | |
---|
82 | <P>The following is a guide to using LPRng and |
---|
83 | Sun Microsystems Newsprint by |
---|
84 | Christopher Hylands, Ptolemy Project Manager |
---|
85 | of the University of California. |
---|
86 | <P>The Sun Newsprint printer is actually |
---|
87 | an OEM version of the Tektronix PhaserII; |
---|
88 | Sun Microsystems appears to have dropped support for Newsprint, |
---|
89 | and the recommended migration path is to buy a PostScript printer. |
---|
90 | If you want more information on using the Newsprint system, |
---|
91 | notes are available via |
---|
92 | <CODE>http://ptolemy.eecs.berkeley.edu/~cxh/lprng.html</CODE>. |
---|
93 | <P>Looking through the mailing list logs, it looks like everyone was |
---|
94 | having a hard time getting lprng to work with Sun's brain-dead |
---|
95 | newsprinters. I tried using GhostScript, but the fonts were, IMHO, |
---|
96 | ugly, so I spent a little time getting the newsprint fonts to work. |
---|
97 | <P>The key thing was to grab the file |
---|
98 | <CODE>/usr/newsprint/lpd/if</CODE> |
---|
99 | from a SunOS4.1.3 newsprint installation. |
---|
100 | If you cannot get this code, |
---|
101 | then the installation will be extremely difficult. |
---|
102 | <P>To install lprng on a Solaris2.x machine, |
---|
103 | you need to first stop the existing print services and install the |
---|
104 | startup scripts for LPRng. |
---|
105 | Note that if there is a local printer, you may have |
---|
106 | to also fix the permissions of the device. Typical commands are: |
---|
107 | <BLOCKQUOTE><CODE> |
---|
108 | <PRE> |
---|
109 | chown daemon /devices/sbus@1,f8000000/SUNW,lpvi@1,300000:lpvi0 |
---|
110 | </PRE> |
---|
111 | </CODE></BLOCKQUOTE> |
---|
112 | <P>We use the following simple <CODE>if</CODE> script. |
---|
113 | <BLOCKQUOTE><CODE> |
---|
114 | <PRE> |
---|
115 | #/bin/sh |
---|
116 | # extremely simple filter script |
---|
117 | /bin/cat |
---|
118 | </PRE> |
---|
119 | </CODE></BLOCKQUOTE> |
---|
120 | <P>The Sparcprinters use licensed fonts from NeWSprint. To use the |
---|
121 | licensed fonts, you must have the lprng spool directory for the |
---|
122 | sparcprinter in the same location as spool directory of the brain |
---|
123 | dead Solaris lp system. If your printer is named xsp524, then this |
---|
124 | directory would be <CODE> /etc/lp/printers/xsp524</CODE>. |
---|
125 | <P>The printcap entry looks like: |
---|
126 | <BLOCKQUOTE><CODE> |
---|
127 | <PRE> |
---|
128 | sp524|524: |
---|
129 | :mx=0:sf:sh:sb: |
---|
130 | :lp=:rm=doppler:rp=xsp524: |
---|
131 | :sd=/var/spool/lpd/sp524d: |
---|
132 | :lf=/var/spool/lpd/sp524d/log: |
---|
133 | xsp524|Sun SPARCprinter NeWSprint printer: |
---|
134 | :mx=0:sf:sb:sh:rs: |
---|
135 | :lp=/dev/lpvi0: |
---|
136 | :sd=/etc/lp/printers/xsp524: |
---|
137 | :lf=/etc/lp/printers/xsp524/log: |
---|
138 | :af=/var/spool/lpd/xsp524/acct: |
---|
139 | :if=/usr/local/libexec/newsprint/if: |
---|
140 | </PRE> |
---|
141 | </CODE></BLOCKQUOTE> |
---|
142 | <P>The |
---|
143 | <CODE>/usr/local/libexec/newsprint/if</CODE> |
---|
144 | was copied from |
---|
145 | <CODE>/usr/newsprint/lpd/if</CODE> |
---|
146 | in a SunOS4.x installation of the newsprint |
---|
147 | software. |
---|
148 | Unfortunately, the newsprint engine is so brain dead that it |
---|
149 | needs many environment variables set, so it is fairly difficult to |
---|
150 | come up with a clean script to start the engine. I made the following |
---|
151 | changes to the file. |
---|
152 | <OL> |
---|
153 | <LI>First, set the path in the script. |
---|
154 | You may also need to change defaults to suit your preferences: |
---|
155 | <BLOCKQUOTE><CODE> |
---|
156 | <PRE> |
---|
157 | PATH=/usr/ucb:/usr/bin:/etc:/usr/etc:/opt/NeWSprint/bin:/opt/NeWSprint/np/bin: |
---|
158 | PATH=$PATH:$NPHOME/pl.$ARCH/bin:$NPHOME/np/bin; export PATH |
---|
159 | </PRE> |
---|
160 | </CODE></BLOCKQUOTE> |
---|
161 | </LI> |
---|
162 | <LI>You will also need a |
---|
163 | <CODE>/etc/lp/printers/printername/.params</CODE> |
---|
164 | file. If you |
---|
165 | are using the same spooler directory as the directory that the Solaris |
---|
166 | lp system uses, then the .param file should appear there. If you are |
---|
167 | using a different spooler directory, then you will need to copy |
---|
168 | the .param file from elsewhere and edit it accordingly.</LI> |
---|
169 | <LI>If you are going to move a license to a new printer, you should |
---|
170 | probably save the .param file in the old printer spooler directory. |
---|
171 | Run /opt/NeWSprint/bin/fp_install and remove the license from the |
---|
172 | old printer and assign it to the new printer. |
---|
173 | You could run /opt/NeWSprint/bin/rm_np_printer and remove the printer, |
---|
174 | but that will get rid of the .param file</LI> |
---|
175 | <LI>FrameMaker under Solaris2.x uses the lp command. The fix is to edit |
---|
176 | $FMHOME/fminit/FMlpr and comment out the lp line and add an lpr line |
---|
177 | <BLOCKQUOTE><CODE> |
---|
178 | <PRE> |
---|
179 | sunxm.s5.sparc) |
---|
180 | lpr -P"$PRINTER" "$FILE" |
---|
181 | #lp -c -d"$PRINTER" "$FILE" |
---|
182 | </PRE> |
---|
183 | </CODE></BLOCKQUOTE> |
---|
184 | </LI> |
---|
185 | </OL> |
---|
186 | |
---|
187 | <BLOCKQUOTE><CODE> |
---|
188 | <PRE> |
---|
189 | Christopher Hylands, Ptolemy Project Manager University of California |
---|
190 | cxh@eecs.berkeley.edu US Mail: 558 Cory Hall #1770 |
---|
191 | ph: (510)643-9841 fax:(510)642-2739 Berkeley, CA 94720-1770 |
---|
192 | home: (510)526-4010 (if busy -4068) (Office: 493 Cory) |
---|
193 | </PRE> |
---|
194 | </CODE></BLOCKQUOTE> |
---|
195 | <H2><A NAME="ss5.3">5.3 Linux</A> |
---|
196 | </H2> |
---|
197 | |
---|
198 | <P>At the time of this writing (Jan 1998), |
---|
199 | the three major Linux |
---|
200 | distributions (Slackware, Red Hat and Debian) carry an older version |
---|
201 | of LPRng. Users of those systems should download the |
---|
202 | latest stable release, and install that instead of the distributed |
---|
203 | binaries. |
---|
204 | <P>This is mostly important for Slackware 3.2 users, as this version |
---|
205 | installs LPRng by default. |
---|
206 | Patrick Volkerding changed the default back to |
---|
207 | BSD LPR in Slackware 3.3, |
---|
208 | as many users had experienced problems |
---|
209 | because they didn't realize they weren't using the BSD software. |
---|
210 | <P>Debian's <CODE>dselect</CODE> utility lets you choose between all |
---|
211 | packages. Amongst these are LPRng, as well as the traditional LPR |
---|
212 | software. |
---|
213 | <P>You have to make sure your kernel is configured correctly. The |
---|
214 | documentation for the kernel sources in |
---|
215 | <CODE>/usr/src/linux/Documentation/</CODE> and the <CODE>Kernel-HOWTO</CODE> |
---|
216 | will help you to generate a new kernel if needed. You will need to set |
---|
217 | the following options: |
---|
218 | <UL> |
---|
219 | <LI>Networking support (<CODE>CONFIG_NET</CODE>)</LI> |
---|
220 | <LI>TCP/IP support (<CODE>CONFIG_INET</CODE>)</LI> |
---|
221 | <LI>If your printer is connected to a parallel port, you will also |
---|
222 | need the `Parallel Printer Support' (<CODE>CONFIG_PRINTER</CODE>). |
---|
223 | You can use this as a module if you want.</LI> |
---|
224 | <LI>For a serial printer, answer `Yes' when asked if you want |
---|
225 | `Support for serial devices' (<CODE>CONFIG_SERIAL</CODE>). This is |
---|
226 | also available as a module.</LI> |
---|
227 | </UL> |
---|
228 | <P>Once you have done this, |
---|
229 | the current releases of LPRng will install and run without |
---|
230 | problems. |
---|
231 | See the |
---|
232 | <A HREF="LPRng-HOWTO-4.html#installingprograms">Installing the programs</A> |
---|
233 | section for details on how to install LPRng and |
---|
234 | deactivate the existing print support. |
---|
235 | <P>You may need to update the printcap file and filters. |
---|
236 | See |
---|
237 | <A HREF="LPRng-HOWTO-8.html#printcapref">Using the Printcap Database</A> |
---|
238 | for details. |
---|
239 | <H2><A NAME="ss5.4">5.4 AIX</A> |
---|
240 | </H2> |
---|
241 | |
---|
242 | <P>This information was supplied by |
---|
243 | <A HREF="mailto:nitschke@math.unihamburg.de">Dirk Nitschke</A>, |
---|
244 | as of August 1997, |
---|
245 | and describes how to install the LPRng package on a workstation |
---|
246 | running AIX 4.1.x and possibly 3.x.x as well. |
---|
247 | Dirk would be interested in any comments or corrections. |
---|
248 | <P>Printing on AIX systems is different. AIX provides a general |
---|
249 | queueing facility and printing is only one way to use it. You submit a |
---|
250 | print job to a print queue using one of the commands |
---|
251 | <CODE>qprt</CODE>, <CODE>enq</CODE>. You can use the BSD or |
---|
252 | System V printing commands <CODE>lpr</CODE> or <CODE>lp</CODE>, too. The |
---|
253 | qdaemon watches all (general) queues and knows how to handle your |
---|
254 | job. A (general) queue is defined in the file |
---|
255 | <CODE>/etc/qconfig</CODE>. The format of this file is different from |
---|
256 | the <CODE>printcap</CODE> format. |
---|
257 | <P>OK, how to replace the AIX printing system? There is no group |
---|
258 | <CODE>daemon</CODE> on AIX. Therefore you have to change the default |
---|
259 | group for file ownership and process permissions. We decided to use |
---|
260 | the <CODE>printq</CODE> group. The user <CODE>daemon</CODE> exists on |
---|
261 | AIX but we have chosen <CODE>lpd</CODE> as the user who runs |
---|
262 | <CODE>lpd</CODE> and all filters and owns the spooling directories. |
---|
263 | You can change the values for <CODE>group</CODE> |
---|
264 | and <CODE>user</CODE> in your |
---|
265 | <CODE>lpd.conf</CODE> file or in the sources |
---|
266 | <CODE>src/common/vars.c</CODE>. This is an example for |
---|
267 | <CODE>lpd.conf</CODE>: |
---|
268 | <BLOCKQUOTE><CODE> |
---|
269 | <PRE> |
---|
270 | # Purpose: group to run SUID ROOT programs |
---|
271 | # default group=daemon |
---|
272 | group=printq |
---|
273 | # Purpose: server user for SUID purposes |
---|
274 | # default user=daemon |
---|
275 | user=lpd |
---|
276 | </PRE> |
---|
277 | </CODE></BLOCKQUOTE> |
---|
278 | |
---|
279 | Compile and install the LPRng package. Create your |
---|
280 | <CODE>printcap</CODE>, spooling directories, accounting and logfiles |
---|
281 | and so on. |
---|
282 | Don't forget to use |
---|
283 | <A HREF="LPRng-HOWTO-9.html#checkpc">checkpc</A> to make sure that all the |
---|
284 | permissions are set correctly and the necessary files |
---|
285 | are created. |
---|
286 | <P>Then stop all print queues defined on your workstation. Use |
---|
287 | <BLOCKQUOTE><CODE> |
---|
288 | <PRE> |
---|
289 | # chque -q queuename -a "up = FALSE" |
---|
290 | </PRE> |
---|
291 | </CODE></BLOCKQUOTE> |
---|
292 | |
---|
293 | for this (yes, blanks around <CODE>=</CODE> are needed). |
---|
294 | <P>If you have local printers attached to your system you will have an |
---|
295 | <CODE>lpd</CODE> running. Stop this daemon using SMIT (Print Spooling, |
---|
296 | Manage Print Server, Stop the Print Server Subsystem). Choosing |
---|
297 | <CODE>both</CODE> also removes <CODE>lpd</CODE> from |
---|
298 | <CODE>/etc/inittab</CODE>. Maybe it's faster to do this by hand: |
---|
299 | <BLOCKQUOTE><CODE> |
---|
300 | <PRE> |
---|
301 | # stopsrc -p'pid of /usr/sbin/lpd' |
---|
302 | # rmitab "lpd" |
---|
303 | </PRE> |
---|
304 | </CODE></BLOCKQUOTE> |
---|
305 | <P>Now delete all print queues (managed by qdaemon) defined on your |
---|
306 | system. You can use SMIT for this or the commands |
---|
307 | <CODE>{mk,ch,rm}que</CODE>, <CODE>{mk,ch,rm}quedev</CODE>, |
---|
308 | <CODE>{mk,ch,rm}virprt</CODE>. The SMIT fast path is <CODE>smit |
---|
309 | rmpq</CODE>. |
---|
310 | <P>To start the new <CODE>lpd</CODE> at system startup you have to add |
---|
311 | an entry to <CODE>/etc/inittab</CODE>: |
---|
312 | <BLOCKQUOTE><CODE> |
---|
313 | <PRE> |
---|
314 | # mkitab "lpd:2:once:/full/path/lpd" |
---|
315 | </PRE> |
---|
316 | </CODE></BLOCKQUOTE> |
---|
317 | <P>Some work has to be done if have have a local printer attached to |
---|
318 | your workstation. You have to create a device file like |
---|
319 | <CODE>/dev/lp0</CODE>. The SMIT fast path for this is <CODE>smit |
---|
320 | mkdev</CODE>. Choose <CODE>Printer/Plotter</CODE> and then |
---|
321 | <CODE>Printer/Plotter Devices</CODE>. Now <CODE>Add a |
---|
322 | Printer/Plotter</CODE>. To create a parallel |
---|
323 | printer device select the following: |
---|
324 | <BLOCKQUOTE><CODE> |
---|
325 | <PRE> |
---|
326 | Plotter type: opp Other parallel printer |
---|
327 | Printer/Plotter Interface: parallel |
---|
328 | Parent Adapter: ppa0 Available |
---|
329 | </PRE> |
---|
330 | </CODE></BLOCKQUOTE> |
---|
331 | |
---|
332 | Now define the characteristics of the device: |
---|
333 | <BLOCKQUOTE><CODE> |
---|
334 | <PRE> |
---|
335 | Port Number: p |
---|
336 | </PRE> |
---|
337 | </CODE></BLOCKQUOTE> |
---|
338 | |
---|
339 | (<CODE>p</CODE> is for parallel). |
---|
340 | Go to the field |
---|
341 | <BLOCKQUOTE><CODE> |
---|
342 | <PRE> |
---|
343 | Send all characters to printer UNMODIFIED no |
---|
344 | </PRE> |
---|
345 | </CODE></BLOCKQUOTE> |
---|
346 | |
---|
347 | and select <CODE>yes</CODE>! We have had a lot of trouble with |
---|
348 | <CODE>no</CODE>. This is very important! Expect erroneous output if |
---|
349 | you choose <CODE>no</CODE>. If you have already created a device |
---|
350 | file, change the characteristics! SMIT's fast path is <CODE>smit |
---|
351 | chdev</CODE>. |
---|
352 | <P>Finally remove all AIX printing commands like <CODE>qprt</CODE>, |
---|
353 | <CODE>lp</CODE>, <CODE>cancel</CODE>, <CODE>lpr</CODE>, |
---|
354 | <CODE>lprm</CODE>. You will find a lot of them in |
---|
355 | <CODE>/usr/bin</CODE>. Do not remove <CODE>enq</CODE> and friends if |
---|
356 | you want to use the general queueing facility. |
---|
357 | <P>Now you can start your new <CODE>lpd</CODE>. |
---|
358 | <H2><A NAME="ss5.5">5.5 AppleTalk Support</A> |
---|
359 | </H2> |
---|
360 | |
---|
361 | <P>Netatalk is used to communicate from TCP/IP to |
---|
362 | AppleTalk printers and vice versa. |
---|
363 | The Netatalk distribution FAQ is at: |
---|
364 | <P> |
---|
365 | <A HREF="http://www.umich.edu/~rsug/netatalk">http://www.umich.edu/~rsug/netatalk</A><P>There are two issues with using netatalk. The first issue |
---|
366 | has to do with printing to LPRng-served printers from Macs. |
---|
367 | The second issue has to do with printing from LPRng to |
---|
368 | network printers that speak AppleTalk. |
---|
369 | <P>And alternative version of AppleTalk support is available from |
---|
370 | <P> |
---|
371 | <A HREF="ftp://ftp.u.washington.edu/pub/user-supported/asun">ftp://ftp.u.washington.edu/pub/user-supported/asun</A><P> |
---|
372 | <H2><A NAME="ss5.6">5.6 Apple to LPRng Printing</A> |
---|
373 | </H2> |
---|
374 | |
---|
375 | <P>After you have installed and gotten netatalk working, |
---|
376 | you can use the following configuration file to print |
---|
377 | from a Macintosh to an LPRng printer. |
---|
378 | <BLOCKQUOTE><CODE> |
---|
379 | <PRE> |
---|
380 | Date: Tue, 30 Sep 1997 00:04:58 -0400 (EDT) |
---|
381 | From: Edan Idzerda <edan@mtu.edu> |
---|
382 | To: lprng@iona.com |
---|
383 | Subject: Re: [LPRng] Netatalk configuration file |
---|
384 | > Somebody posted a very nice Netatalk papd.conf file |
---|
385 | > that showed the setup for LPRng. If anybody has this |
---|
386 | > handy could you post it? |
---|
387 | Well, *I* use: |
---|
388 | Your 32 Character Printer Name:\ |
---|
389 | :pr=|/your/path/to/lpr -Pprintername |
---|
390 | :ppd=/your/path/to/ppd/files/yourprinter.ppd |
---|
391 | -- |
---|
392 | Edan Idzerda <edan@mtu.edu> |
---|
393 | System Administrator -- Michigan Technological University, Houghton MI USA |
---|
394 | </PRE> |
---|
395 | </CODE></BLOCKQUOTE> |
---|
396 | <H2><A NAME="ss5.7">5.7 LPRng to AppleTalk Printing</A> |
---|
397 | </H2> |
---|
398 | |
---|
399 | <P>The netatalk package comes with a PostScript filter called <CODE>psf</CODE>. After |
---|
400 | compilation, it is in (e.g.) <CODE>netatalk-1.4b2/etc/psf</CODE> and will be installed |
---|
401 | in (e.g.) <CODE>/usr/local/atalk/etc/</CODE>. After installation, there will also |
---|
402 | be a directory <CODE>/usr/local/atalk/etc/filters</CODE> that contains |
---|
403 | <CODE>ifpap</CODE>, <CODE>ofpap</CODE>, |
---|
404 | et al. These are just symlinks to <CODE>psf</CODE>, and <CODE>psf</CODE> will do the appropriate |
---|
405 | thing based on how it was invoked. If there's a 'pap' in the name, |
---|
406 | <CODE>psf</CODE> uses AppleTalk to talk to the printer. See psf(8) for more information. |
---|
407 | <P>A printcap entry for a network printer looks like the following: |
---|
408 | <BLOCKQUOTE><CODE> |
---|
409 | <PRE> |
---|
410 | dave|Dave's 32 Character Printer Name |
---|
411 | :sd=/var/spool/lpd/dave |
---|
412 | :if=/usr/local/atalk/etc/filters/ifpap |
---|
413 | :of=/usr/local/atalk/etc/filters/ofpap |
---|
414 | :lp=/var/spool/lpd/dave/null |
---|
415 | </PRE> |
---|
416 | </CODE></BLOCKQUOTE> |
---|
417 | <P>There are three caveats to using netatalk this way. |
---|
418 | <OL> |
---|
419 | <LI>The first is that |
---|
420 | <CODE>psf</CODE> (i.e., the filters) needs to run as root. You can accomplish this |
---|
421 | in one of two ways. The first requires LPD to run the programs as root: |
---|
422 | <BLOCKQUOTE><CODE> |
---|
423 | <PRE> |
---|
424 | # ROOT_CFLAG=-DROOT_PERMS_TO_FILTER_SECURITY_LOOPHOLE |
---|
425 | </PRE> |
---|
426 | </CODE></BLOCKQUOTE> |
---|
427 | |
---|
428 | <P>The filter lines then need to look like the following: |
---|
429 | <BLOCKQUOTE><CODE> |
---|
430 | <PRE> |
---|
431 | :if=ROOT /usr/local/atalk/etc/filters/ifpap |
---|
432 | :of=ROOT /usr/local/atalk/etc/filters/ofpap |
---|
433 | </PRE> |
---|
434 | </CODE></BLOCKQUOTE> |
---|
435 | <P>The alternative is to make <CODE>psf</CODE> SETUID root. |
---|
436 | To minimize the risk, |
---|
437 | you may want to make <CODE>psf</CODE> executable only by group <CODE>daemon</CODE>. |
---|
438 | (I haven't tested the first option. I'm currently using the second option.) |
---|
439 | <P> |
---|
440 | </LI> |
---|
441 | <LI>The second caveat is that each network printer needs a <CODE>.paprc</CODE> in its |
---|
442 | spool directory. For instance, <CODE>/var/spool/dave/.paprc</CODE> looks like this: |
---|
443 | <BLOCKQUOTE><CODE> |
---|
444 | <PRE> |
---|
445 | Dave's 32 Character Printer Name:LaserWriter@Your AppleTalk Zone |
---|
446 | </PRE> |
---|
447 | </CODE></BLOCKQUOTE> |
---|
448 | |
---|
449 | <P>See psf(8) and pap(1) for more information. |
---|
450 | <P> |
---|
451 | </LI> |
---|
452 | <LI>The third caveat concerns the lp line in the printcap entry. For a |
---|
453 | single printer, this can be <CODE>/dev/null</CODE>. If the host spools to more |
---|
454 | than one AppleTalk printer, you shouldn't use <CODE>/dev/null</CODE> for lp. You |
---|
455 | should use <CODE>mknod</CODE> to create a null device for each printer. See psf(8).</LI> |
---|
456 | </OL> |
---|
457 | |
---|
458 | <BLOCKQUOTE><CODE> |
---|
459 | <PRE> |
---|
460 | Chad Mynhier <mynhier@cs.utk.edu> |
---|
461 | Lab Engineer, CS Department |
---|
462 | University of Tennessee, Knoxville |
---|
463 | </PRE> |
---|
464 | </CODE></BLOCKQUOTE> |
---|
465 | <H2><A NAME="smb"></A> <A NAME="ss5.8">5.8 SAMBA, SMB and LPRng</A> |
---|
466 | </H2> |
---|
467 | |
---|
468 | <P>SMB is the protocol by which a lot of |
---|
469 | PC-related machines share files and printers and other information |
---|
470 | such as lists of available files and printers. Operating systems that |
---|
471 | support this natively include Windows NT, OS/2, and Linux and add on |
---|
472 | packages that achieve the same thing are available for DOS, Windows, |
---|
473 | VMS, Unix of all kinds, MVS, and more. There is no reason why Apple |
---|
474 | Macs and indeed any Web browser should not be able to speak this |
---|
475 | protocol, and current development (in which the Samba team is heavily |
---|
476 | involved) is aimed at exactly that. Alternatives to SMB include |
---|
477 | Netware, NFS, AppleTalk, Banyan Vines, Decnet etc; many of these have |
---|
478 | advantages but none are both public specifications and widely |
---|
479 | implemented in desktop machines by default. |
---|
480 | <P>SAMBA is a package that supports the SMB protocol and provides |
---|
481 | a simple and easy way to import and export file systems and printer |
---|
482 | facilities. |
---|
483 | The web site for SAMBA is |
---|
484 | <A HREF="http://www.samba.org">http://www.samba.org</A>. |
---|
485 | <P>The SAMBA code is very easy to configure. See the SAMBA |
---|
486 | <CODE>doc/text/Printing.txt</CODE> and related documentation for details. |
---|
487 | In the |
---|
488 | <CODE>samba.conf</CODE> file |
---|
489 | <CODE>[global]</CODE> section you specify the |
---|
490 | <CODE>print</CODE>, <CODE>lpq</CODE>, and <CODE>lprm</CODE> commands to be used, |
---|
491 | and in the <CODE>[printing]</CODE> section the location |
---|
492 | of a temporary directory to hold print jobs when they are submitted. |
---|
493 | <BLOCKQUOTE><CODE> |
---|
494 | <PRE> |
---|
495 | [printers] |
---|
496 | path = /tmp |
---|
497 | guest ok = no |
---|
498 | print ok = yes |
---|
499 | printing = lprng |
---|
500 | load printers = yes |
---|
501 | printcap name = /etc/printcap |
---|
502 | print command = /usr/local/bin/lpr -P%p -r %s |
---|
503 | lpq command = /usr/local/bin/lpq -P%p |
---|
504 | lprm command = /usr/local/bin/lprm -P%p %j |
---|
505 | lppause command = lpc hold %p %j |
---|
506 | lpresume command = lpc release %p %j |
---|
507 | queuepause command = lpc -P%p stop |
---|
508 | queueresume command = lpc -P%p start |
---|
509 | # |
---|
510 | # alternative to allow userid to be specified as well |
---|
511 | # |
---|
512 | # You will have to add the samba UID to the 'allow_user_setting' |
---|
513 | # option in the /etc/lpd.conf file. |
---|
514 | # WARNING: the %U is the name the user requests. If you have |
---|
515 | # 'guest' printer use, then you should be aware that this |
---|
516 | # will allow anybody to impersonate a another user, and they will |
---|
517 | # be able to execute the various LPRng commands as that user. |
---|
518 | # |
---|
519 | # print command = /usr/local/bin/lpr -U%U -P%p -r %s |
---|
520 | # lprm command = /usr/local/bin/lprm -P%p -U%U %j |
---|
521 | # lppause command = lpc -U%U hold %p %j |
---|
522 | # lpresume command = lpc -U%U release %p %j |
---|
523 | # queuepause command = lpc -U%U -P%p stop |
---|
524 | # queueresume command = lpc -U%U -P%p start |
---|
525 | </PRE> |
---|
526 | </CODE></BLOCKQUOTE> |
---|
527 | <P>The path= value specifies a directory where |
---|
528 | the print files are temporarily stored. This must NOT |
---|
529 | be an LPRng printer spool directory, but some other directory that |
---|
530 | Samba has write permissions for. |
---|
531 | <P>If you plan to use SAMBA and LPRng, |
---|
532 | then you should use the old BSD format for the printcap files, |
---|
533 | i.e.- using the <CODE>\</CODE> line continuation indicator. |
---|
534 | <H2><A NAME="ss5.9">5.9 Printing to a NetBEUI Printer</A> |
---|
535 | </H2> |
---|
536 | |
---|
537 | <P>You can use the SAMBA smprint script to |
---|
538 | send a print job to an SMB client. |
---|
539 | <BLOCKQUOTE><CODE> |
---|
540 | <PRE> |
---|
541 | #!/bin/sh -x |
---|
542 | # This script is an input filter for printcap printing on a unix machine. It |
---|
543 | # uses the smbclient program to print the file to the specified smb-based |
---|
544 | # server and service. |
---|
545 | # For example you could have a printcap entry like this |
---|
546 | # |
---|
547 | # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint |
---|
548 | # |
---|
549 | # which would create a unix printer called "smb" that will print via this |
---|
550 | # script. You will need to create the spool directory /usr/spool/smb with |
---|
551 | # appropriate permissions and ownerships for your system. |
---|
552 | # |
---|
553 | # The /usr/spool/smb/.config file should contain: |
---|
554 | # server=PC_SERVER |
---|
555 | # service=PR_SHARENAME |
---|
556 | # password="password" |
---|
557 | # |
---|
558 | # Set these to the server and service you wish to print to |
---|
559 | # In this example I have a WfWg PC called "lapland" that has a printer |
---|
560 | # exported called "printer" with no password. |
---|
561 | # |
---|
562 | # E.g. |
---|
563 | # server=PAULS_PC |
---|
564 | # service=CJET_371 |
---|
565 | # password="" |
---|
566 | # Should read the following variables set in the config file: |
---|
567 | # server, service, password |
---|
568 | config_file=.config |
---|
569 | eval `/bin/cat $config_file` |
---|
570 | # echo "server $server, service $service" 1>&2 |
---|
571 | # NOTE You may wish to add the line `echo translate' if you want automatic |
---|
572 | # CR/LF translation when printing. |
---|
573 | ( |
---|
574 | # echo translate |
---|
575 | echo "print -" |
---|
576 | /bin/cat |
---|
577 | ) | /usr/local/bin/smbclient "\\\\$server\\$service" \ |
---|
578 | "$password" -U "$server" -N -P 1>&2 |
---|
579 | </PRE> |
---|
580 | </CODE></BLOCKQUOTE> |
---|
581 | <P>If the above script was in <CODE>/usr/local/libexec/filters/smbprint</CODE>, |
---|
582 | the printcap entry for this printer would be: |
---|
583 | <BLOCKQUOTE><CODE> |
---|
584 | <PRE> |
---|
585 | pauls_pc: |
---|
586 | :sd=/var/spool/lpd/%P |
---|
587 | # we filter the output |
---|
588 | :lp=|/usr/local/libexec/filters/smbprint |
---|
589 | # you can add filters if you want to do specific actions |
---|
590 | :ifhp=model=hp4 |
---|
591 | if=/usr/local/libexec/filters/ifhp |
---|
592 | </PRE> |
---|
593 | </CODE></BLOCKQUOTE> |
---|
594 | <H2><A NAME="printspec"></A> <A NAME="ss5.10">5.10 Printer Specific notes</A> |
---|
595 | </H2> |
---|
596 | |
---|
597 | <P>This is a small collection of miscellaneous notes about printers |
---|
598 | and applications. |
---|
599 | <H2><A NAME="ss5.11">5.11 HP Deskjet</A> |
---|
600 | </H2> |
---|
601 | |
---|
602 | <P> |
---|
603 | <BLOCKQUOTE><CODE> |
---|
604 | <PRE> |
---|
605 | From: jarausch@igpm.rwth-aachen.de (Helmut Jarausch) |
---|
606 | Subject: Re: Using gs (GhostScript) as a filter? |
---|
607 | To: lprng@iona.com |
---|
608 | Cc: Rick Gaine <rgaine@nbcs.rutgers.edu> |
---|
609 | Sender: majordomo-owner@iona.com |
---|
610 | Reply-To: lprng@iona.com |
---|
611 | >> |
---|
612 | >> Hello All: |
---|
613 | >> |
---|
614 | >> I would like to use LPRng 3.1.4 with an HP LaserJet 4P. I'd like to be |
---|
615 | >> able to use gs to convert PostScript files so that I can print them on my |
---|
616 | >> HP 4P. Can I do this with LPRng? If so, could someone send me a printcap |
---|
617 | >> entry? I'd appreciate it. I am not sure how I will be connecting the |
---|
618 | >> printer yet, but I am thinking either serial or network. Probably serial |
---|
619 | >> though. Thanks for any help. |
---|
620 | </PRE> |
---|
621 | </CODE></BLOCKQUOTE> |
---|
622 | <P>This printcap works for my Deskjet: |
---|
623 | <BLOCKQUOTE><CODE> |
---|
624 | <PRE> |
---|
625 | djps |
---|
626 | :cm=Local Deskjet(GhostScript) |
---|
627 | :sd=/var/spool/djps:sf:sh:mx=0 |
---|
628 | :lp=/dev/plp |
---|
629 | :if=/usr/local/bin/LPRng/ps_to_deskjet: |
---|
630 | </PRE> |
---|
631 | </CODE></BLOCKQUOTE> |
---|
632 | <P>and this is the script /usr/local/bin/LPRng/ps_to_deskjet |
---|
633 | <BLOCKQUOTE><CODE> |
---|
634 | <PRE> |
---|
635 | #!/bin/sh |
---|
636 | nice -19 /usr/local/bin/gs -sDEVICE=cdj550 -sPAPERSIZE=a4 \ |
---|
637 | -sOutputFile=- -q -r300 - |
---|
638 | </PRE> |
---|
639 | </CODE></BLOCKQUOTE> |
---|
640 | |
---|
641 | <BLOCKQUOTE><CODE> |
---|
642 | <PRE> |
---|
643 | Helmut Jarausch |
---|
644 | Lehrstuhl f. Numerische Mathematik |
---|
645 | Institute of Technology |
---|
646 | RWTH Aachen |
---|
647 | D 52056 Aachen, Germany |
---|
648 | </PRE> |
---|
649 | </CODE></BLOCKQUOTE> |
---|
650 | <H2><A NAME="ss5.12">5.12 HP LaserJet IIISiMX</A> |
---|
651 | </H2> |
---|
652 | |
---|
653 | <P> |
---|
654 | <BLOCKQUOTE><CODE> |
---|
655 | <PRE> |
---|
656 | > From majordomo-owner@iona.com Mon Aug 31 11:17:26 1998 |
---|
657 | > To: lprng@lprng.org |
---|
658 | > Subject: [LPRng] problems printing PS-level2 jobs on LjIIsi's... |
---|
659 | > Date: Mon, 31 Aug 1998 15:06:22 -0400 |
---|
660 | > From: "John Saroglou" <johny@yorku.ca> |
---|
661 | > |
---|
662 | > Greetings... |
---|
663 | > |
---|
664 | > I'm wondering if someone got around the problem of printing |
---|
665 | > Postscript(R) Level 2 jobs on Laser Jet IIIsi printers. |
---|
666 | > Our printers are direct network printers talking to a |
---|
667 | > print server running solaris 2.6 and lprng-3.5.1. |
---|
668 | > |
---|
669 | > Is there a fix (possible drivers?) for such problem? |
---|
670 | > |
---|
671 | > Thanks in advance. |
---|
672 | </PRE> |
---|
673 | </CODE></BLOCKQUOTE> |
---|
674 | <P>The LaserJet IIISi does not support PostScript level 2, only level 1 |
---|
675 | (really, it is called 3SiMX). |
---|
676 | The Windows (you are under Windows, right?) HP driver for 3Si/3Si MX |
---|
677 | PostScript should produce only PS level 1. |
---|
678 | <P>Beware: latest version of Adobe Windows PS driver produces *ONLY* PS |
---|
679 | level 2. |
---|
680 | So if you have (or receive) level 2 files, read them using GhostScript |
---|
681 | and print a screen dump :-) or as a bitmap. |
---|
682 | <P>You can also convert them into PDF (using either Adobe distiller or |
---|
683 | GhostScript's ps2pdf) then use <I>acroread</I> to print the result. |
---|
684 | <I>Acroread</I> can |
---|
685 | produce either level 1 or level 2 PostScript. THE definite solution! |
---|
686 | <P>This trouble has nothing to do with the way they are connected, |
---|
687 | it is only a driver problem. |
---|
688 | I believe that HP had once a PS level2 update, but the price was so high |
---|
689 | that buying a new printer was a better solution! |
---|
690 | <BLOCKQUOTE><CODE> |
---|
691 | <PRE> |
---|
692 | Bertrand |
---|
693 | -- |
---|
694 | | Bertrand DECOUTY | mailto:Bertrand.Decouty@irisa.fr | |
---|
695 | | IRISA - INRIA (Atelier) | PHONE : 0299847346 / 0299847100 | |
---|
696 | | Campus de Beaulieu | FAX : +33 (0) 299842534 | |
---|
697 | | F-35042 Rennes Cedex - FRANCE | http://www.irisa.fr/ | |
---|
698 | </PRE> |
---|
699 | </CODE></BLOCKQUOTE> |
---|
700 | <H2><A NAME="ss5.13">5.13 HP JetDirect Interface</A> |
---|
701 | </H2> |
---|
702 | |
---|
703 | <P>The HPJetDirect card can be configured through the front |
---|
704 | panel or through a set of network files. Here is a summary |
---|
705 | of the methods used from UNIX systems, or when you are |
---|
706 | desperate, to configure the printer. |
---|
707 | <H3>Setting Up IP Networking and Address</H3> |
---|
708 | |
---|
709 | <P>You can set the network address from the front panel. |
---|
710 | Reset the printer, |
---|
711 | put it in offline mode. |
---|
712 | and then use the MENU, +-, SELECT keys as follows: |
---|
713 | <BLOCKQUOTE><CODE> |
---|
714 | <PRE> |
---|
715 | MENU -> MIO MENU (use MENU to display MIO MENU) |
---|
716 | ITEM -> CFG NETWORK=NO* |
---|
717 | + -> CFG NETWORK=YES |
---|
718 | ENTER -> CFG NETWORK=YES* |
---|
719 | ITEM -> TCP/IP=OFF* (use ITEM to display TCP/IP) |
---|
720 | + -> TCP/IP=ON |
---|
721 | ENTER -> TCP/IP=ON* |
---|
722 | ITEM -> CFG TCP/IP=NO* (use ITEM to display TCP/IP) |
---|
723 | + -> CFG TCP/IP=YES |
---|
724 | ENTER -> CFG TCP/IP=YES* |
---|
725 | ITEM -> BOOTP=NO* |
---|
726 | (Enable BOOTP if you want to - see below) |
---|
727 | ITEM -> IP BYTE 1=0* |
---|
728 | This is IP address MSB byte. |
---|
729 | Use +- keys to change value, and then ENTER to change |
---|
730 | Use ITEM keys to get IP BYTE=2,3,4 |
---|
731 | ITEM -> SM BYTE 1=255* |
---|
732 | This is the subnet mask value |
---|
733 | Use +- keys to change value, and then ENTER to change |
---|
734 | Use ITEM keys to get IP BYTE=2,3,4 |
---|
735 | ITEM -> LG BYTE 1=255* |
---|
736 | This is the Syslog server (LoGger) IP address |
---|
737 | Use +- keys to change value, and then ENTER to change |
---|
738 | Use ITEM keys to get IP BYTE=2,3,4 |
---|
739 | ITEM -> GW BYTE 1=255* |
---|
740 | This is the subnet gateway (router) IP address |
---|
741 | Use +- keys to change value, and then ENTER to change |
---|
742 | Use ITEM keys to get IP BYTE=2,3,4 |
---|
743 | ITEM -> TIMEOUT=90 |
---|
744 | This is the connection timeout value. It puts a limit |
---|
745 | on time between connections. A value of 10 is reasonable. |
---|
746 | </PRE> |
---|
747 | </CODE></BLOCKQUOTE> |
---|
748 | <P> |
---|
749 | <H3>BOOTP Information</H3> |
---|
750 | |
---|
751 | <P>If you have a bootp server, you can put this information |
---|
752 | in the bootptab file. To use this, you must enable the |
---|
753 | bootp option on the printer. The T144 option specifies a |
---|
754 | file to be read from the bootp server. This file is read by |
---|
755 | using the TFTP protocol, and you must have a TFTPD server |
---|
756 | enabled. Here is a sample bootptab entry. |
---|
757 | <BLOCKQUOTE><CODE> |
---|
758 | <PRE> |
---|
759 | # Example /etc/bootptab: database for bootp server (/etc/bootpd). |
---|
760 | # Blank lines and lines beginning with '#' are ignored. |
---|
761 | # |
---|
762 | # Legend: |
---|
763 | # |
---|
764 | # first field -- hostname |
---|
765 | # (may be full domain name) |
---|
766 | # |
---|
767 | # hd -- home directory |
---|
768 | # bf -- bootfile |
---|
769 | # cs -- cookie servers |
---|
770 | # ds -- domain name servers |
---|
771 | # gw -- gateways |
---|
772 | # ha -- hardware address |
---|
773 | # ht -- hardware type |
---|
774 | # im -- impress servers |
---|
775 | # ip -- host IP address |
---|
776 | # lg -- log servers |
---|
777 | # lp -- LPR servers |
---|
778 | # ns -- IEN-116 name servers |
---|
779 | # rl -- resource location protocol servers |
---|
780 | # sm -- subnet mask |
---|
781 | # tc -- template host (points to similar host entry) |
---|
782 | # to -- time offset (seconds) |
---|
783 | # ts -- time servers |
---|
784 | # |
---|
785 | # Be careful about including backslashes where they're needed. Weird (bad) |
---|
786 | # things can happen when a backslash is omitted where one is intended. |
---|
787 | # |
---|
788 | peripheral1: |
---|
789 | :hn:ht=ether:vm=rfc1048: |
---|
790 | :ha=08000903212F: |
---|
791 | :ip=190.40.101.22: |
---|
792 | :sm=255.255.255.0: |
---|
793 | :gw=190.40.101.1: |
---|
794 | :lg=190.40.101.3: |
---|
795 | :T144="hpnp/peripheral1.cfg": |
---|
796 | </PRE> |
---|
797 | </CODE></BLOCKQUOTE> |
---|
798 | <P>If you are using the T144 option, you will need to create |
---|
799 | the configuration file. The sample configuration file from |
---|
800 | the HP Direct distribution is included below. |
---|
801 | <BLOCKQUOTE><CODE> |
---|
802 | <PRE> |
---|
803 | # |
---|
804 | # Example HP Network Peripheral Interface configuration file |
---|
805 | # |
---|
806 | # Comments begin with '#' and end at the end of the line. |
---|
807 | # Blank lines are ignored. Entries cannot span lines. |
---|
808 | |
---|
809 | # Name is the peripheral (or node) name. It is displayed on the peripheral's |
---|
810 | # self-test page or configuration plot, and when sysName is obtained through |
---|
811 | # SNMP. This name can be provided in the BOOTP response or can be specified |
---|
812 | # in the NPI configuration file to prevent the BOOTP response from overflowing |
---|
813 | # the packet. The domain portion of the name is not necessary because the |
---|
814 | # peripheral does not perform Domain Name System (DNS) searches. Name is |
---|
815 | # limited to 64 characters. |
---|
816 | |
---|
817 | name: picasso |
---|
818 | |
---|
819 | # Location describes the physical location of the peripheral. This is the |
---|
820 | # value used by the interface for the MIB-II sysLocation object. The default |
---|
821 | # location is undefined. Only printable ASCII characters are allowed. |
---|
822 | # Maximum length is 64 characters. |
---|
823 | |
---|
824 | location: 1st floor, south wall |
---|
825 | |
---|
826 | # Contact is the name of the person who administers or services the peripheral |
---|
827 | # and may include how to contact this person. It is limited to 64 characters. |
---|
828 | # This is the value used by the interface for the MIB-II sysContact object. |
---|
829 | # The default contact is undefined. Only printable ASCII characters are |
---|
830 | # allowed. Maximum length is 64 characters. |
---|
831 | |
---|
832 | contact: Phil, ext 1234 |
---|
833 | |
---|
834 | # The host access list contains the list of hosts or networks of hosts |
---|
835 | # that are allowed to connect to the peripheral. The format is |
---|
836 | # "allow: netnum [mask]", where netnum is a network number or a host IP |
---|
837 | # address. Mask is an address mask of bits to apply to the network number |
---|
838 | # and connecting host's IP address to verify access to the peripheral. |
---|
839 | # The mask usually matches the network or subnet mask, but this is not |
---|
840 | # required. If netnum is a host IP address, the mask 255.255.255.255 can |
---|
841 | # be omitted. Up to ten access list entries are permitted. |
---|
842 | |
---|
843 | # to allow all of network 10 to access the peripheral: |
---|
844 | allow: 10.0.0.0 255.0.0.0 |
---|
845 | |
---|
846 | # to allow a single host without specifying the mask: |
---|
847 | allow: 15.1.2.3 |
---|
848 | |
---|
849 | # Idle timeout is the time (in seconds) after which an idle |
---|
850 | # print data connection is closed. A value of zero disables |
---|
851 | # the timeout mechanism. The default timeout is 90 seconds. |
---|
852 | |
---|
853 | idle-timeout: 120 |
---|
854 | |
---|
855 | # A community name is a password that allows SNMP access to MIB values on |
---|
856 | # the network peripheral. Community names are not highly secure; they are |
---|
857 | # not encrypted across the network. The get community name determines which |
---|
858 | # SNMP GetRequests are responded to. By default, the network peripheral |
---|
859 | # responds to all GetRequests. The get community name is limited to 32 |
---|
860 | # characters. |
---|
861 | # |
---|
862 | # For hpnpstat and hpnpadmin, the community name can be stored in |
---|
863 | # /usr/lib/hpnp/hpnpsnmp. |
---|
864 | |
---|
865 | get-community-name: blue |
---|
866 | |
---|
867 | # The set community name is similar to the get community name. The set |
---|
868 | # community name determines which SNMP SetRequests are responded to. In |
---|
869 | # addition, SetRequests are only honored if the sending host is on the |
---|
870 | # host access list. By default, the network peripheral does not respond |
---|
871 | # to any SetRequests. The set community name is limited to 32 characters. |
---|
872 | # |
---|
873 | # The set community name can come from /usr/lib/hpnp/hpnpsnmp |
---|
874 | # if it is the same as the get community name. We recommend that the |
---|
875 | # set community name be different from the get community name though. |
---|
876 | |
---|
877 | set-community-name: yellow |
---|
878 | |
---|
879 | # SNMP traps are asynchronous notifications of some event that has occurred. |
---|
880 | # SNMP traps are useful only with network management software. Traps are |
---|
881 | # sent to specific hosts and include a trap community name. Up to four |
---|
882 | # hosts can be sent SNMP traps. The trap community name is limited to |
---|
883 | # 32 characters. The default name is public. |
---|
884 | |
---|
885 | trap-community-name: red |
---|
886 | |
---|
887 | # The SNMP trap destination list specifies systems to which SNMP |
---|
888 | # traps are sent. Up to four IP addresses are allowed. If no |
---|
889 | # trap destinations are listed, traps are not sent. |
---|
890 | |
---|
891 | trap-dest: 15.1.2.3 |
---|
892 | trap-dest: 15.2.3.4 |
---|
893 | |
---|
894 | # The SNMP authentication trap parameter enables or disables the sending |
---|
895 | # of SNMP authentication traps. Authentication traps indicate that an SNMP |
---|
896 | # request was received and the community name check failed. By default, |
---|
897 | # the parameter is off. |
---|
898 | |
---|
899 | authentication-trap: on |
---|
900 | |
---|
901 | # The syslog-facility parameter sets the source facility identifier that the |
---|
902 | # card uses when issuing syslog messages. Other facilities, for example, |
---|
903 | # include the kernel (LOG_KERN), the mail system (LOG_MAIL), and the spooling |
---|
904 | # system (LOG_LPR). The card only allows its syslog facility to be configured |
---|
905 | # to one of the local user values (LOG_LOCAL0 through LOG_LOCAL7). The |
---|
906 | # selectible option strings, local0 through local7 (configured to LOG_LOCAL0 |
---|
907 | # through LOG_LOCAL7, respectively) are case insensitive. The default |
---|
908 | # syslog-facility for the card is LOG_LPR. |
---|
909 | |
---|
910 | syslog-facility: local2 |
---|
911 | |
---|
912 | # This parameter allows the card to treat hosts on other subnets as if the |
---|
913 | # hosts were on the card's subnet. This parameter determines the TCP |
---|
914 | # Maximum Segment Size (MSS) advertised by the card to hosts on other subnets |
---|
915 | # and affects the card's initial receive-window size. The card will use a |
---|
916 | # TCP MSS of 1460 bytes for local hosts, and 536 bytes for a non-local host. |
---|
917 | # The default is off, that is, the card will use the maximum packet sizes |
---|
918 | # only on the card's configured subnet. |
---|
919 | # |
---|
920 | # The configuration utility does not allow access to this parameter. If you |
---|
921 | # want to configure it, you must manually edit the NPI configuration file |
---|
922 | # and add it to the bottom of the entry for the network peripheral. |
---|
923 | |
---|
924 | subnets-local: on |
---|
925 | |
---|
926 | # This parameter affects how the card handles TCP connection requests from |
---|
927 | # the host. By default, the JetDirect MPS card will accept a TCP connection |
---|
928 | # even if the peripheral is off-line. If this parameter is set to "on", then |
---|
929 | # the card will only accept a TCP connection when the peripheral is on-line. |
---|
930 | |
---|
931 | old-idle-mode: off |
---|
932 | </PRE> |
---|
933 | </CODE></BLOCKQUOTE> |
---|
934 | <P> |
---|
935 | <H3>Paper Tray Selection</H3> |
---|
936 | |
---|
937 | <P>Be careful with your paper tray selection. You should configure the |
---|
938 | printer, using the front panel switches, to select the FIRST paper |
---|
939 | tray. See your printer documentation on this. Unfortunately, different |
---|
940 | models of HP printers have different methods of handling paper trays. |
---|
941 | <H2><A NAME="ss5.14">5.14 Lexmark Printers</A> |
---|
942 | </H2> |
---|
943 | |
---|
944 | <P>Some Lexmark printers do not send |
---|
945 | <EM>end of job</EM> status back unless configured |
---|
946 | to do so. |
---|
947 | Here is what is needed to force this. |
---|
948 | <BLOCKQUOTE><CODE> |
---|
949 | <PRE> |
---|
950 | Date: Wed, 21 Jan 1998 18:25:50 -0600 (CST) |
---|
951 | From: Matt White <whitem@bofh.usask.ca> |
---|
952 | To: lprng@iona.com |
---|
953 | Subject: Re: [LPRng] ifhp with Lexmark Optra N printer |
---|
954 | |
---|
955 | On Wed, 21 Jan 1998, Simon Greaves wrote: |
---|
956 | |
---|
957 | > Apologies in advance if this is way off mark, but we've been evaluating a |
---|
958 | > commercial print charging package (Geomica) which works by talking to the |
---|
959 | > printer in what I think is a similar way to the ifhp filters. Lexmarks are |
---|
960 | > currently a big headache because they seem to fail to return the message |
---|
961 | > that they have finished printing which screws things up somewhat. In our |
---|
962 | > case, it is believed to be a problem with the Lexmark firmware which they |
---|
963 | > are looking into. |
---|
964 | |
---|
965 | There is a fix for that...it is originally from the Lexmark 4039 series, |
---|
966 | but it still works on the Optra S 1650 machines that we have (and should |
---|
967 | work on the rest of the optra line). Just send this little chunk of |
---|
968 | postscript to the printer once: |
---|
969 | |
---|
970 | -----------snip---------- |
---|
971 | %! Postscript utility file to set the 4039 printer into synchronous mode |
---|
972 | serverdict begin 0 exitserver |
---|
973 | statusdict begin true setenginesync end |
---|
974 | -----------snip---------- |
---|
975 | |
---|
976 | Basically, it causes the printer to wait until it is finished printing |
---|
977 | before actually reporting that it is done. I've got 3 Optra S printers |
---|
978 | running with ifhp right now with no extra options (just defaults). |
---|
979 | |
---|
980 | --------------------------------------------------------------------- |
---|
981 | - Matt White whitem@arts.usask.ca - |
---|
982 | - Network Technical Support http://arts.usask.ca/~whitem - |
---|
983 | - College of Arts & Science University of Saskatchewan - |
---|
984 | --------------------------------------------------------------------- |
---|
985 | </PRE> |
---|
986 | </CODE></BLOCKQUOTE> |
---|
987 | <P> |
---|
988 | <H2><A NAME="P450"></A> <A NAME="ss5.15">5.15 Network Base Tektronix Phaser Printers</A> |
---|
989 | </H2> |
---|
990 | |
---|
991 | <P>The <CODE>ifhp</CODE> filter supports the |
---|
992 | <A HREF="LPRng-HOWTO-3.html#appsocket">APPsocket</A> protocol used by Tektronix. |
---|
993 | You will need a printcap similar to the following: |
---|
994 | <BLOCKQUOTE><CODE> |
---|
995 | <PRE> |
---|
996 | phaser: |
---|
997 | :sd=/var/spool/lpd/%P |
---|
998 | # need a dummy device for output |
---|
999 | :lp=/dev/null |
---|
1000 | # You need to specify the IP address of the printer's network interface |
---|
1001 | # In this example it is 10.0.0.1 - replace with the correct value |
---|
1002 | # The filter will actually open the connection. |
---|
1003 | :if=/usr/local/libexec/filters/ifhp -Tdev=10.0.0.1%9100,model=tek |
---|
1004 | </PRE> |
---|
1005 | </CODE></BLOCKQUOTE> |
---|
1006 | <H2><A NAME="ss5.16">5.16 Duplex Printing</A> |
---|
1007 | </H2> |
---|
1008 | |
---|
1009 | <P>Duplex printing is when you print on both sides of a page. |
---|
1010 | Some printers which do duplex printing require that you |
---|
1011 | send them special commands to force this mode. This is |
---|
1012 | usually done by the FILTERS. The IFHP filter makes a stab at sending |
---|
1013 | the PJL or PostScript commands to the printer. Many people have |
---|
1014 | reported problems doing duplex printing, so here is a check |
---|
1015 | list. |
---|
1016 | <OL> |
---|
1017 | <LI>Make sure you have enough memory for the worst case |
---|
1018 | print job. Usually the printer has to rasterize both |
---|
1019 | pages before it can produce an impression. It may require |
---|
1020 | much more memory than you expect.</LI> |
---|
1021 | <LI>Check your printer manual to discover the EXACT form of the |
---|
1022 | <CODE>enter duplex mode</CODE> command and make sure that either the command |
---|
1023 | is part of the job (PJL language at the start of the job, |
---|
1024 | postscript header, etc), or that the filter generates the |
---|
1025 | correct form. |
---|
1026 | <P>Note there is a PostScript Printer Description file (PPD) for |
---|
1027 | most printers that support PostScript, and they even have the |
---|
1028 | PJL and PostScript code for this in the PPD file. |
---|
1029 | </LI> |
---|
1030 | <LI>It has been observed that even with what would apparently be |
---|
1031 | sufficient memory, that many duplex jobs print 'oddly', |
---|
1032 | that they are not aligned on the same side in the same way, |
---|
1033 | etc etc. This may not be the fault of the software, but of the |
---|
1034 | support for duplex operation.</LI> |
---|
1035 | <LI>Read the IFHP documentation, |
---|
1036 | and create a configuration section in the <CODE>ifhp.conf</CODE> file |
---|
1037 | for your printer.</LI> |
---|
1038 | </OL> |
---|
1039 | <P>I know this is painful, but until there is a uniform way to get the |
---|
1040 | correct commands extracted from either PPD or some other database then |
---|
1041 | this appears to be the only way to do it. |
---|
1042 | <BLOCKQUOTE> |
---|
1043 | <EM>Patrick Powell</EM> |
---|
1044 | </BLOCKQUOTE> |
---|
1045 | <H2><A NAME="ss5.17">5.17 Test Version and Portability Testing</A> |
---|
1046 | </H2> |
---|
1047 | |
---|
1048 | <P>The LPRng code has the ability to run as non-setuid software, |
---|
1049 | and to use the non-default TCP/IP ports for communication. |
---|
1050 | This facility allows a <EM>Test Version</EM> to be run in parallel with the |
---|
1051 | normal LPRng software. |
---|
1052 | <P>To simplify testing and portability issues, |
---|
1053 | a simple test version of the spool queues and jobs has been supplied with the |
---|
1054 | LPRng distribution. |
---|
1055 | These queues can be placed in a suitable location |
---|
1056 | (<CODE>/tmp</CODE> is common) and the LPRng software tested. |
---|
1057 | <P>The test version of the software will use the <CODE>LPD_CONF</CODE> |
---|
1058 | environment variable to specify the location of the configuration file. |
---|
1059 | It will read this configuration file on startup and use the values |
---|
1060 | to override the normal defaults. |
---|
1061 | Since a user could maliciously set up their own configuration files |
---|
1062 | with values that could compromise system security, |
---|
1063 | it is strongly recommended that the test version is not made SETUID root. |
---|
1064 | In fact, |
---|
1065 | the LPRng code will chatter messages when the LPD_CONF ability is enabled |
---|
1066 | and it is run as root. |
---|
1067 | <H3>Compiling the Test Version</H3> |
---|
1068 | |
---|
1069 | <P>Edit <CODE>src/Makefile</CODE>, and uncomment the indicated line. |
---|
1070 | Then run <CODE>make</CODE> to regenerate the distribution. |
---|
1071 | <BLOCKQUOTE><CODE> |
---|
1072 | <PRE> |
---|
1073 | #### ****** TESTING AND SECURITY LOOPHOLE ****************************** |
---|
1074 | # Define GETENV to allow the LPD_CONFIG environment |
---|
1075 | # variable to be used as the name of a configuration file. In non-testing |
---|
1076 | # systems, this is a security loophole. |
---|
1077 | #CF := $(CF) -DGETENV |
---|
1078 | </PRE> |
---|
1079 | </CODE></BLOCKQUOTE> |
---|
1080 | <H3>Setting Up The Test Version Spool Queues</H3> |
---|
1081 | |
---|
1082 | <P>The LPRng <CODE>TESTSUPPORT</CODE> directory contains a set of shell scripts |
---|
1083 | and files that need to be installed in the appropriate directory. |
---|
1084 | The following steps are used. |
---|
1085 | <OL> |
---|
1086 | <LI>First, |
---|
1087 | you need to set up your <CODE>HOST</CODE> environment variable to the fully |
---|
1088 | qualified domain name of your host |
---|
1089 | and your <CODE>USER</CODE> environment variable to your user name. |
---|
1090 | This is done in order to get values to put into the Test Version configuration files.</LI> |
---|
1091 | <LI>In the <CODE>TESTSUPPORT</CODE> directory, |
---|
1092 | edit the <CODE>Makefile</CODE>, |
---|
1093 | and specify the location of the <CODE>Test Version</CODE> spool queues. |
---|
1094 | The default location is <CODE>/tmp</CODE>; |
---|
1095 | since on most systems these files are deleted or are available to everybody, |
---|
1096 | a more secure location should most likely be used. |
---|
1097 | <B>DO NOT USE THE RAW TESTFILE DIRECTORY</B>. |
---|
1098 | These files need to be copied and placed in another directory.</LI> |
---|
1099 | <LI>The <CODE>LPD_CONF</CODE> environment variable should be set to the |
---|
1100 | location of the installed <CODE>lpd.conf</CODE> file.</LI> |
---|
1101 | <LI>In the <CODE>TESTSUPPORT</CODE> directory, |
---|
1102 | run <CODE>make</CODE>. |
---|
1103 | This will copy and install the necessary files.</LI> |
---|
1104 | </OL> |
---|
1105 | <P>Example: |
---|
1106 | <BLOCKQUOTE><CODE> |
---|
1107 | <PRE> |
---|
1108 | CSH: |
---|
1109 | setenv HOST {fully qualified domain name}; |
---|
1110 | setenv USER `whoami` |
---|
1111 | setenv LPD_CONF /tmp/LPD/lpd.conf |
---|
1112 | set path=( /tmp/LPD $path ) |
---|
1113 | unsetenv PRINTER |
---|
1114 | Example: |
---|
1115 | setenv HOST astart1.astart.com |
---|
1116 | setenv USER papowell |
---|
1117 | setenv LPD_CONF /tmp/LPD/lpd.conf |
---|
1118 | set path=( /tmp/LPD $path ) |
---|
1119 | unsetenv PRINTER |
---|
1120 | Bourne Shell: |
---|
1121 | HOST={fully qualified domain name}; export HOST; |
---|
1122 | USER='whoami'; export USER |
---|
1123 | LPD_CONF=/tmp/LPD/lpd.conf.$HOST; export LPD_CONF |
---|
1124 | PATH=/tmp/LPD:$PATH; export PATH |
---|
1125 | PRINTER=; export PRINTER |
---|
1126 | Example: |
---|
1127 | HOST=astart1.astart.com; export HOST |
---|
1128 | USER=papowell; export USER |
---|
1129 | LPD_CONF=/tmp/LPD/lpd.conf.$HOST; export LPD_CONF |
---|
1130 | PATH=/tmp/LPD:$PATH; export PATH |
---|
1131 | PRINTER=; export PRINTER |
---|
1132 | cd TESTSUPPORT |
---|
1133 | make |
---|
1134 | </PRE> |
---|
1135 | </CODE></BLOCKQUOTE> |
---|
1136 | <H3>Running the Test Version Software</H3> |
---|
1137 | |
---|
1138 | <P>Set your current directory to the location of the compiled <CODE>Test Version</CODE> |
---|
1139 | executables. |
---|
1140 | Execute the various executables using <CODE>./cmd</CODE>, |
---|
1141 | or set <CODE>.</CODE> <B> as the first entry in the PATH </B>. |
---|
1142 | If it is not the first entry, |
---|
1143 | then the standard system executables will be used. |
---|
1144 | <OL> |
---|
1145 | <LI> Run <CODE>./checkpc</CODE>. |
---|
1146 | this will print out the various values for the spool queues in the <CODE>Test Version</CODE> |
---|
1147 | setup. |
---|
1148 | If the <CODE>t1</CODE>, <CODE>t2</CODE>,... spool queues are not displayed, |
---|
1149 | make sure that the LPD_CONF environment variable is set correctly and that you |
---|
1150 | are using the <CODE>Test Version</CODE> executable.</LI> |
---|
1151 | <LI>Run <CODE>./checkpc -f</CODE>. |
---|
1152 | This will fix up the (deliberately introduced) problems in the spool queues.</LI> |
---|
1153 | <LI>Next, run <CODE>./lpd -F</CODE> in one window, |
---|
1154 | and then run <CODE>./lpq -a </CODE> in another window. |
---|
1155 | This will check that the server is working.</LI> |
---|
1156 | <LI>You can now amuse yourself by sending jobs, |
---|
1157 | setting up permissions checking, |
---|
1158 | and other chores.</LI> |
---|
1159 | <LI>When everything appears to be working correctly, |
---|
1160 | you can then remove the <CODE>Test Version</CODE> flag from the |
---|
1161 | <CODE>src/Makefile</CODE>, recompile, |
---|
1162 | and install the LPRng software.</LI> |
---|
1163 | </OL> |
---|
1164 | <HR> |
---|
1165 | <A HREF="LPRng-HOWTO-6.html">Next</A> |
---|
1166 | <A HREF="LPRng-HOWTO-4.html">Previous</A> |
---|
1167 | <A HREF="LPRng-HOWTO.html#toc5">Contents</A> |
---|
1168 | </BODY> |
---|
1169 | </HTML> |
---|