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 /var/log/cups/
In the default configuration, there is not enough logging information to deal with printing failures. Change the LogLevel to debug.
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.
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 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.
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 /usr/lib/cups/filter/foomatic-rip Read the appropriate instructions on CUPSDocumentation
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.
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,...
Your ghostscript be found. Please install ghostscript.
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.
Make sure /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 hpijs exists, 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 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.
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?