====== CUPS' error_log FAQ ======
===== General Questions =====
==== In which **forum** should I ask CUPS-related questions? ====
Either you can use Forum: [[http://forums.openprinting.org/list.php?19|General Discussion]] or for better results
try the [[http://forums.openprinting.org/|forum]] related to your specific printer
manufacturer.
Better is to discuss on the [[http://www.cups.org/newsgroups.php|CUPS mailing list/newsgroups]] on the [[http://www.cups.org/|CUPS web site]].
==== What is the error log? ====
This is a file where CUPS writes information about what it is doing.
Almost all printing problems can be diagnosed from the error log, so it is the first
place to look to start solving problems. To be useful, you much change the logging level.
If you are not using CUPS for printing, this information will not be useful
to you.
==== What is the name of the CUPS error log? ====
**''error_log''**
==== Where is the error_log? ====
It is usually located in **''/var/log/cups/''**
===== Enabling Logging =====
==== How come the **''error_log''** doesn't show much information? ====
In the default configuration, there is not enough logging information
to deal with printing failures. Change the **''LogLevel''**
to **''debug''**.
==== How do I change the logging level? ====
You must edit a file **''cupsd.conf''**, usually located in**''/etc/cups''**. Search for the line **''LogLevel''** and change it to**''debug''**. Most printing problems can be solved with just **debug**.
Using **''debug2''** is not helpful because it logs information not
necessarily related to printing. It also make it more difficult to read
the error log.
==== After enabling Logging, why are no more error reported to the error_log file? ====
You must restart cupsd.**''killall -HUP cupsd''**.
\\
===== CUPS Log Errors =====
==== Why are there no references to ghostscript in the log? ====
If you have a non-postscript printer, you should see log messages
relating to the use of ghostscript. If there are non, you have failed to
install foomatic-rip or foomatic-gswrapper.
CUPS error_log message relating to ghostscript.
[06/Feb/2003:18:46:20 -0500] [Job 44] foomatic-gswrapper: \
gs '-dBATCH' '-dPARANOIDSAFER' '-dQUIET' '-dNOPAUSE' '-sDEVICE=ijs' \
'-sIjsServer=hpijs' '-sDeviceManufacturer=HEWLETT-PACKARD' \
'-sDeviceModel=DESKJET 540' '-dDEVICEWIDTHPOINTS=612' \
'-dDEVICEHEIGHTPOINTS=792' '-r300' \
'-sIjsParams=Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=1' \
'-dIjsUseOutputFD' '-sOutputFile=| cat >&3' '/dev/fd/0' 3>&1 1>&2
The solution is to do the installation again, and pay special attention
to the script installation section.
====**''cupsd: Child exited with status 1!''** ====
Try running cupsd as root.
====**''unable to evaluate datablob''** ====
Check permissions on the spool directory.
====**''cupsdoprint: relocation error: cupsdoprint: undefined symbol: strlcpy''** ====
Upgrading to KDE3.1 (the ASPlinux packages).
====**''Warning - hp_psc_950: Bad printcap entry - missing 'sd' or 'client'''** ====
If this error is from trying to print with lpr, you have probably installed
CUPS on top of another spooler (lpd,lpq, or lprng) and the lpr command is not
the CUPS version.
====**''/usr/local/sbin/lpdomatic: unable to evaluate datablob''** ====
This problem can also happen when one uses LPRng and sets up the**''/etc/printcap''** for an lpdomatic queue as described for stock LPD on[[:openprinting:database:lpddocumentation|LPDDocumentation]]
To solve the problem the **''/etc/printcap''** has to be set up as described for
LPRng on the mentioned page and the accounting information has to be
removed from the printer description file. Or one re-downloads the
printer description file.
====**''media tray empty''** ====
This error is most often associated with HP printers.
If you see this warning in the **''/var/log/cups/error_log''** file or in any
status messages of the printer, this does not necessarily prevent the
printer from working. Many USB-connected Epson inkjets give this message
with CUPS as well, and they print without problems.
If your printer does not print, there is perhaps something else wrong.
Please follow the steps on [[http://www.cups.org/cups-help.html|the cups help page.]]
Here is the analysis of what is happening.
1. The error code 18 is returned by a system call to ioctl. This
is the true return value of ioctl (it hasn't been mangled by cups).
2. Error code 18 means **media tray empty** AND **printer offline**,
which clearly
is not correct since the output printed. All that this code fragment does
is compare the returned status with a couple of error symbols and prints
an appropriate error message. It doesn't in any way affect what happens to
the job processing. The error code is actually a bitvector, so the code
should be using all "if" statements instead of the "else if" statements
when comparing to the bitmask symbols.
3. In the CUPS interface, just above this bogus error
message, is a message that states **''printer on line and ready''**. Something
other than this code fragment generated that message.
4. This code fragment is surrounded by compiler directives such that it
only compiles if being compiled for a GNU/Linux system because, as the comment
suggests, some Linux kernels don't like to query the USB while sending
data. Maybe my Linux kernel is not one of these? I wonder if I can just
comment this whole section out, recompile, and forget about it, letting
whatever gave me the correct message (item 3) do its thing. I will try
printing while there really is no paper in the media tray and see if this
gives me the correct error message. If so, I'll just remove this code
fragment and let life go on.
The error appears to be returned because the printer generates false
error messages when it is under heavy load (i.e. when it is printing).
It is unknown why the printer controller does this, but it appears
completely harmless.
====**''[Job 28] /usr/lib/cups/filter/foomatic-rip: No such file or directory''** ====
Looks like you need to install the filter at **''/usr/lib/cups/filter/foomatic-rip''**
Read the appropriate instructions on[[:openprinting:database:cupsdocumentation|CUPSDocumentation]]
====**''"/usr/local/var/spool/cups/d00032-001" - Permission denied''** ====
This is almost always a permissions problem with the printer
spool directory, or with one of its subdirectories. Even though**''cupsd''** runs with root user
privelages, it reads and writes the spool with a non-root **''UID''**
and **''GID''**.
The **''UID''** and **''GID''** are configurable in **''cupsd.conf''**.
The permissions on the spool directory should look something like this.**''drwxr-sr-x''** with a UID/GID matching those in cupsd.conf.
====**''Denying user "" access to printer?''** ====
There is an option in **''/etc/cups/printers.conf''** called**''AllowUser All''**, which may not work all the time. There are two workarounds. Try commenting out all lines that begin with **''AllowUser''** including the line **''AllowUser All''**. If that doesn't work, then the other workaround is
too allow each user access to the printer.**''lpadmin -p printername -u allow:root''** To add many users at once,
lpadmin -p printername -u allow:root,username1,username2,...
====**''/usr/bin/foo2zjs-wrapper: line 141: gs: command not found''**? ====
Your ghostscript be found. Please install ghostscript.
====**''Unable to convert file 0 to printable format for job 4!''** ====
This is caused by not having the **''pstoraster''**
filter included in ESP GhostScript, or not having applied the GhostScript patches in
the **''pstoraster''** directory of the GNU GhostScript sources. You need to
install ESP GhostScript or the patch starting with CUPS 1.1.15.
It may also be necessary to compile ESP GhostScript against your current
version of CUPS.
====**''Couldn't exec foomatic-gswrapper -q''**? ====
Make sure **''/usr/local/bin/foomatic-gswrapper''** has execution
permissions. If necessary, **''chmos a+rx /usr/local/bin/foomatic-gswrapper''**.
==== Error: /invalidfont in findfont? ====
Install GhostScript fonts.
==== YOU DO NOT HAVE YOUR FONTS INSTALLED!!? ====
Install GhostScript fonts.
====**''server-error-service-unavailable''**? ====
This may be a permissions problem in the spool directory.
====**''sh: line 1: hpijs: command not found''** ====
Your hpijs program cannot be found. Make sure **''hpijs''** exists,
and is executable.
====**''Can't find initialization file gs_init.ps''**? ====
This is a ghostscript configuration problem. The **''gs''** executable file
can't find the ghostscript directory. it's possible that the path it's wrong.
Execute the command **''gs -?''**
and in the last lines of the output is the ghostscript directory path.
If the actual GhostScript path is different than the current path, you'll need
to change the path.
Alternatively, you can try moving the **''gs_init.ps''** file, or symlinking it.
It is usually located in /usr/share/ghostscript or /usr/local/share/ghostscript.
To find out exactly where the **''gs''** executable expects **''gs_init.ps''** to be,
try using strace or similar program.
====**''Unknown device: ijs''**? ====
Your version of GhostScript does not have the "ijs" driver
compiled in. This driver is necessary for HPIJS to work.
====**''cat: write error: Broken pipe''**? ====
It looks like the [[http://pnm2ppa.sf.net/|pnm2ppa]] is not
installed. See the "^^^^^" above) What does "which pnm2ppa" say?