SCO Unix/System V Printing FAQ



This article is from a FAQ concerning SCO operating systems. While some of the information may be applicable to any OS, or any Unix or Linux OS, it may be specific to SCO Xenix, Open Desktop or Openserver.

There is lots of Linux, Mac OS X and general Unix info elsewhere on this site: Search this site is the best way to find anything.

How can I add, modify or remove SCO Unix/System V printers from the command line?

The "lpadmin" command can add or modify printers without using a graphical or command line tool

This assumes you are using Cups (Linux) or SCO Unix, Solaris or another Unix that uses System V style printing.

For Cups, use "-E" in the original command - you don't need to "enable" and "accept" commands.

 lpadmin -p printer1 -v /dev/lp -m HPLaserJet
 accept printer1
 enable printer1
 lpadmin -d printer1
 

adds a new printer named "printer1" which prints to the parallel port and uses the "HPLaserJet" model. "lpadmin -d" makes it the default printer.

 lpadmin -x printer1 
 

removes the printer "printer1".

There are other options to lpadmin; see the man page.

Xenix printers can be transferred with a script like this (which assumes that the Xenix hierarchy is located under "/xenixsys"):

 cd /xenixsys/usr/spool/lp/member
 for i in *
 do
 # make sure we aren't overwriting an existing model
 if test -r /usr/spool/lp/model/$i
 then
        echo "Model $i already exists"
 else
        cp ../interface/$i /usr/spool/lp/model
        lpadmin -p $i -v `cat $i` -m $i 
        accept $i
        enable $i
 fi
 done
 

If you modify interfaces or devices of existing printers with lpadmin, you will have to do "lpshut;/usr/lib/lpsched" to see the effects.

Here's a good page on adding a Centos printer: CentOS 6 lpadmin generic postscript printer addition. Interesting syntax:

For Jetdirect/RAW print servers

lpadmin -p printer_name -m drv:///sample.drv/generic.ppd -v
socket://your_print_server:9100 -D "Your printer description"
-L "Your printer location" -o printer-error-policy=retry-job -o
printer-is-shared=false -E

The new part is "drv:///sample.drv/generic.ppd" as the model
instead of "postscript.ppd.gz" or similar from the past. This
seems to trigger a ppd file build from the script/file of
"/usr/share/cups/drv/sample.drv" as part of the cups package.

SCO Unix Sales, Support, & Service

Phone:  707-SCO-UNIX (707-726-8649Toll Free: 833-SCO-UNIX (833-726-8649)
www.SCOsales.com