Contained Within
Find More Documentation
Featured Support Resources
| Download this book in PDF (1611 KB)
Chapter 42 Troubleshooting Printing Problems
This chapter explains how to troubleshoot printing problems that may occur when
you set up or maintain printing services.
This is a list of step-by-step instructions in this chapter.
See Chapter 2, Print Management (Overview) for information about printing and the
LP print service.
Tips on Troubleshooting Printing Problems
Sometimes after setting up a printer, you find that nothing prints. Or, you
may get a little farther in the process: something prints, but it is not what you
expect--the output is incorrect or illegible. Then, when you get past these problems,
other problems may occur, such as:
Note -
Although many of the suggestions in this chapter are relevant to parallel printers,
they are geared toward the more common serial printers.
Troubleshooting No Output (Nothing Prints)
When nothing prints, there are three general areas to check:
-
The printer hardware
-
The network
-
The LP print service
If you get a banner page, but nothing else, this is a special case of incorrect
output. See "Troubleshooting Incorrect Output".
Check the Hardware
The hardware is the first area to check. As obvious as it sounds, you should
make sure that the printer is plugged in and turned on. In addition, you should refer
to the manufacturer's documentation for information about hardware settings. Some
computers use hardware switches that change the characteristics of a printer port.
The printer hardware includes the printer, the cable that connects it to the
computer, and the ports into which the cable plugs at each end. As a general approach,
you should work your way from the printer to the computer. Check the printer. Check
where the cable connects to the printer. Check the cable. Check where the cable connects
to the computer.
Check the Network
Problems are more common with remote print requests--those going from a
print client to a print server. You should make sure that network access between the
print server and print clients is enabled.
If the network is running the Network Information Service Plus (NIS+), see the Solaris Naming Administration Guide for instructions to enable access between systems. If the network
is not running the Network Information Service (NIS) or NIS+, before you set up print
servers and print clients, include the Internet address and system name for each client
system in the /etc/hosts file on the print server. Also, the
Internet address and system name for the print server must be included in the /etc/hosts file of each print client system.
Check the LP Print Service
For printing to work, the LP scheduler must be running on both the print server
and print client. If it is not running, you need to start it using the /usr/lib/lp/lpsched command. If you have trouble starting the scheduler,
see "How to Restart the Print Scheduler".
In addition to the scheduler running, a printer must be enabled and accepting
requests before it will produce any output. If the LP print service is not accepting
requests for a printer, the submitted print requests are rejected. Usually, in that
instance, the user receives a warning message after submitting a print request. If
the LP print service is not enabled for a printer, print requests remain queued on
the system until the printer is enabled.
In general, you should analyze a printing problem as follows:
-
Follow the path of the print request step-by-step.
-
Examine the status of the LP print service at each step.
-
Is the configuration correct?
-
Is the printer accepting requests?
-
Is the printer enabled to process requests?
-
If the request is hanging on transmission, set up lpr.debug in syslog.conf to display the flow.
-
If the request is hanging locally, examine the lpsched log (/var/lp/logs/lpsched).
-
If the request is hanging locally, have notification of
the printer device errors (faults) mailed to you, and re-enable the printer.
The procedures found in "Troubleshooting Printing Problems" use this strategy to
help you troubleshoot various problems with the LP print service.
If basic troubleshooting of the LP print service does not solve the problem,
you need to follow the troubleshooting steps for the specific client/server case that
applies:
Troubleshooting Incorrect Output
If the printer and the print service software are not configured correctly,
the printer may print, but it may provide output that is not what you expect.
Check the Printer Type and File Content Type
If you used the wrong printer type when you set up the printer with the LP print
service, inappropriate printer control characters can be sent to the printer. The
results are unpredictable: nothing may print, the output may be illegible, or the
output may be printed in the wrong character set or font.
If you specified an incorrect file content type, the banner page may print,
but that is all. The file content types specified for a printer indicate the types
of files the printer can print directly, without filtering. When a user sends a file
to the printer, the file is sent directly to the printer without any attempt to filter
it. The problem occurs if the printer cannot handle the file content type.
When setting up print clients, you increase the chance for a mistake because
the file content types must be correct on both the print server and the print client.
If you set up the print client as recommended with any as the file
content type, files are sent directly to the print server and the print server determines
the need for filtering. Therefore, the file content types have to be specified correctly
only on the server.
You can specify a file content on the print client to off-load filtering from
the server to the client, but the content type must be supported on the print server.
Check the stty Settings
Many formatting problems can result when the default stty
(standard terminal) settings do not match the settings required by the printer. The
following sections describe what happens when some of the settings are incorrect.
Wrong Baud Settings
When the baud setting of the computer does not match the baud setting of the
printer, usually you get some output, but it does not look like the file you submitted
for printing. Random characters are displayed, with an unusual mixture of special
characters and undesirable spacing. The default for the LP print service is 9600 baud.
Note -
If a printer is connected by a parallel port, the baud setting is irrelevant.
Wrong Parity Setting
Some printers use a parity bit to ensure that data received for printing has
not been garbled during transmission. The parity bit setting for the computer and
the printer must match. If they do not match, some characters either will not be printed
at all, or will be replaced by other characters. In this case, the output looks approximately
correct; the word spacing is all right and many letters are in their correct place.
The LP print service does not set the parity bit by default.
Wrong Tab Settings
If the file contains tabs, but the printer expects no tabs, the printed output
may contain the complete contents of the file, but the text may be jammed against
the right margin. Also, if the tab settings for the printer are incorrect, the text
may not have a left margin, it may run together, it may be concentrated to a portion
of the page, or it may be incorrectly double-spaced. The default is for tabs to be
set every eight spaces.
Wrong Return Setting
If the output is double-spaced, but it should be single-spaced, either the tab
settings for the printer are incorrect or the printer is adding a line feed after
each return. The LP print service adds a return before each line feed, so the combination
causes two line feeds.
If the print zigzags down the page, the stty option onlcr that sends a return before every line feed is not set. The stty=onlcr option is set by default, but you may have cleared it while trying
to solve other printing problems.
Troubleshooting Hung LP Commands
If you type any of the LP commands (such as lpsystem, lpadmin, or lpstat) and nothing happens (no error message,
status information, or prompt is displayed), chances are something is wrong with the
LP scheduler. Such a problem can usually be resolved by stopping and restarting the
LP scheduler. See "How to Stop the Print Scheduler" for instructions.
Troubleshooting Idle (Hung) Printers
You may find a printer that is idle, even though it has print requests queued
to it. A printer may seem idle when it should not be for one of the following reasons:
Check the Print Filters
Slow print filters run in the background to avoid tying up the printer. A print
request that requires filtering will not print until it has been filtered.
Check Printer Faults
When the LP print service detects a fault, printing resumes automatically, but
not immediately. The LP print service waits about five minutes before trying again,
and continues trying until a request is printed successfully. You can force a retry
immediately by enabling the printer.
Check Network Problems
When printing files over a network, you may encounter the following types of
problems:
Print Requests Backed Up in the Local Queue
Print requests submitted to a print server may back up in the client system
queue for the following reasons:
-
The print server is down.
-
The printer is disabled on the print server.
-
The network between the print client and print server is
down.
-
Underlying network software was not set up properly.
While you are tracking the source of the problem, you should stop new requests
from being added to the queue. See "How to Accept or Reject Print Requests for a Printer" for more information.
Print Requests Backed Up in the Remote Queue
If print requests back up in the print server queue, the printer has probably
been disabled. When a printer is accepting requests, but not processing them, the
requests are queued to print. Unless there is a further problem, once the printer
is enabled, the print requests in the queue should print.
Troubleshooting Conflicting Status Messages
A user may enter a print request and be notified that the client system has
accepted it, then receive mail from the print server that the print request has been
rejected. These conflicting messages may occur for the following reasons:
-
The print client may be accepting requests, while the print server
is rejecting requests.
-
The definition of the printer on the print client might
not match the definition of that printer on the print server. More specifically, the
definitions of the print job components, like filters, character sets, print wheels,
or forms are not the same on the client and server systems.
You should check that identical definitions of these job components are registered
on both the print clients and print servers so that local users can access printers
on the print servers.
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
How to Troubleshoot 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 specific print client/server case that applies. However, if the banner
page prints, but nothing else does, turn to the instructions under "How to Troubleshoot Incorrect Output".
To check the 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 table below shows the pin configuration for NULL modem cables.
Table 42-1 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".
To check the network:
-
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 name 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?
-
(On a SunOS 5.0-5.1 print server only) Check that the listen port monitor is configured correctly.
-
(On a SunOS 5.0-5.1 print server only) Check that the network listen services
are registered with the port monitor on the print server.
To check the basic functions of the LP print service:
This procedure uses the printer luna as an example of checking
basic LP print service functions.
-
On both the print server and print client, make sure that the LP print service
is running.
-
Check whether the LP scheduler is running.
# lpstat -r
scheduler is running
|
-
If the scheduler is not running, become superuser or lp,
and start the scheduler.
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 Jul 12 14:23 1999
luna not accepting requests since Jul 12 14:23 1999
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 or lp,
and allow the printer to accept print requests.
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 Jul 12 14:25 1999.
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 or lp, 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 or lp.
-
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 or lp 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 Jul 12 14:24 1999. 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.
-
(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 may 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).
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.
To check printing from a SunOS 5.8 print client to
a SunOS 5.8 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 "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.
For instructions on checking basic functions, see "To check the basic functions of the LP print service: ".
On the print client, the LP scheduler has to be running, and 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 may have a network problem.
-
On SunOS 5.1 print client only, make sure that the print server is identified
as type s5 by viewing the Modify Printer window in Admintool.
-
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 Jul 12 14:26 1999
printer luna now printing luna-314. enabled since Jul 12 14:26 1999.
available.
luna-129 root 488 Jul 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.
To check printing from a SunOS 5.8 print client to
a SunOS 4.1 print server:
-
Check the basic functions of the LP print service on the print client, if you
have not done so already.
For instructions, see "To check the basic functions of the LP print service: ".
-
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 may have a network problem.
-
Make sure that the lpd daemon on the print server is running.
-
On the print server, verify the lpd daemon is running.
$ ps -ax | grep lpd
126 ? IW 0:00 /usr/lib/lpd
200 p1 S 0:00 grep lpd
$
|
If the lpd daemon is running, a line is displayed, as shown
in the above example. If it is not running, no process information is shown.
-
If lpd is not running on the print server, become superuser
on the print server, and restart it.
-
Make sure that the remote lpd daemon is configured properly.
-
On the print server, become superuser, and invoke the lpc
command.
-
Get LP status information.
lpc> status
luna:
queuing is enabled
printing is enabled
no entries
no daemon present
lpc>
|
Status information is displayed. In the above example, the daemon is not running
and needs to be restarted.
-
If no daemon is present, restart the daemon.
The daemon is restarted.
-
Verify that the lpd daemon has started.
-
Quit the lpc command.
The shell prompt is redisplayed.
-
Make sure that the print client has access to the print server.
-
Check if there is an /etc/hosts.lpd file on the SunOS 4.1
print server.
On a SunOS 4.1 print server, if this file exists, it is used to determine whether
an incoming print request can be accepted. If the file does not exist, all print client
systems have access, so skip steps b and c.
-
If the file exists, see if the print client is listed in the file.
Requests from client systems not listed in the file are not transferred to the
print server.
-
If the client is not listed, add the print client to the file.
Note -
If you get this far without pinpointing the problem, the SunOS 4.1 system is
probably set up and working properly.
-
Make sure that the connection to the remote lpd print daemon
from the print client is made correctly.
-
On the print client, become superuser, and verify the lpsched
daemon is running.
# ps -ef | grep lp
root 154 1 80 Jan 07 ? 0:02 /usr/lib/lpsched
|
The lpsched daemon should be running, as shown in the above
example.
-
Stop the LP print service.
The LP print service is stopped.
-
Restart the LP print service.
The LP print service is restarted.
-
Make sure that the remote print server is identified correctly as a SunOS 4.1
system.
To check printing from a SunOS 4.1 client to a SunOS
5.8 print server:
-
Check the basic functions of the LP print service on the print server, if you
have not done so already.
For instructions, see "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.
Note -
You should be logged in as superuser or lp on the system
specified in the following steps.
-
Make sure that the print client is accessible.
-
On the SunOS 5.8 print server, send an "are you there?" request
to the print client.
print_server# ping print_client
print_client is alive
|
If you receive the message print_client not available, you may have a network problem.
-
On the print client, verify the printer is set up correctly.
# lpr -P luna /etc/fstab
lpr: cannot access luna
#
|
This command shows whether the print client is working. The above example shows
that the print client is not working correctly.
-
Make sure that the lpd daemon is running on the print client.
-
Verify the lpd daemon is running.
# ps -ax | grep lpd
118 ? IW 0:02 /usr/lib/lpd
#
|
This command shows if the lpd daemon is running on the print
client. The above example shows that the daemon is running.
-
On the print client, start the lpd daemon.
-
On the print client, make sure that there is a printcap
entry identifying the printer.
-
Verify the printer is known.
# lpr -P mercury /etc/fstab
lpr: mercury: unknown printer
#
|
The above example shows that the /etc/printcap file does
not have an entry for the specified printer.
-
If there is no entry, edit the /etc/printcap file and add
the following information:
printer-name|print-server:\
:lp=:rm=print-server:rp=printer-name:br#9600:rw:\
:lf=/var/spool/lpd/printer-name/log:\
:sd=/var/spool/lpd/printer-name:
|
The following example shows an entry for printer luna connected
to print server neptune.
luna|neptune:\
:lp=:rm=neptune:rp=luna:br#9600:rw:\
:lf=/var/spool/lpd/luna/log:\
:sd=/var/spool/lpd/luna:
|
-
Create a spooling directory (/var/spool/lpd/printer-name) for the printer.
-
Make sure that the print client lpd is not in a wait state
by forcing a retry.
If the print server is up and responding, the print client lpd
may be in a wait state before attempting a retry.
-
As superuser on the print client, invoke the lpc command.
The lpc> prompt is displayed.
-
Restart the printer.
-
Quit the lpc command.
The shell prompt is redisplayed.
# lpc
lpc> restart luna
luna:
no daemon to abort
luna:
daemon started
# quit
$
|
-
Check the connection to the print server.
-
On the print client, become superuser, and check the printer log file.
# more /var/spool/lpd/luna/log
|
Frequently, no information is displayed.
-
Also check the printer status log.
# more /var/spool/lpd/luna/status
waiting for luna to come up
#
|
-
If the connection is all right, on the print server, verify the print server
is set up correctly.
# lpstat -t
scheduler is running
system default destination: luna
device for luna: /dev/term/a
luna accepting requests since Jul 12 14:29 1999
luna accepting requests since Jul 12 14:29 1999
printer luna is idle. enabled since Jul 12 14:29 1999. available.
#
|
The above example shows a print server that is up and running.
If the print server is not running, go back to Step 1
before continuing.
How to Troubleshoot Incorrect Output
-
Log in as superuser or lp.
-
Make sure that the printer type is correct.
An incorrect printer type may 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 may 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 Mon Jul 12 15:02:32 MDT 1999. available.
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 Admintool's Modify Printer
option, 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 may 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 Admintool's Modify
Printer option, 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 may 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 command lp -T PS, no filtering is done. Try submitting the request with the command lp -T postscript to force filtering, which may 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 by a parallel 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 table below shows the default stty options used by the
LP print service's standard printer interface program.
Table 42-2 Default stty Settings
Used by the Standard 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 table below to choose stty options to correct various
problems affecting print output.
Table 42-3 stty Options to
Correct Print Output Problems
|
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 may be printed
and spacing may 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 or lp.
-
Stop the LP print service.
If this command hangs, press Control-c and proceed to the next step. If this
command succeeds, skip to step 4.
-
Identify the LP process IDs.
# ps -el | grep lp
134 term/a 0:01 lpsched
#
|
Use the process ID numbers (PIDs) from the first column in place of the pid variables in the next step.
-
Stop the LP processes by using the kill -15 command.
This should stop the LP print service processes. If the processes do not stop,
as a last resort go to step 5.
-
As a last resort, terminate the processes abruptly.
All the lp processes are terminated.
-
Remove the SCHEDLOCK file so you can restart the LP print
service.
# rm /usr/spool/lp/SCHEDLOCK
|
-
Restart the LP print service.
The LP print service should restart. If you are having trouble restarting the
scheduler, see "How to Restart the Print Scheduler".
How to Troubleshoot 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.
To check that the printer is ready to print:
-
Display printer status information.
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.
The printer begins to accept requests into its print queue.
-
If the printer is disabled, re-enable it.
This command re-enables the printer so that it will act on the requests in its
queue.
To check 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.
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 may be sent
to root by email or written to a terminal on which root is logged in.
-
Re-enable the printer.
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.
To send print requests to a remote printer when they
back up in the local queue:
-
On the print client, stop further queuing of print requests to the print server.
-
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 may have a network problem.
-
After you fix the above problem, allow new print requests to be queued.
-
If necessary, re-enable the printer.
To free print requests from a print client that back
up in the print server queue:
-
On the print server, stop further queuing of print requests from any print client
to the print server.
-
Display the lpsched log file.
# more /var/lp/logs/lpsched
|
The information displayed may 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.
-
If necessary, re-enable the printer on the print server.
How to Resolve Conflicting Printer
Status Messages
-
On the print server, verify the printer is enabled and is accepting requests.
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.
|