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.
It is usually located in
In the default configuration, there is not enough logging information
to deal with printing failures. Change the
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.
debug2 is not helpful because it logs information not
necessarily related to printing. It also make it more difficult to read
the error log.
You must restart cupsd.
killall -HUP cupsd.
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.
Try running cupsd as root.
Check permissions on the spool directory.
Upgrading to KDE3.1 (the ASPlinux packages).
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.
This problem can also happen when one uses LPRng and sets up the
/etc/printcap for an lpdomatic queue as described for stock LPD onLPDDocumentation
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.
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.
Looks like you need to install the filter at
Read the appropriate instructions onCUPSDocumentation
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
GID are configurable in
The permissions on the spool directory should look something like this.
drwxr-sr-x with a UID/GID matching those in cupsd.conf.
There is an option in
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,...
Your ghostscript be found. Please install ghostscript.
This is caused by not having the
filter included in ESP GhostScript, or not having applied the GhostScript patches in
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.
/usr/local/bin/foomatic-gswrapper has execution
permissions. If necessary,
chmos a+rx /usr/local/bin/foomatic-gswrapper.
Install GhostScript fonts.
Install GhostScript fonts.
This may be a permissions problem in the spool directory.
Your hpijs program cannot be found. Make sure
and is executable.
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
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.
Your version of GhostScript does not have the “ijs” driver compiled in. This driver is necessary for HPIJS to work.
It looks like the pnm2ppa is not installed. See the “^^^^^” above) What does “which pnm2ppa” say?