Adding a Local BSD Printer

an empty field and then the catalog is defined as the name of the colon file with the extension cat. msg_number Identifies the message index in the catalog that contains the description of the attribute. attribute_name The unique name of the attribute. Alphanumeric characters and underscore _ are permitted; longer names correspond to comments. null−string An empty field for future use. attribute_value Specifies the value of the attribute zero to 1000 characters. Embedded references and logic for dynamically defined attribute values can be included which generally provides an extremely powerful way to specify an attribute. Obviously the attribute value string can be a very complex expression used in the communication between the print job manager the piobe command and the device driver interface program the pioout command.

10.3 Adding New Printers

Adding a new printer onto a system is a common, unavoidable administrative task, and the system administrator must be familiar with this procedure. The following text covers printing subsystem flavors BSD and System V for both local and remote printers.

10.3.1 Adding a New Local Printer

10.3.1.1 Adding a Local BSD Printer

To add a new local printer to a BSD system, several steps must be performed: Physically connect a printer to the computer parallel or serial connection. • For serial line printers, create or modify an entry in the terminal line configuration file etcttys, or etcttytab on SunOS this will be discussed in greater detail in Chapter 11. The entries should have status off, type unknown, and the keyword none in the command field. • If this is the first printer on the system, verify that the part of the rc scripts to start the lpd daemon is active. • Add an entry for the printer to the etcprintcap file. If the new printer is of the same type as an existing one, the entry for the existing printer can be copied and then modified to the new values: The printer name, in the name field of the entry multiple names are allowed ♦ The special device file, in the field :lp= … :; this field identifies the hardware connection of the local printer, which is the system address of the corresponding special device file ♦ The spooling directory, in the field :sd= … : ♦ An accounting file, in the field :af= … : if accounting is active ♦ An error log file, in the field :lf= … : ♦ Other fields remain unmodified for the same type of printer ♦ • If the new printer is the first of its type on the system, then the lines for corresponding entries in the etcprintcap file should be commented−out and edited. Printer vendors often provide printcap entries for their products. • Create the corresponding spooling directory for the printer. • 239 touch usradmlp_acctnewprinter chown daemon usradmlp_acctnewprinter chmod 755 usradmlp_acctnewprinter Note On some platforms such as SunOS the printer account directory could be varadmlp_acct. If the new printer should be the default printer on the system, append lp to the printers name and remove lp from the entry of the previous default printer. • Start the printer and its queue given the printer name newprinter: lpc up newprinter • Test the new printer by spooling a short message for printing. An effective way to do this is: banner Testing of newprinter | lpr −Pnewprinter An attractive, banner−style, message should be printed. • The following example illustrates a printcap entry for a local HP LaserJet5 printer, connected to the serial port specified by the special device file devttya; all names are arbitrary. The previously discussed fields are printed in bold. Entry for HP LaserJet IV printer named newprinter newprinter \lj5\hplj5\ljv\HP LaserJet 5: \ : lp=devttya:sd=usrspoolnewprinter:\ : lf=usradmnewprinter.log:\ :ms=−parity,−cstopb,−clocal,cread,ixon,ixoff,−opost:\ :fc0777:fs06021:sb:sh:xc07737:xs040:\ :mx0:br9600:of=usrlibhplaserjet: 10.3.1.2 Adding a Local Linux Printer To add a Linux printer, we use the available Linux printtool utility it is recommended, but not mandatory. In the following example we see how the etcprintcap file looks like after adding a local printer lp1 by using this tool. cat etcprintcap Please dont edit this file directly unless you know what you are doing Be warned that the control−panel printtool requires a very strict format Look at the printcap5 man page for more info. This file can be edited with the printtool in the control−panel. PRINTTOOL3 LOCAL laserjet 300 × 300 letter {} LaserJet Default {} lp1|lplocal:\ :sd=varspoollpdlp1:\ :mx0:\ :sh:\ :lp=devlp1:\ :if=varspoollpdlp1filter: From the listed printcap entry, it can be seen that the printer lp1 has an alternative name lplocal. It is connected to the parallel port devlpl, as well as the names of the spooling directory and input filter. Other printing parameters are related to the maximum job size and print header. The specified filter file is one among available printer−filters located in the corresponding filter depot directory. It is 240 ls −l varspoollpdlp1|grep filter lrwxrwxrwx 1 root root 44 Feb 5 20:10 filter−usrlibrhsrhs−printfiltersmaster−filter When a single Linux printer is specified, this printer is automatically the default one; there is no need to label this printer with the additional name lp. 10.3.1.3 Adding a Local System V Printer In System V, the administrative command lpadmin −v is used to add a new local printer. The option −v specifies a local printer and requires as argument the corresponding special device file. When a new printer is added to the system, the following information must be supplied: lpadmin −pnewprinter −vspecial_file interface_option where newprinter The name of the new printer. special_file The full pathname of the special file through which the system will communicate with the new printer. interface−options Includes several possible options. −m model Specify a printer by the existing model type. The corresponding model program from the usrspoollpmodel directory is copied into the usrspoollpinterface directory or on some platforms, varspoollp. −e oldprinter Copy oldprinters interface file; oldprinter must be an existing printer. −i interface_path Specify the full pathname of the printer interface file, introduced for this purpose. The −e option is the easiest to implement when the same, already tested and proven interface from an existing printer is used for the new printer. The −m option is also easy to implement if a standard, well−known model program defines the new printer. Creating a new custom−designed interface program the −i option can be a hard job; an interface program often a script, but not necessarily a script can be very complex. By convention, the program takes the following arguments: 1 job ID 2 username 3 job title 4 number of copies 5 printer−specific options 6 files to be printed When it is invoked, the interface program standard output is redirected to the printer, and the program arguments can be processed in an arbitrary number of ways for different printing scenarios. The simplest possible interface program is: This is the simplest LP interface It ignores most initial arguments, and prints the file as it is. 241 The lpsched daemon must be shut down during printer installation and reinvoked afterward. It is recommended that you test the new printer after installation: banner Testing of newprinter | lp −d newprinter

10.3.2 Adding a New Remote Printer