LPRng-HOWTO: 15 Oct 2001 (For LPRng-3.7.9)
Prev | Chapter 3. System Specific Notes | Next

# 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` or `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 or create a `daemon` user and group. We decided to use the `printq` group; on reflection it would have been easier to have created a `daemon` 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:

        h4: {75} # topsrc -p'pid of /usr/sbin/lpd'
        h4: {76} # 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`:

        h4: {77} # 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`, then `Printer/Plotter Devices`, then `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

Option `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, lpq, and 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.

Prev | Home | Next
Linux | Up | AppleTalk Support