diff options
Diffstat (limited to 'docs/htmldocs/printingdebug.html')
| -rw-r--r-- | docs/htmldocs/printingdebug.html | 522 | 
1 files changed, 0 insertions, 522 deletions
diff --git a/docs/htmldocs/printingdebug.html b/docs/htmldocs/printingdebug.html deleted file mode 100644 index 0b99407257..0000000000 --- a/docs/htmldocs/printingdebug.html +++ /dev/null @@ -1,522 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML -><HEAD -><TITLE ->Debugging Printing Problems</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-howto-collection.html"><LINK -REL="UP" -TITLE="Optional configuration" -HREF="p1342.html"><LINK -REL="PREVIOUS" -TITLE="Printing Support" -HREF="printing.html"><LINK -REL="NEXT" -TITLE="Security levels" -HREF="securitylevels.html"></HEAD -><BODY -CLASS="CHAPTER" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" -><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="printing.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="securitylevels.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><DIV -CLASS="CHAPTER" -><H1 -><A -NAME="PRINTINGDEBUG" -></A ->Chapter 15. Debugging Printing Problems</H1 -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2081" -></A ->15.1. Introduction</H1 -><P ->This is a short description of how to debug printing problems with -Samba. This describes how to debug problems with printing from a SMB -client to a Samba server, not the other way around. For the reverse -see the examples/printing directory.</P -><P ->Ok, so you want to print to a Samba server from your PC. The first -thing you need to understand is that Samba does not actually do any -printing itself, it just acts as a middleman between your PC client -and your Unix printing subsystem. Samba receives the file from the PC -then passes the file to a external "print command". What print command -you use is up to you.</P -><P ->The whole things is controlled using options in smb.conf. The most -relevant options (which you should look up in the smb.conf man page) -are:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->      [global] -        print command     - send a file to a spooler -        lpq command       - get spool queue status -        lprm command      - remove a job -      [printers] -        path = /var/spool/lpd/samba</PRE -></P -><P ->The following are nice to know about:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->        queuepause command   - stop a printer or print queue -        queueresume command  - start a printer or print queue</PRE -></P -><P ->Example:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->        print command = /usr/bin/lpr -r -P%p %s -        lpq command   = /usr/bin/lpq    -P%p %s -        lprm command  = /usr/bin/lprm   -P%p %j -        queuepause command = /usr/sbin/lpc -P%p stop -        queuepause command = /usr/sbin/lpc -P%p start</PRE -></P -><P ->Samba should set reasonable defaults for these depending on your -system type, but it isn't clairvoyant. It is not uncommon that you -have to tweak these for local conditions.  The commands should -always have fully specified pathnames,  as the smdb may not have -the correct PATH values.</P -><P ->When you send a job to Samba to be printed,  it will make a temporary -copy of it in the directory specified in the [printers] section. -and it should be periodically cleaned out.  The lpr -r option -requests that the temporary copy be removed after printing; If -printing fails then you might find leftover files in this directory, -and it should be periodically cleaned out.  Samba used the lpq -command to determine the "job number" assigned to your print job -by the spooler.</P -><P ->The %>letter< are "macros" that get dynamically replaced with appropriate -values when they are used. The %s gets replaced with the name of the spool -file that Samba creates and the %p gets replaced with the name of the -printer. The %j gets replaced with the "job number" which comes from -the lpq output.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2097" -></A ->15.2. Debugging printer problems</H1 -><P ->One way to debug printing problems is to start by replacing these -command with shell scripts that record the arguments and the contents -of the print file. A simple example of this kind of things might -be:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->	print command = /tmp/saveprint %p %s - -    #!/bin/saveprint -    # we make sure that we are the right user -    /usr/bin/id -p >/tmp/tmp.print -    # we run the command and save the error messages -    # replace the command with the one appropriate for your system -    /usr/bin/lpr -r -P$1 $2 2>>&/tmp/tmp.print</PRE -></P -><P ->Then you print a file and try removing it.  You may find that the -print queue needs to be stopped in order to see the queue status -and remove the job:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->
h4: {42} % echo hi >/tmp/hi -h4: {43} % smbclient //localhost/lw4 -added interface ip=10.0.0.4 bcast=10.0.0.255 nmask=255.255.255.0 -Password:  -Domain=[ASTART] OS=[Unix] Server=[Samba 2.0.7] -smb: \> print /tmp/hi -putting file /tmp/hi as hi-17534 (0.0 kb/s) (average 0.0 kb/s) -smb: \> queue -1049     3            hi-17534 -smb: \> cancel 1049 -Error cancelling job 1049 : code 0 -smb: \> cancel 1049 -Job 1049 cancelled -smb: \> queue -smb: \> exit</PRE -></P -><P ->The 'code 0' indicates that the job was removed.  The comment -by the  smbclient is a bit misleading on this. -You can observe the command output and then and look at the -/tmp/tmp.print file to see what the results are.  You can quickly -find out if the problem is with your printing system.  Often people -have problems with their /etc/printcap file or permissions on -various print queues.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2106" -></A ->15.3. What printers do I have?</H1 -><P ->You can use the 'testprns' program to check to see if the printer -name you are using is recognized by Samba.  For example,  you can -use:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->    testprns printer /etc/printcap</PRE -></P -><P ->Samba can get its printcap information from a file or from a program. -You can try the following to see the format of the extracted -information:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->    testprns -a printer /etc/printcap - -    testprns -a printer '|/bin/cat printcap'</PRE -></P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2114" -></A ->15.4. Setting up printcap and print servers</H1 -><P ->You may need to set up some printcaps for your Samba system to use. -It is strongly recommended that you use the facilities provided by -the print spooler to set up queues and printcap information.</P -><P ->Samba requires either a printcap or program to deliver printcap -information.  This printcap information has the format:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->  name|alias1|alias2...:option=value:...</PRE -></P -><P ->For almost all printing systems, the printer 'name' must be composed -only of alphanumeric or underscore '_' characters.  Some systems also -allow hyphens ('-') as well.  An alias is an alternative name for the -printer,  and an alias with a space in it is used as a 'comment' -about the printer.  The printcap format optionally uses a \ at the end of lines -to extend the printcap to multiple lines.</P -><P ->Here are some examples of printcap files:</P -><P -><P -></P -><OL -TYPE="1" -><LI -><P ->pr              just printer name</P -></LI -><LI -><P ->pr|alias        printer name and alias</P -></LI -><LI -><P ->pr|My Printer   printer name, alias used as comment</P -></LI -><LI -><P ->pr:sh:\        Same as pr:sh:cm= testing -  :cm= \  -  testing</P -></LI -><LI -><P ->pr:sh           Same as pr:sh:cm= testing -  :cm= testing</P -></LI -></OL -></P -><P ->Samba reads the printcap information when first started.  If you make -changes in the printcap information, then you must do the following:</P -><P -></P -><OL -TYPE="1" -><LI -><P ->make sure that the print spooler is aware of these changes. -The LPRng system uses the 'lpc reread' command to do this.</P -></LI -><LI -><P ->make sure that the spool queues, etc., exist and have the -correct permissions.  The LPRng system uses the 'checkpc -f' -command to do this.</P -></LI -><LI -><P ->You now should send a SIGHUP signal to the smbd server to have -it reread the printcap information.</P -></LI -></OL -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2142" -></A ->15.5. Job sent, no output</H1 -><P ->This is the most frustrating part of printing.  You may have sent the -job,  verified that the job was forwarded,  set up a wrapper around -the command to send the file,  but there was no output from the printer.</P -><P ->First,  check to make sure that the job REALLY is getting to the -right print queue.  If you are using a BSD or LPRng print spooler, -you can temporarily stop the printing of jobs.  Jobs can still be -submitted, but they will not be printed.  Use:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->  lpc -Pprinter stop</PRE -></P -><P ->Now submit a print job and then use 'lpq -Pprinter' to see if the -job is in the print queue.  If it is not in the print queue then -you will have to find out why it is not being accepted for printing.</P -><P ->Next, you may want to check to see what the format of the job really -was.  With the assistance of the system administrator you can view -the submitted jobs files.  You may be surprised to find that these -are not in what you would expect to call a printable format. -You can use the UNIX 'file' utitily to determine what the job -format actually is:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->    cd /var/spool/lpd/printer   # spool directory of print jobs -    ls                          # find job files -    file dfA001myhost</PRE -></P -><P ->You should make sure that your printer supports this format OR that -your system administrator has installed a 'print filter' that will -convert the file to a format appropriate for your printer.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2153" -></A ->15.6. Job sent, strange output</H1 -><P ->Once you have the job printing, you can then start worrying about -making it print nicely.</P -><P ->The most common problem is extra pages of output: banner pages -OR blank pages at the end.</P -><P ->If you are getting banner pages,  check and make sure that the -printcap option or printer option is configured for no banners. -If you have a printcap,  this is the :sh (suppress header or banner -page) option.  You should have the following in your printer.</P -><P -><PRE -CLASS="PROGRAMLISTING" ->   printer: ... :sh</PRE -></P -><P ->If you have this option and are still getting banner pages,  there -is a strong chance that your printer is generating them for you -automatically.  You should make sure that banner printing is disabled -for the printer.  This usually requires using the printer setup software -or procedures supplied by the printer manufacturer.</P -><P ->If you get an extra page of output,  this could be due to problems -with your job format,  or if you are generating PostScript jobs, -incorrect setting on your printer driver on the MicroSoft client. -For example, under Win95 there is a option:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->  Printers|Printer Name|(Right Click)Properties|Postscript|Advanced|</PRE -></P -><P ->that allows you to choose if a Ctrl-D is appended to all jobs. -This is a very bad thing to do, as most spooling systems will -automatically add a ^D to the end of the job if it is detected as -PostScript.  The multiple ^D may cause an additional page of output.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2165" -></A ->15.7. Raw PostScript printed</H1 -><P ->This is a problem that is usually caused by either the print spooling -system putting information at the start of the print job that makes -the printer think the job is a text file, or your printer simply -does not support PostScript.  You may need to enable 'Automatic -Format Detection' on your printer.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2168" -></A ->15.8. Advanced Printing</H1 -><P ->Note that you can do some pretty magic things by using your -imagination with the "print command" option and some shell scripts. -Doing print accounting is easy by passing the %U option to a print -command shell script. You could even make the print command detect -the type of output and its size and send it to an appropriate -printer.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2171" -></A ->15.9. Real debugging</H1 -><P ->If the above debug tips don't help, then maybe you need to bring in -the bug guns, system tracing. See Tracing.txt in this directory.</P -></DIV -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="printing.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-howto-collection.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="securitylevels.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Printing Support</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="p1342.html" -ACCESSKEY="U" ->Up</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Security levels</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file  | 
