source: trunk/third/lprng/doc/LPRng-HOWTO-5.html @ 14517

Revision 14517, 44.0 KB checked in by mwhitson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14516, which included commits to RCS files with non-trunk default branches.
Line 
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
18specific 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
23baseline.
24Use the following installation procedure.
25<OL>
26<LI>First,
27install the LPRng software
28and then rename all of the existing Solaris print facilities.
29See the
30<A HREF="LPRng-HOWTO-4.html#installation">Installation</A> section for details.
31You should especially look out for
32<CODE>lp</CODE>,
33<CODE>lpstat</CODE>,
34<CODE>lpsched</CODE>,
35<CODE>lpadmin</CODE>,
36and 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.
39Make sure it is removed.</LI>
40<LI><EM>Reboot</EM>.
41Don't try to be fancy and kill off processes,
42use the <EM>nlsadmin</EM> command,
43or other insanity.
44This is brutal,  but appears to be necessary in order to ensure
45that the networking support is set up correctly.</LI>
46<LI>When the system restarts, try using <CODE>lpq</CODE>
47to check to see if the <CODE>lpd</CODE> server is active.</LI>
48</OL>
49<P>James P. Dugal <CODE>&lt;jpd@usl.ed&gt;</CODE> has also made the following
50suggestions as well.
51<BLOCKQUOTE><CODE>
52<PRE>
53From: "Dugal James P." &lt;jpd@usl.edu>
54To: lprng@iona.com
55Subject: Re: [LPRng] start up trouble
56
57Here are some more tips for Solaris:
58
591. If /var/spool/cron/crontabs/lp exists, remove it.
60
61In fact, we actually test if /etc/init.d/lp exists on any newly-installed
62system, 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
71Regards,
72-- James Dugal, N5KNX           Internet: jpd@usl.edu
73Associate Director              Ham packet: n5knx@k5arh.#lft.la.usa.noam
74Computing Support Services      US Mail: PO Box 42770  Lafayette, LA  70504
75University 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
83Sun Microsystems Newsprint by
84Christopher Hylands, Ptolemy Project Manager
85of the University of California.
86<P>The Sun Newsprint printer is actually
87an OEM version of the  Tektronix PhaserII;
88Sun Microsystems appears to have dropped support for Newsprint,
89and the recommended migration path is to buy a PostScript printer.
90If you want more information on using the Newsprint system,
91notes 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
94having a hard time getting lprng to work with Sun's brain-dead
95newsprinters.  I tried using GhostScript, but the fonts were, IMHO,
96ugly, 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>
99from a SunOS4.1.3 newsprint installation.
100If you cannot get this code,
101then the installation will be extremely difficult.
102<P>To install lprng on a Solaris2.x machine,
103you need to first stop the existing print services and install the
104startup scripts for LPRng.
105Note that if there is a local printer, you may have
106to also fix the permissions of the device. Typical commands are:
107<BLOCKQUOTE><CODE>
108<PRE>
109chown 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
121licensed fonts, you must have the lprng spool directory for the
122sparcprinter in the same location as spool directory of the brain
123dead Solaris lp system.  If your printer is named xsp524, then this
124directory would be <CODE> /etc/lp/printers/xsp524</CODE>.
125<P>The printcap entry looks like:
126<BLOCKQUOTE><CODE>
127<PRE>
128sp524|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:
133xsp524|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>
144was copied from
145<CODE>/usr/newsprint/lpd/if</CODE>
146in a SunOS4.x installation of the newsprint
147software.
148Unfortunately, the newsprint engine is so brain dead that it
149needs many environment variables set, so it is fairly difficult to
150come up with a clean script to start the engine. I made the following
151changes to the file.
152<OL>
153<LI>First, set the path in the script.
154You may also need to change defaults to suit your preferences:
155<BLOCKQUOTE><CODE>
156<PRE>
157PATH=/usr/ucb:/usr/bin:/etc:/usr/etc:/opt/NeWSprint/bin:/opt/NeWSprint/np/bin:
158PATH=$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>
164file. If you
165are using the same spooler directory as the directory that the Solaris
166lp system uses, then the .param file should appear there. If you are
167using a different spooler directory, then you will need to copy
168the .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
170probably save the .param file in the old printer spooler directory.
171Run /opt/NeWSprint/bin/fp_install and remove the license from the
172old printer and assign it to the new printer.
173You could run /opt/NeWSprint/bin/rm_np_printer and remove the printer,
174but 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>
179sunxm.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>
189Christopher Hylands, Ptolemy Project Manager  University of California
190cxh@eecs.berkeley.edu                 US Mail: 558 Cory Hall #1770
191ph: (510)643-9841 fax:(510)642-2739       Berkeley, CA 94720-1770
192home: (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),
199the three major Linux
200distributions (Slackware, Red Hat and Debian) carry an older version
201of LPRng. Users of those systems should download the
202latest stable release, and install that instead of the distributed
203binaries.
204<P>This is mostly important for Slackware 3.2 users, as this version
205installs LPRng by default.
206Patrick Volkerding changed the default back to
207BSD LPR in Slackware 3.3,
208as many users had experienced problems
209because they didn't realize they weren't using the BSD software.
210<P>Debian's <CODE>dselect</CODE> utility lets you choose between all
211packages. Amongst these are LPRng, as well as the traditional LPR
212software.
213<P>You have to make sure your kernel is configured correctly. The
214documentation for the kernel sources in
215<CODE>/usr/src/linux/Documentation/</CODE> and the <CODE>Kernel-HOWTO</CODE>
216will help you to generate a new kernel if needed. You will need to set
217the 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
222need the `Parallel Printer Support' (<CODE>CONFIG_PRINTER</CODE>).
223You 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
226also available as a module.</LI>
227</UL>
228<P>Once you have done this,
229the current releases of LPRng will install and run without
230problems.
231See the
232<A HREF="LPRng-HOWTO-4.html#installingprograms">Installing the programs</A>
233section for details on how to install LPRng and
234deactivate the existing print support.
235<P>You may need to update the printcap file and filters.
236See
237<A HREF="LPRng-HOWTO-8.html#printcapref">Using the Printcap Database</A>
238for 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>,
244as of August 1997,
245and describes how to install the LPRng package on a workstation
246running AIX 4.1.x and possibly 3.x.x as well.
247Dirk would be interested in any comments or corrections.
248<P>Printing on AIX systems is different. AIX provides a general
249queueing facility and printing is only one way to use it. You submit a
250print job to a print queue using one of the commands
251<CODE>qprt</CODE>, <CODE>enq</CODE>. You can use the BSD or
252System V printing commands <CODE>lpr</CODE> or <CODE>lp</CODE>, too. The
253qdaemon watches all (general) queues and knows how to handle your
254job. A (general) queue is defined in the file
255<CODE>/etc/qconfig</CODE>. The format of this file is different from
256the <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
259group for file ownership and process permissions. We decided to use
260the <CODE>printq</CODE> group. The user <CODE>daemon</CODE> exists on
261AIX but we have chosen <CODE>lpd</CODE> as the user who runs
262<CODE>lpd</CODE> and all filters and owns the spooling directories.
263You can change the values for <CODE>group</CODE>
264and <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
272group=printq
273# Purpose: server user for SUID purposes
274#   default user=daemon
275user=lpd
276</PRE>
277</CODE></BLOCKQUOTE>
278
279Compile and install the LPRng package. Create your
280<CODE>printcap</CODE>, spooling directories, accounting and logfiles
281and so on.
282Don't forget to use
283<A HREF="LPRng-HOWTO-9.html#checkpc">checkpc</A> to make sure that all the
284permissions are set correctly and the necessary files
285are 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
293for 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,
296Manage 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
306system. 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
309rmpq</CODE>.
310<P>To start the new <CODE>lpd</CODE> at system startup you have to add
311an 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
318your workstation. You have to create a device file like
319<CODE>/dev/lp0</CODE>. The SMIT fast path for this is <CODE>smit
320mkdev</CODE>. Choose <CODE>Printer/Plotter</CODE> and then
321<CODE>Printer/Plotter Devices</CODE>. Now <CODE>Add a
322Printer/Plotter</CODE>. To create a parallel
323printer device select the following:
324<BLOCKQUOTE><CODE>
325<PRE>
326Plotter type:              opp Other parallel printer
327Printer/Plotter Interface: parallel
328Parent Adapter:            ppa0 Available
329</PRE>
330</CODE></BLOCKQUOTE>
331
332Now define the characteristics of the device:
333<BLOCKQUOTE><CODE>
334<PRE>
335Port Number: p
336</PRE>
337</CODE></BLOCKQUOTE>
338
339(<CODE>p</CODE> is for parallel).
340Go to the field
341<BLOCKQUOTE><CODE>
342<PRE>
343Send all characters to printer UNMODIFIED   no
344</PRE>
345</CODE></BLOCKQUOTE>
346
347and select <CODE>yes</CODE>! We have had a lot of trouble with
348<CODE>no</CODE>.  This is very important! Expect erroneous output if
349you choose <CODE>no</CODE>. If you have already created a device
350file, change the characteristics! SMIT's fast path is <CODE>smit
351chdev</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
356you 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
362AppleTalk printers and vice versa.
363The 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
366has to do with printing to LPRng-served printers from Macs.
367The second issue has to do with printing from LPRng to
368network 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,
376you can use the following configuration file to print
377from a Macintosh to an LPRng printer.
378<BLOCKQUOTE><CODE>
379<PRE>
380Date: Tue, 30 Sep 1997 00:04:58 -0400 (EDT)
381From: Edan Idzerda &lt;edan@mtu.edu>
382To: lprng@iona.com
383Subject: 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?
387Well, *I* use:
388Your 32 Character Printer Name:\
389        :pr=|/your/path/to/lpr -Pprintername
390        :ppd=/your/path/to/ppd/files/yourprinter.ppd
391--
392Edan Idzerda    &lt;edan@mtu.edu>
393System 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
400compilation, it is in (e.g.) <CODE>netatalk-1.4b2/etc/psf</CODE> and will be installed
401in (e.g.) <CODE>/usr/local/atalk/etc/</CODE>.  After installation, there will also
402be a directory <CODE>/usr/local/atalk/etc/filters</CODE> that contains
403<CODE>ifpap</CODE>, <CODE>ofpap</CODE>,
404et al.  These are just symlinks to <CODE>psf</CODE>, and <CODE>psf</CODE> will do the appropriate
405thing 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>
410dave|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
421in 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.
436To minimize the risk,
437you 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
442spool directory.  For instance, <CODE>/var/spool/dave/.paprc</CODE> looks like this:
443<BLOCKQUOTE><CODE>
444<PRE>
445Dave'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
453single printer, this can be <CODE>/dev/null</CODE>.  If the host spools to more
454than one AppleTalk printer, you shouldn't use <CODE>/dev/null</CODE> for lp.  You
455should use <CODE>mknod</CODE> to create a null device for each printer.  See psf(8).</LI>
456</OL>
457
458<BLOCKQUOTE><CODE>
459<PRE>
460Chad Mynhier &lt;mynhier@cs.utk.edu>
461Lab Engineer, CS Department       
462University 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
469PC-related machines share files and printers and other information
470such as lists of available files and printers. Operating systems that
471support this natively include Windows NT, OS/2, and Linux and add on
472packages that achieve the same thing are available for DOS, Windows,
473VMS, Unix of all kinds, MVS, and more. There is no reason why Apple
474Macs and indeed any Web browser should not be able to speak this
475protocol, and current development (in which the Samba team is heavily
476involved) is aimed at exactly that. Alternatives to SMB include
477Netware, NFS, AppleTalk, Banyan Vines, Decnet etc; many of these have
478advantages but none are both public specifications and widely
479implemented in desktop machines by default.
480<P>SAMBA is a package that supports the SMB protocol and provides
481a simple and easy way to import and export file systems and printer
482facilities.
483The 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.
487In 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,
491and in the <CODE>[printing]</CODE> section the location
492of 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
528the print files are temporarily stored.  This must NOT
529be an LPRng printer spool directory,  but some other directory that
530Samba has write permissions for.
531<P>If you plan to use SAMBA and LPRng,
532then you should use the old BSD format for the printcap files,
533i.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
538send 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
568config_file=.config
569eval `/bin/cat $config_file`
570# echo "server $server, service $service" 1>&amp;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>&amp;2
579</PRE>
580</CODE></BLOCKQUOTE>
581<P>If the above script was in <CODE>/usr/local/libexec/filters/smbprint</CODE>,
582the printcap entry for this printer would be:
583<BLOCKQUOTE><CODE>
584<PRE>
585pauls_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
598and applications.
599<H2><A NAME="ss5.11">5.11 HP Deskjet</A>
600</H2>
601
602<P>
603<BLOCKQUOTE><CODE>
604<PRE>
605From: jarausch@igpm.rwth-aachen.de (Helmut Jarausch)
606Subject: Re: Using gs (GhostScript) as a filter?
607To: lprng@iona.com
608Cc: Rick Gaine &lt;rgaine@nbcs.rutgers.edu>
609Sender: majordomo-owner@iona.com
610Reply-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>
625djps
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
636nice -19 /usr/local/bin/gs -sDEVICE=cdj550 -sPAPERSIZE=a4 \
637    -sOutputFile=- -q -r300 -
638</PRE>
639</CODE></BLOCKQUOTE>
640
641<BLOCKQUOTE><CODE>
642<PRE>
643Helmut Jarausch
644Lehrstuhl f. Numerische Mathematik
645Institute of Technology
646RWTH Aachen
647D 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" &lt;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).
676The Windows (you are under Windows, right?) HP driver for 3Si/3Si MX
677PostScript should produce only PS level 1.
678<P>Beware: latest version of Adobe Windows PS driver produces *ONLY* PS
679level 2.
680So if you have (or receive) level 2 files, read them using GhostScript
681and print a screen dump :-) or as a bitmap.
682<P>You can also convert them into PDF (using either Adobe distiller or
683GhostScript's ps2pdf) then use <I>acroread</I> to print the result.
684<I>Acroread</I> can
685produce either level 1 or level 2 PostScript. THE definite solution!
686<P>This trouble has nothing to do with the way they are connected,
687it is only a driver problem.
688I believe that HP had once a PS level2 update, but the price was so high
689that buying a new printer was a better solution!
690<BLOCKQUOTE><CODE>
691<PRE>
692Bertrand
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
704panel  or through a set of network files.  Here is a summary
705of  the  methods  used  from  UNIX  systems, or when you are
706desperate, 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.
710Reset  the printer,
711put it in offline mode.
712and 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
752in  the  bootptab  file.   To  use this, you must enable the
753bootp  option  on  the printer.  The T144 option specifies a
754file to be read from the bootp server.  This file is read by
755using  the  TFTP  protocol, and you must have a TFTPD server
756enabled.  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#
788peripheral1:
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
799the  configuration file.  The sample configuration file from
800the 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
817name: 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
824location: 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
832contact: 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:
844allow: 10.0.0.0  255.0.0.0
845
846# to allow a single host without specifying the mask:
847allow: 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
853idle-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
865get-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
877set-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
885trap-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
891trap-dest: 15.1.2.3
892trap-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
899authentication-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
910syslog-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
924subnets-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
931old-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
938printer,  using the front panel switches,  to select the FIRST paper
939tray.  See your printer documentation on this.  Unfortunately,  different
940models 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
946to do so.
947Here is what is needed to force this.
948<BLOCKQUOTE><CODE>
949<PRE>
950Date: Wed, 21 Jan 1998 18:25:50 -0600 (CST)
951From: Matt White &lt;whitem@bofh.usask.ca>
952To: lprng@iona.com
953Subject: Re: [LPRng] ifhp with Lexmark Optra N printer
954
955On 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
965There is a fix for that...it is originally from the Lexmark 4039 series,
966but it still works on the Optra S 1650 machines that we have (and should
967work on the rest of the optra line).  Just send this little chunk of
968postscript to the printer once:
969
970-----------snip----------
971%! Postscript utility file to set the 4039 printer into synchronous mode
972serverdict begin 0 exitserver
973statusdict begin true setenginesync end
974-----------snip----------
975
976Basically, it causes the printer to wait until it is finished printing
977before actually reporting that it is done.  I've got 3 Optra S printers
978running 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 &amp; 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.
993You will need a printcap similar to the following:
994<BLOCKQUOTE><CODE>
995<PRE>
996phaser:
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.
1010Some printers which do duplex printing require that you
1011send them special commands to force this mode.  This is
1012usually done by the FILTERS.  The IFHP filter makes a stab at sending
1013the PJL or PostScript commands to the printer.  Many people have
1014reported problems doing duplex printing,  so  here is a check
1015list.
1016<OL>
1017<LI>Make sure you have enough memory for the worst case
1018print job.  Usually the printer has to rasterize both
1019pages before it can produce an impression.  It may require
1020much 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
1023is part of the job (PJL language at the start of the job,
1024postscript header, etc), or that the filter generates the
1025correct form.
1026<P>Note there is a PostScript Printer Description file (PPD) for
1027most printers that support PostScript,  and they even have the
1028PJL and PostScript code for this in the PPD file.
1029</LI>
1030<LI>It has been observed that even with what would apparently be
1031sufficient memory,  that many duplex jobs print 'oddly',
1032that they are not aligned on the same side in the same way,
1033etc etc.  This may not be the fault of the software,  but of the
1034support for duplex operation.</LI>
1035<LI>Read the IFHP documentation,
1036and create a configuration section in the <CODE>ifhp.conf</CODE> file
1037for your printer.</LI>
1038</OL>
1039<P>I know this is painful,  but until there is a uniform way to get the
1040correct commands extracted from either PPD or some other database then
1041this 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,
1049and to use the non-default TCP/IP ports for communication.
1050This facility allows a <EM>Test Version</EM> to be run in parallel with the
1051normal LPRng software.
1052<P>To simplify testing and portability issues,
1053a simple test version of the spool queues and jobs has been supplied with the
1054LPRng distribution.
1055These 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>
1058environment variable to specify the location of the configuration file.
1059It will read this configuration file on startup and use the values
1060to override the normal defaults.
1061Since a user could maliciously set up their own configuration files
1062with values that could compromise system security,
1063it is strongly recommended that the test version is not made SETUID root.
1064In fact,
1065the LPRng code will chatter messages when the LPD_CONF ability is enabled
1066and 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.
1070Then 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
1083and files that need to be installed in the appropriate directory.
1084The following steps are used.
1085<OL>
1086<LI>First,
1087you need to set up your <CODE>HOST</CODE> environment variable to the fully
1088qualified domain name of your host
1089and your <CODE>USER</CODE> environment variable to your user name.
1090This is done in order to get values to put into the Test Version configuration files.</LI>
1091<LI>In the <CODE>TESTSUPPORT</CODE> directory,
1092edit the <CODE>Makefile</CODE>,
1093and specify the location of the <CODE>Test Version</CODE> spool queues.
1094The default location is <CODE>/tmp</CODE>;
1095since on most systems these files are deleted or are available to everybody,
1096a more secure location should most likely be used.
1097<B>DO NOT USE THE RAW TESTFILE DIRECTORY</B>.
1098These 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
1100location of the installed <CODE>lpd.conf</CODE> file.</LI>
1101<LI>In the <CODE>TESTSUPPORT</CODE> directory,
1102run <CODE>make</CODE>.
1103This 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>
1139executables.
1140Execute the various executables using <CODE>./cmd</CODE>,
1141or set <CODE>.</CODE> <B> as the first entry in the PATH </B>.
1142If it is not the first entry,
1143then the standard system executables will be used.
1144<OL>
1145<LI> Run <CODE>./checkpc</CODE>.
1146this will print out the various values for the spool queues in the <CODE>Test Version</CODE>
1147setup.
1148If the <CODE>t1</CODE>, <CODE>t2</CODE>,... spool queues are not displayed,
1149make sure that the LPD_CONF environment variable is set correctly and that you
1150are using the <CODE>Test Version</CODE> executable.</LI>
1151<LI>Run <CODE>./checkpc -f</CODE>.
1152This will fix up the (deliberately introduced) problems in the spool queues.</LI>
1153<LI>Next, run <CODE>./lpd -F</CODE> in one window,
1154and then run <CODE>./lpq -a </CODE> in another window.
1155This will check that the server is working.</LI>
1156<LI>You can now amuse yourself by sending jobs,
1157setting up permissions checking,
1158and other chores.</LI>
1159<LI>When everything appears to be working correctly,
1160you can then remove the <CODE>Test Version</CODE> flag from the
1161<CODE>src/Makefile</CODE>, recompile,
1162and 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>
Note: See TracBrowser for help on using the repository browser.