- 1 CUPS' error_log FAQ
- 1.1 General Questions
- 1.2 Enabling Logging
- 1.3 CUPS Log Errors
- 1.3.1 Why are there no references to ghostscript in the log?
- 1.3.2 cupsd: Child exited with status 1!
- 1.3.3 unable to evaluate datablob
- 1.3.4 cupsdoprint: relocation error: cupsdoprint: undefined symbol: strlcpy
- 1.3.5 Warning - hp_psc_950: Bad printcap entry - missing 'sd' or 'client'
- 1.3.6 /usr/local/sbin/lpdomatic: unable to evaluate datablob
- 1.3.7 media tray empty
- 1.3.8 [Job 28] /usr/lib/cups/filter/foomatic-rip: No such file or directory
- 1.3.9 "/usr/local/var/spool/cups/d00032-001" - Permission denied
- 1.3.10 Denying user "" access to printer?
- 1.3.11 /usr/bin/foo2zjs-wrapper: line 141: gs: command not found?
- 1.3.12 Unable to convert file 0 to printable format for job 4!
- 1.3.13 Couldn't exec foomatic-gswrapper -q?
- 1.3.14 Error: /invalidfont in findfont?
- 1.3.15 YOU DO NOT HAVE YOUR FONTS INSTALLED!!?
- 1.3.16 server-error-service-unavailable?
- 1.3.17 sh: line 1: hpijs: command not found
- 1.3.18 Can't find initialization file gs_init.ps?
- 1.3.19 Unknown device: ijs?
- 1.3.20 cat: write error: Broken pipe?
CUPS' error_log FAQ
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?
Where is the error_log?
It is usually located in /var/log/cups/
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 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 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 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.
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 pnm2ppa is not installed. See the "^^^^^" above) What does "which pnm2ppa" say?