Next Previous Contents

3. System Specific Notes

The following are a set of suggestions and recommendations for specific systems.

3.1 Solaris 2.4, 2.5, 2.6, 2.7, 2.8

The Sun Solaris operating system is derived from the System V UNIX baseline. Please see the Solaris installation information for a detailed description of how to install LPRng and remove the Solaris Print Services.

3.2 Linux

As of March 17, 2000, there is no universal way to install LPRng cleanly on all of the different Linux systems. The major difficulty is the fragmentation in the various libraries, location of files, and so forth.

However, the good news is that most of the printcap files that are produced by the GUI interface tools are compatible with LPRng. The bad news is that the directory and file permissions that they generate are erroneous.

Here is an outline of how to install LPRng on most of the major LINUX systems.

  1. Check the LPRng web site http://www.astart.com/LPRng.html and see if there is a Linux Release specific version RPM or other distribution media for your version of Linux. If there is not, then you will have to do a source install.
  2. Obtain the source code and do a source code level install. I strongly recommend using the following configuration options which will match all the currently know Linux distribution configurations.
    ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
    
  3. After doing the make install, run checkpc -f and make sure that you eliminate the errors.
  4. If you have an existing printcap, then check to see if it has filter entries and modify them as shown below:
    lp:\
      :if=/usr/local/libexec/lpr/hplaserjet3:\
      :bk:\      <<<< added to the printcap by hand
      :...
    
  5. Test the configuration and see if it works by sending a file to the queue.
  6. If this does not work, then you will have to determine if the problem is in the print spooling software or in the filter. See the section on ifhp for directions on how to replace the vendor supplied filters with ifhp.

3.3 AIX

This information was supplied by Dirk Nitschke, as of August 1997, and describes how to install the LPRng package on a workstation running AIX 4.1.x and possibly 3.x.x as well. Dirk would be interested in any comments or corrections.

Printing on AIX systems is different. AIX provides a general queueing facility and printing is only one way to use it. You submit a print job to a print queue using one of the commands qprt, enq. You can use the BSD or System V printing commands lpr or lp, too. The qdaemon watches all (general) queues and knows how to handle your job. A (general) queue is defined in the file /etc/qconfig. The format of this file is different from the printcap format.

OK, how to replace the AIX printing system? There is no group daemon on AIX. Therefore you have to change the default group for file ownership and process permissions. We decided to use the printq group. The user daemon exists on AIX but we have chosen lpd as the user who runs lpd and all filters and owns the spooling directories. You can change the values for group and user in your lpd.conf file or in the sources src/common/vars.c. This is an example for lpd.conf:

# Purpose: group to run SUID ROOT programs
#   default group=daemon
group=printq
# Purpose: server user for SUID purposes
#   default user=daemon
user=lpd
Compile and install the LPRng package. Create your printcap, spooling directories, accounting and logfiles and so on. Don't forget to use checkpc to make sure that all the permissions are set correctly and the necessary files are created.

Then stop all print queues defined on your workstation. Use

# chque -q queuename -a "up = FALSE"
for this (yes, blanks around = are needed).

If you have local printers attached to your system you will have an lpd running. Stop this daemon using SMIT (Print Spooling, Manage Print Server, Stop the Print Server Subsystem). Choosing both also removes lpd from /etc/inittab. Maybe it's faster to do this by hand:

# stopsrc -p'pid of /usr/sbin/lpd'
# rmitab "lpd"

Now delete all print queues (managed by qdaemon) defined on your system. You can use SMIT for this or the commands {mk,ch,rm}que, {mk,ch,rm}quedev, {mk,ch,rm}virprt. The SMIT fast path is smit rmpq.

To start the new lpd at system startup you have to add an entry to /etc/inittab:

# mkitab "lpd:2:once:/full/path/lpd"

Some work has to be done if have have a local printer attached to your workstation. You have to create a device file like /dev/lp0. The SMIT fast path for this is smit mkdev. Choose Printer/Plotter and then Printer/Plotter Devices. Now Add a Printer/Plotter. To create a parallel printer device select the following:

Plotter type:              opp Other parallel printer
Printer/Plotter Interface: parallel
Parent Adapter:            ppa0 Available
Now define the characteristics of the device:
Port Number: p
(p is for parallel). Go to the field
Send all characters to printer UNMODIFIED   no
and select yes! We have had a lot of trouble with no. This is very important! Expect erroneous output if you choose no. If you have already created a device file, change the characteristics! SMIT's fast path is smit chdev.

Finally remove all AIX printing commands like qprt, lp, cancel, lpr, lprm. You will find a lot of them in /usr/bin. Do not remove enq and friends if you want to use the general queueing facility.

Now you can start your new lpd.

3.4 AppleTalk Support

Netatalk is used to communicate from TCP/IP to AppleTalk printers and vice versa. The Netatalk distribution FAQ is at: http://www.umich.edu/~rsug/netatalk. Also, The University of Melbourne web site http://www.cs.mu.oz.au/appletalk/ has additional tutorial and installation information.

After you have installed and gotten netatalk working, you can use the following AppleTalk configuration file to print from a Macintosh to an LPRng printer.

Your 32 Character Printer Name:\
        :pr=|/your/path/to/lpr -Pprintername
        :ppd=/your/path/to/ppd/files/yourprinter.ppd

Next Previous Contents