HP has led the printing industry in providing open source software to support its printers. This makes it really easy to access advanced features of an HP printer in Linux. The difficulty for me was with the terminology:
- CUPS: UNIX printing system. CUPS manages printers and print jobs. Software talks to CUPS, and CUPS talks to a printer.
- HPLIP: HP system for running HP devices. HPLIP creates a CUPS backend to talk with a specific printer. It can also manage scanning, faxing, and copy functions of those printers.
- HPIJS: HP printer driver. Despite the name, it runs some HP laser printers too.
- Foomatic: Connects CUPS to the printer driver (HPIJS in this case), using a PPD file.
- PPD file: A Postscript Printers Description file, which describes a postscript printer to CUPS. Despite the name, it appears that non-postscript printers also need PPD files to work with CUPS.
Before the printer will work, all these components need to be installed and working. These commands should pull in all the necessary packages:
aptitude install cupsys cupsys-bsd aptitude install hplip hplip-ppds aptitude install foomatic-db-hpijs
Then setup the printer using cups and the hplip backend:
- Go to http://localhost:631
- Select Manage Printers
- Select Add Printer
- Select the hp device backend for your printer, not the USB or parallel backends. The URI should start “hp:”.
- Select the HPIJS driver (PPD) for your printer. If you installed the hplip-ppds, your specific printer should be listed.
- Print a test page.
- Once CUPS sees your printer, you can use hp-toolbox to access your printers advanced features. hp-toolbox can not see your printer if CUPS can’t see it.
Tips for solving problems:
- Does “cat /proc/bus/usb/devices” show your printer? Check your USB connection.
- Does “hp-probe” show your printer?
- Does “hp-info” show correct information about your printer?
- Does “hp-toolbox” see your printer?
- Check that CUPS is set up to use the HPLIP queue.
- If you increase the log level to “debug” in /etc/cups/cupsd.conf and restart cupsys, do you get any better error messages in /var/log/cups/error_log?
- CUPS has the habit of outputting lines of useless messages after it describes the true cause of the error.
- Read /usr/share/doc/hplip/README.Debian.gz