If you're trying to solve a printing problem, and have read this document before, you may wish to skip down to the Basic Troubleshooting section.
Printing, in its basic form, is a very simple operation. The computer sends a print job (just a technical term for what you are sending to the printer) to the printer which processes the job and prints it. In its simplest form the printer is attached directly to the computer which allows one printer per computer. On the next level of complexity there is one printer on a Local Area Network (LAN) and all the computers can submit jobs to it. This is referred to as "remote" printing which is not as efficient as having one printer per computer, but it is much more economical. Some computer platforms, suck as the Macintosh (MAC) handle remote printing very well. This is because they use their own proprietary protocol (think of a proprietary protocol as a private language) to communicate with the printer. Unfortunately, this becomes a serious problem when you have different computer platforms each trying to talk to the printer in with their own proprietary protocol. This situation is known as an heterogeneous environment and providing printing services within one is not a trivial task. The Technical staff of CK:P has been asked to implement an heterogeneous printing environment. In order to understand the problems and solutions the three major platforms and components are discussed below.
The MAC environment is the simplest. Print jobs can be submitted to a local printer connected directly to the MAC or it can print remotely by using AppleTalk. The printer must be PostScript and capable of communicating using the AppleTalk protocol.
The second component is printing via a Unix platform. Unix uses the daemon lpd (a daemon is any process that run continuously in the background) to submit any print jobs to the appropriate printer. Lpd reads the file /etc/printcap to determine where to send the print job based on the printer name. The printer may be attached directly to the Unix box via a serial or parallel port or it may be a remote printer on the LAN. In the event of a remote printer the printer must be attached to a print server. The print server acts as a interface to the LAN, and in the case of Unix and it must use the TCP/IP protocol. Some possible print servers are another Unix box, PCs, or JetDirect Cards.
PC printing is the most complex component of the three. While PCs can easily print to a local printer via the serial or parallel port it is usually much more complex to print to a remote printer. However, there are a number of solutions and advances in networking technology is making it easier. Two ways of using a PC to print remotely are:
In order to make sure that all computers on any one network can access a printer several minimum requirements need to be met:
The most important concept is that unless the network is solely Macs, some form of a print server is necessary.
When building new networks or adding a printer to an existing one CK:P uses at least one of the defined requirements for each method of printing. This is, of course, dependent upon the availability of those platforms. Using Schenley as an example, the types of computers that CK:P supports at the site are PCs and Unix Servers.
Referring to the above list of printing methods we find there are methods for printing under both Unix and PCs using TCP/IP. Being that there are no Macs on the network, a printer that can communicate using TCP/IP would be the preferred choice. The HP4P w/Ethernet interface (JetDirect Card) would do the job admirably. By using a HP4P with JetDirect Card the Unix server would communicate to the print server using lpd. The PCs print by sending the job to the Unix server using SAMBA, which in turn, would then submit the jobs to the print server.
This is a basic check list that can be used as a guide for a user administrator when encountering printing problems. Please remember, that knowledge of printing is highly recommended. If you haven't read the introductory material explaining printing, the following checklist will not work for you. Like teachers, the computers know when you haven't done your homework, and will refuse to cooperate if you haven't!
lpr
/etc/printcap
. If it can't then the problem is probably not with the user devices, but with the printer or
server. Go on to the queue management section. restore
. If you have a Print Server:
If you have an Apple printer:
ps auxw | grep cap
. grep cap
) comes back, then cap is not running. Contact your system
administrator. lpr
is the simplest printing tool; it simply tries to print a text file to the default printer. One of the things you
can try when you're having printing troubles is to type lpr /etc/printcap
and see if anything prints out
(/etc/printcap
is just a small text file that should be on any unix server. You can substitute another file if
you like, but /etc/printcap is a good choice because in most cases it will only be one or two pages.) If it does
print out, then you know that your printer and print server, if any, are working, and the problem likely lies
elsewhere. If it doesn't print out, that's a strong suggestion that something is wrong with the print queue. lpq
will show you what items are queued to be printed, their job number, and how large they are. If there
are many small items waiting to be printed, and the job at the "top" of the queue is small also, there is likely a
problem. If the job at the top of the queue is huge, it's possible that the printer is just processing it, and
taking a long time because it's so large; generally there will be some lights blinking on the printer to indicate
that this is what's going on. lprm
removes jobs that are queued on the printer. A user can only remove her or his own jobs; the system
administrator will be able to remove anyone's jobs by using privileges. The argument you give lprm
is the
job number reported by lpq
. So if lpq
told you that the file you wanted to remove was job 312, you
would type: lprm 312
to delete it from the queue. lpc
is a tool used by a privileged user to view, manipulate, and manage the print queues. When you start
lpc
, you will be given a prompt. If you type ?
at the prompt, you'll get a brief summary of all the commands.
The key commands you'll probably use are restart
, to restart a given printer daemon, and clean
to
remove junk files from the queue. Basically, you can try restart printername
(where printername is the
name of your printer) when you have checked all physical connections to the printer, have checked to ensure
that there are no -huge- files waiting to be printed, and printing a small test file fails. If you want to use lpc
,
you should certainly read the man page by typing man lpc
at the unix prompt. Don't worry if you don't
understand all the options -- just try to get the gist of them.
Return to Hardware Information