Skip Navigation Links | |
Exit Print View | |
System Administration Guide: Printing Oracle Solaris 11 Express 11/10 |
1. Introduction to Printing in the Oracle Solaris Operating System
2. Planning for Printing (Tasks)
3. Setting Up and Administering Printers by Using CUPS (Tasks)
4. Setting Up and Administering Printers by Using Print Manager for LP (Tasks)
5. Setting Up and Administering Printers by Using Oracle Solaris Print Manager (Tasks)
6. Setting Up Printers by Using LP Print Commands (Tasks)
7. Administering Printers by Using LP Print Commands (Tasks)
8. Customizing LP Printing Services and Printers (Tasks)
9. Administering the LP Print Scheduler and Managing Print Requests (Tasks)
10. Administering Printers on a Network (Tasks)
11. Administering Character Sets, Filters, Forms, and Fonts (Tasks)
12. Administering Printers by Using the PPD File Management Utility (Tasks)
13. Printing in the Oracle Solaris Operating System (Reference)
14. Troubleshooting Printing Problems in the Oracle Solaris OS (Tasks)
Tips on Troubleshooting Printer Setup Problems
Locating Information About Parallel and USB-Connected Print Devices
Tips on Troubleshooting Printing Problems
Troubleshooting No Output (Nothing Prints)
Troubleshooting Incorrect Output
Check the Printer Type and File Content Type
Troubleshooting Hung lp Commands
Troubleshooting Idle (Hung) Printers
Print Requests Backed Up in the Local Queue
Print Requests Backed Up in the Remote Queue
Troubleshooting Conflicting Status Messages
Troubleshooting Miscellaneous Printing Problems
Troubleshooting No Printer Output
How to Check the Printer Hardware
How To Check the Printer Network Connections
How to Debug Printing Problems
How to Check the Basic Functions of the LP Print Service
How to Check Printing From a Print Client to a Print Server
How to Troubleshoot Incorrect Output
How to Unhang the LP Print Service
Troubleshooting an Idle (Hung) Printer
How to Check That the Printer is Ready to Print
How to Resume Printing After a Printer Fault
How to Send Print Requests to a Remote Printer When Requests Are Backed Up in the Local Queue
How to Free Print Requests From a Print Client That Are Backed Up in the Print Server Queue
This section contains step-by-step instructions that explain:
How to troubleshoot no output
How to troubleshoot incorrect output
How to unhang the lp commands
How to troubleshoot an idle (hung) printer
How to resolve conflicting status messages
This task includes the following troubleshooting procedures to try when you submit a print request to a printer and nothing prints:
Check the hardware (How to Check the Printer Hardware).
Check the network (How To Check the Printer Network Connections).
Check the LP print service basic functions (How to Check the Basic Functions of the LP Print Service).
Check printing from a print client to a print server (How to Check Printing From a Print Client to a Print Server).
Try the first three procedures in the order in which they are listed, before going to the print client/server section. However, if the banner page prints, but nothing else does, turn to the instructions under How to Troubleshoot Incorrect Output.
Refer to the manufacturer`s documentation. If the printer is connected to a serial port, verify that the cable supports hardware flow control. A NULL modem adapter supports this. The following table shows the pin configuration for NULL modem cables.
|
See the printer documentation for the correct settings.
Use the printer's self-test feature, if the printer has one. Check the printer documentation for information about printer self-testing.
If the baud settings are not the same for both the computer and the printer, sometimes nothing will print, but more often you get incorrect output. For instructions, see How to Troubleshoot Incorrect Output.
print-client# ping print-server print-server is alive print-server# ping print-client print-client not available
If the message says the system is alive, you know you can reach the system, so the network is all right. The message also tells you that either a naming service or the local /etc/hosts file has translated the host (system) name you entered into an IP address; otherwise, you would need to enter the IP address.
If you get a not available message, try to answer the following questions: How is NIS set up at your site? Do you need to take additional steps so that print servers and print clients can communicate with one another? If your site is not running NIS, have you entered the IP address for the print server in each print client's /etc/hosts file, and entered all print client IP addresses in the /etc/hosts file of the print server?
# echo "lpr.debug /var/tmp/lpr.debug" >>/etc/syslog.conf
Note - The white space between lpr.debug and /var/tmp/lpr.debug must be a tab.
# touch /var/tmp/lpr.debug
# svcadm restart system.log
This procedure uses the printer luna as an example of checking basic LP print service functions.
Use the lpstat command.
$ lpstat -r scheduler is running
A message is displayed, indicating whether the LP scheduler is running.
Use the svcs command.
$ svcs application/print/server
The following output is displayed if the scheduler is running.
STATE STIME FMRI online Oct_24 svc:/application/print/server:default
The following output is displayed if the scheduler is not running.
STATE STIME FMRI disabled 14:27:48 svc:/application/print/server:default
Use the lpsched command.
# /usr/lib/lpsched Print services started.
A message is displayed, indicating the print services have been started.
Use the svcadm command.
# svcadm enable application/print/server
When you use the svcadm command, no message indicating whether the print services have been started is displayed. To determine if the print services are online, run the svcs application/print/server command again.
If you have trouble starting the scheduler, see How to Unhang the LP Print Service.
# lpstat -a mars accepting requests since Jan 12 14:23 2004 luna not accepting requests since Jan 12 14:23 2004 unknown reason
This command verifies that the LP system is accepting requests for each printer configured for the system.
# accept luna
The specified printer now accepts requests.
# lpstat -p luna printer luna disabled since Jan 12 14:25 2004. available. unknown reason
This command displays information about printer status. You can omit the printer name to obtain information about all printers set up for the system. The following example shows a printer that is disabled.
# enable luna printer "luna" now enabled.
The specified printer is enabled to process print requests.
# lpstat -t scheduler is running system default destination: luna device for luna: /dev/term/a
The message device for printer-name shows the port address. Is the cable connected to the port to which the LP print service says is connected? If the port is correct, skip to Step 5.
# chown lp device-filename
This command assigns the special user lp as the owner of the device file. In this command, device-filename is the name of the device file.
# chmod 600 device-filename
This command allows only superuser, lp, or an equivalent role to access the printer port device file.
# lpstat -p luna -l printer luna is idle. enabled since Jan 12 14:24 2004. available Content types: postscript Printer types: PS
The above example shows a PostScript printer that is configured properly, and that is available to process print requests. If the printer type and file content type are correct, skip to Step 6.
# lpadmin -p printer-name -T printer-type -I file-content-type
# lpadmin -p printer-name -F continue
This command instructs the LP print service to continue if it is waiting because of a fault.
# enable printer-name
# lpadmin -p printer-name -A 'write root'
This command instructs the LP print service to set a default policy of writing root, sending the printer fault message to the terminal on which root is logged in, if the printer fails. This might help you get quick notification of faults as you try to fix the problem.
Note - It is easy to mistakenly set up a printer as a login terminal, so be sure to check this possibility even if you think it does not apply.
# ps -ef root 169 167 0 Apr 04 ? 0:08 /usr/lib/saf/listen tcp root 939 1 0 19:30:47 ? 0:02 /usr/lib/lpsched root 859 858 0 19:18:54 term/a 0:01 /bin/sh -c \ /etc/lp /interfaces/luna luna-294 rocket!smith “passwd\n## #
In the output from this command, look for the printer port entry. In the above example, port /dev/term/a is set up incorrectly as a login terminal. You can tell by the "passwd\n## information at the end of the line. If the port is set correctly, skip the last steps in this procedure.
# cancel request-id
In this command, request-id is the request ID number for a print request to be canceled.
# lpadmin -p printer-name -h
If you do not find the source of the printing problem in the basic LP print service functions, continue to one of the following procedures for the specific client/server case that applies.
For instructions on checking basic functions, see How to Check the Basic Functions of the LP Print Service. Make sure that the printer works locally before trying to figure out why nothing prints when a request is made from a print client.
On the print client, the printer has to be enabled and accepting requests before any request from the client will print.
Note - For most of the following steps, you must be logged in as root or lp.
# lpstat -t luna scheduler is running system default destination: luna device for luna: /dev/term/a luna accepting requests since Jan 12 14:26 2004 printer luna now printing luna-314. enabled since Jan 12 14:26 2004. available. luna-129 root 488 Jan 12 14:32 #
The above example shows a print server up and running.
An incorrect printer type might cause incorrect output. For example, if you specify printer type PS and the pages print in reverse order, try printer type PSR. (These type names must be in uppercase.) Also, an incorrect printer type might cause missing text, illegible text, or text with the wrong font. To determine the printer type, examine the entries in the terminfo database. For information on the structure of the terminfo database, see Printer Type.
$ lpstat -p luna -l printer luna is idle. enabled since Thu Jul 12 15:02:32 ... Form mounted: Content types: postscript Printer types: PS Description: Connection: direct Interface: /usr/lib/lp/model/standard After fault: continue Users allowed: (all) Forms allowed: (none) Banner not required Character sets: Default pitch: Default page size: 80 wide 66 long Default port settings: $
# lpstat -p printer-name -T printer-type
On the print client, the printer type should be unknown. On the print server, the printer type must match a terminfo entry that is defined to support the model of printer you have. If there is no terminfo entry for the type of printer you have, see How to Add a terminfo Entry for an Unsupported Printer.
File content types specified for a printer indicate the types of files the printer can print directly without filtering. An incorrect file content type causes filtering to be bypassed when it might be needed.
On the print client, the file content type should be any, unless you have good reason to specify one or more explicit content types. If a content is specified on the client, filtering is done on the print client, rather than the print server. In addition, content types on the client must match the content types specified on the print server, which in turn must reflect the capabilities of the printer.
The names you use to refer to these types of files do not have to match the names used by the manufacturer. However, the names you use must agree with the names used by the filters known to the LP print service.
# lpadmin -p printer-name -I file-content-type(s)
Run this command on either the print client, or print server, or both, as needed. Try -I any on the print client, and -I "" on the print server. The latter specifies a null file content type list, which means an attempt should be made to filter all files, because the printer can directly print only files that exactly match its printer type.
This combination is a good first choice when files are not printing. If it works, you might want to try specifying explicit content types on the print server to reduce unnecessary filtering. For a local PostScript printer, you should use postscript, or postscript,simple, if the printer supports these types. Be aware that PS and PSR are not file content types; they are printer types.
If you omit -I, the file content list defaults to simple. If you use the -I option and want to specify file content types in addition to simple, simple must be included in the list.
When specifying multiple file content types, separate the names with commas. Or you can separate names with spaces and enclose the list in quotation marks. If you specify any as the file content type, no filtering will be done and only file types that can be printed directly by the printer should be sent to it.
If a user submits a print request to a PostScript printer with the lp -T PS command, no filtering is done. Try submitting the request with the lp -T postscript command to force filtering, which might result in the downloading of non-resident fonts needed by the document.
Note - If a printer is connected to a parallel or USB port, the baud setting is irrelevant.
# stty -a < /dev/term/a speed 9600 baud; rows = 0; columns = 0; ypixels = 0; xpixels = 0; eucw 1:0:0:0, scrw 1:0:0:0 intr = ^c; quit = ^|; erase = ^?; kill = ^u; eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v; parenb -parodd cs7 -cstopb -hupcl cread -clocal -loblk -parext -ignbrk brkint -ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc ixon -ixany -ixoff imaxbel isig icanon -xcase echo echoe echok -echonl -noflsh -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3 #
This command shows the current stty settings for the printer port.
The following table shows the default stty options used by the LP print service's standard printer interface program.
|
# lpadmin -p printer-name -o "stty= options"
Use the following table to choose stty options to correct various problems affecting print output.
|
You can change more than one option setting by enclosing the list of options in single quotation marks and separating each option with spaces. For example, suppose the printer requires you to enable odd parity and set a 7-bit character size. You would type a command similar to that shown in the following example:
# lpadmin -p neptune -o "stty='parenb parodd cs7'"
The stty option parenb enables parity checking/generation, parodd sets odd parity generation, and cs7 sets the character size to 7 bits.
# lp -d printer-name filename
# svcadm disable /application/print/server
# svcadm enable /application/print/server
The LP print service should restart. If you are having trouble restarting the scheduler, see How to Restart the Print Scheduler.
This task includes a number of procedures to use when a printer appears idle but it should not be. It makes sense to try the procedures in order, but the order is not mandatory.
# lpstat -p printer-name
The information displayed shows whether the printer is idle or active, enabled or disabled, or available or not accepting print requests. If everything looks all right, continue with other procedures in this section. If you cannot run the lpstat command, see How to Unhang the LP Print Service.
# accept printer-name
The printer begins to accept requests into its print queue.
# enable printer-name
This command re-enables the printer so that it will act on the requests in its queue.
Check for print filtering by using the lpstat -o command.
$ lpstat -o luna luna-10 fred 1261 Mar 12 17:34 being filtered luna-11 iggy 1261 Mar 12 17:36 on terra luna-12 jack 1261 Mar 12 17:39 on terra $
See if the first waiting request is being filtered. If the output looks like the above example, the file is being filtered; the printer is not hung, it just is taking a while to process the request.
Depending on how printer fault alerts have been specified, messages might be sent to root by email or written to a terminal on which root is logged in.
# enable printer-name
If a request was blocked by a printer fault, this command will force a retry. If this command does not work, continue with other procedures in this section.
# reject printer-name
print-client# ping print-server print-server is alive
If you receive the message print-server not available, you might have a network problem.
# accept printer-name
# enable printer-name
# reject printer-name
# more /var/lp/logs/lpsched
The information displayed might help you pinpoint what is preventing the print requests from the print client to the print server from being printed.
# accept printer-name
# enable printer-name
# lpstat -p printer-name
Users will see conflicting status messages when the print client is accepting requests, but the print server is rejecting requests.
# lpstat -p -l printer-name
Look at the definitions of the print job components, like print filters, character sets, print wheels, and forms, to be sure they are the same on both the client and server systems so that local users can access printers on print server systems.