Document Information
Preface
1. Introduction to Printing in the Solaris Operating System
2. Planning for Printing in the Solaris Operating System (Tasks)
3. Setting Up Printing Services (Tasks)
4. Setting Up Printers (Tasks)
5. Administering Printers by Using Solaris Print Manager and LP Print Commands (Tasks)
6. Administering Printers That Use Network Printing Protocols (Tasks)
7. Customizing Printing Services and Printers (Tasks)
8. Administering Character Sets, Filters, Forms, and Fonts (Tasks)
9. Administering Printers by Using the PPD File Management Utility (Tasks)
10. Setting Up and Administering Printers From the Desktop (Tasks)
11. Printing in the Solaris Operating System (Reference)
12. Troubleshooting Printing Problems (Tasks)
Tips on Troubleshooting Printer Setup Problems
Tips on Troubleshooting Printing Problems
A. Using the Internet Printing Protocol
Glossary
Index
|
Troubleshooting Printing Problems
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
Troubleshooting No Printer Output
This task includes the following troubleshooting procedures to try when you submit a
print request to a printer and nothing prints:
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.
How to Check the Printer Hardware
- Check that the printer is plugged in and turned on.
- Check that the cable is connected to the port on the printer and
to the port on the system or server.
- Make sure that the cable is the correct cable and that it is
not defective.
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. |
Host |
Printer |
Mini-Din-8 |
25-Pin
D-sub |
25-Pin D-sub |
- |
1 (FG) |
1(FG) |
3(TD) |
2(TD) |
3(RD) |
5(RD) |
3(RD) |
2(TD) |
6(RTS) |
4(RTS) |
5(CTS) |
2(CTS) |
5(CTS) |
4(RTS) |
4(SG) |
7(SG) |
7(SG) |
7(DCD) |
6(DSR), 8(DCD) |
20(DTR) |
1(DTR) |
20(DTR) |
6(DSR), 8(DCD) |
- Check that any hardware switches for the ports are set properly.
See the printer documentation for the correct settings.
- Check that the printer is operational.
Use the printer's self-test feature, if the printer has one. Check the printer
documentation for information about printer self-testing.
- Check that the baud settings for the computer and the printer are correct.
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.
How To Check the Printer Network Connections
- Check that the network link between the print server and the print client
is set up correctly.
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 or 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 or 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?
How to Debug Printing Problems
- On the system that you want to debug remote printing problems, become superuser
or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
- Type the following command:
# 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.
- Create the lpr.debug file.
# touch /var/tmp/lpr.debug
- Restart the syslog service.
# svcadm restart system.log
How to Check the Basic Functions of the LP Print ServiceThis procedure uses the printer luna as an example of checking basic LP
print service functions.
- On the print server, make sure that the LP print service is running.
- Check whether the LP scheduler is running by using one of the following
methods.
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
- If the scheduler is not running, become superuser, lp, or assume an equivalent role.
Start the scheduler by using one of the following methods.
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.
- On both the print server and print client, make sure that the printer
is accepting requests.
- Check that the printer is accepting requests.
# 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.
- If the printer is not accepting requests, become superuser, lp, or assume an
equivalent role, and allow the printer to accept print requests.
# accept luna The specified printer now accepts requests.
- On both the print server and print client, make sure that the printer
is enabled to print submitted print requests.
- Check that the printer is enabled.
# 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.
- If the printer is disabled, become superuser, lp, or assume an equivalent
role, and enable the printer.
# enable luna
printer "luna" now enabled. The specified printer is enabled to process print requests.
- On the print server, make sure that the printer is connected to the
correct serial port.
- Check that the printer is connected to the correct serial port.
# 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.
- Become superuser, lp, or assume an equivalent role.
- Change the file ownership of the device file that represents the port.
# 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.
- Change the permissions on the printer port device file.
# chmod 600 device-filename This command allows only superuser, lp, or an equivalent role to access the
printer port device file.
- On both the print server and print client, make sure that the printer
is configured properly.
- Check that the printer is configured properly.
# 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.
- If the printer type or file content type is incorrect, try setting the
print type to unknown and the content type to any on the print
client.
# lpadmin -p printer-name -T printer-type -I file-content-type
- On the print server, make sure that the printer is not faulted.
- Check that the printer is not waiting because of a printer fault.
# lpadmin -p printer-name -F continue This command instructs the LP print service to continue if it is
waiting because of a fault.
- Force an immediate retry by re-enabling the printer.
# enable printer-name
- (Optional) Instruct the LP print service to enable quick notification of printer faults.
# 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.
- Make sure that the printer is not set up incorrectly as a login
terminal.
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.
- Look for the printer port entry in the ps -ef command output.
# 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 the print request(s).
# cancel request-id In this command, request-id is the request ID number for a print request
to be canceled.
- Set the printer port to be a nonlogin device.
# lpadmin -p printer-name -h
- Check the ps -ef command output to verify that the printer port is no
longer a login device.
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.
How to Check Printing From a Solaris Print Client to a Solaris Print Server
- Check the basic functions of the LP print service on the print server,
if you have not done so already.
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.
- Check the basic functions of the LP print service on the print client,
if you have not done so already.
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.
- Make sure that the print server is accessible.
- On the print client, send an “are you there?” request to the print
server.
print-client# ping print-server If you receive the message print-server not available, you might have a network
problem.
- Verify that the print server is operating properly.
# 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.
- If the print server is not operating properly, go back to step 1.
How to Troubleshoot Incorrect Output
- Log in as superuser, lp, or assume an equivalent role.
- Make sure that the printer type is correct.
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.
- On the print server, display the printer's characteristics.
$ 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:
$
- Consult the printer manufacturer's documentation to determine the printer model.
- If the printer type is not correct, change it with Solaris Print Manager's
Modify Printer Properties window, or use the following lpadmin command.
# 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.
- If the banner page prints, but there is no output for the body
of the document, check the file content types.
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.
- Note the information on file content type that was supplied in the previous
step by the lpstat command.
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.
- Consult your printer manufacturer's documentation to determine which types of files the printer
can print directly.
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.
- If the file content type is not correct, change it with Solaris Print
Manager's Modify Printer Properties window, or the following lpadmin command.
# 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.
- Check that the print request does not bypass filtering needed to download fonts.
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.
- Make sure that the stty settings for the printer port are correct.
- Read the printer documentation to determine the correct stty settings for the printer
port.
Note - If a printer is connected to a parallel or USB port, the
baud setting is irrelevant.
- Examine the current settings by using the stty command.
# 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. Option |
Meaning |
-9600 |
Set baud rate to 9600 |
-cs8 |
Set 8-bit bytes |
-cstopb |
Send one
stop bit per byte |
-parity |
Do not generate parity |
-ixon |
Enable XON/XOFF (also known as START/STOP
or DC1/DC3) |
-opost |
Do “output post-processing” using all the settings that follow in this table |
-olcuc |
Do
not map lowercase to uppercase |
-onlcr |
Change line feed to carriage return/line feed |
-ocrnl |
Do not
change carriage returns into line feeds |
-onocr |
Output carriage returns even at column 0 |
-n10 |
No
delay after line feeds |
-cr0 |
No delay after carriage returns |
-tab0 |
No delay after tabs |
-bs0 |
No delay
after backspaces |
-vt0 |
No delay after vertical tabs |
-ff0 |
No delay after form feeds |
- Change the stty settings.
# lpadmin -p printer-name -o "stty= options" Use the following table to choose stty options to correct various problems affecting
print output. stty Values |
Result |
Possible Problem From Incorrect Setting |
110, 300, 600,
1200, 1800, 2400, 4800, 9600, 19200, 38400 |
Sets baud rate to the specified
value (enter only one baud rate) |
Random characters and special characters might be
printed and spacing might be inconsistent |
oddp evenp -parity |
Sets odd parity Sets even parity Sets no parity |
Missing or
incorrect characters appear randomly |
-tabs |
Sets no tabs |
Text is jammed against right margin |
tabs |
Sets tabs
every eight spaces |
Text has no left margin, is run together, or is
jammed together |
-onlcr |
Sets no carriage return at the beginning of line(s) |
Incorrect double spacing |
onlcr |
Sets
carriage return at beginning of line(s) |
The print zigzags down the page |
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.
- Verify that the document prints correctly.
# lp -d printer-name filename
How to Unhang the LP Print Service
- Log in as superuser, lp, or assume an equivalent role.
- Stop the LP print service.
# svcadm disable /application/print/server
- Restart the LP print service.
# 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.
Troubleshooting an Idle (Hung) Printer
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.
How to Check That the Printer is Ready to Print
- Display printer status information.
# lpstat -p printer-name The information displayed shows you 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.
- If the printer is not available (not accepting requests), allow the printer to
accept requests.
# accept printer-name The printer begins to accept requests into its print queue.
- If the printer is disabled, re-enable it.
# enable printer-name This command re-enables the printer so that it will act on the
requests in its queue.
Checking for Print Filtering
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.
How to Resume Printing After a Printer Fault
- Look for a message about a printer fault and try to correct the
fault if there is one.
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.
- Re-enable the printer.
# 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.
How to Send Print Requests to a Remote Printer When Requests in the Local Queue Are Backed Up
- On the print client, stop further queuing of print requests to the print
server.
# reject printer-name
- On the print client, send an “are you there?” request to the print
server.
print-client# ping print-server
print-server is alive If you receive the message print-server not available, you might have a network
problem.
- After you fix the above problem, allow new print requests to be queued.
# accept printer-name
- If necessary, re-enable the printer.
# enable printer-name
How to ReleasePrint Requests That Are Backed Up onthe Print Server
- On the print server, stop further queuing of print requests from any print
client to the print server.
# reject printer-name
- Display the lpsched log file.
# 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.
- After you fix the problem, allow new print requests to be queued.
# accept printer-name
- If necessary, re-enable the printer on the print server.
# enable printer-name
How to Resolve Conflicting Printer Status Messages
- On the print server, verify the printer is enabled and is accepting requests.
# lpstat -p printer-name Users will see conflicting status messages when the print client is accepting requests,
but the print server is rejecting requests.
- On the print server, check that the definition of the printer on the
print client matches the definition of the printer on the print server.
# 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.
|