HPLIP

HPLIP (HP Linux Imaging and Printing) provides printer drivers for HP devices. It also includes scanner, fax support as well as service tools for various multi-purpose peripherals.

Do you require HPLIP?
Using HPLIP is recommended for most HP inkjet or laserjet based printers. There may however be devices which work with a default CUPS install, which provides adequate drivers or PPD files.

For some devices the driver is needed because a binary plugin which is installed with the driver is required to be able to use all features of the device (i. e. printing or scanning is not possible without the plugin), to achieve a better printing quality or to speed up printing. See the binary plugins section for more information.

Installation
For printing support, it is recommended to use the new hpcups driver, which you can enable with the hpcups USE flag. The old hpijs driver is still included when you build HPLIP with the hpijs USE flag.

The default install enables dynamically generated ppd files at runtime. Some printers may still require static ppd files. If you encounter problems when using hp-setup try enabling the static-ppds USE flag and rebuild HPLIP.

For USB printers has to be built with the usb USE flag. This way it makes use of the user space tool which replaces kernel usb printer support (CONFIG_USB_PRINTER). In case of problems you can disable the usb USE flag for and activate the kernel functionality again. All users who need to access the printer have to be a member of the lp group.

To be able to set up a network printer has to be built with USE avahi or slp. The 1.6 series of has dropped slp support and one can choose to build it with USE avahi or zeroconf. To be able to print on a network printer HPLIP needs to be built with USE snmp.

For some scanner devices the appropriate sane backend needs to be activated. To find out which backend is required for your device go to the sane projects driver search engine and search for 'HEWLETT-PACKARD' as manufacturer. This provides a list of all supported devices including the required backend. For instance if the device needs the hp backend the following must be added to the portage configuration to build it when installing :

Kernel
USB connected devices require basic kernel USB support.

Network connected devices require basic kernel network support.

The above two methods are usually already enabled within most kernels.

Parallel connected devices require the following kernel options:

Software
Install :

Printers and Faxes
If installed with enabled qt4 USE flag, use the "HP Device Manager" to configure your devices.

Alternatively you can run hp-setup in a terminal:

For network printer also specify the printer's IP address:

Afterwards you should restart the cups daemon:

Scanners
Overall, scanners should just work and will be detected with XSane etc.

Printer
After completing hp-setup you should be provided with the option of printing a test page. You can do this later using the "HP Device Manager" or the CUPS web interface which is located at http://localhost:631/.

Scanner
Use xsane and then press the preview button to ensure the scanner driver is installed and working properly.

Upgrading
Every time when upgrading HPLIP run hp-setup -r to remove all printers and configure them again as described above in the configuration section.

Binary plugins
There are some devices which require a binary plugin to use all functions the device provides. A list with devices requiring the binary plugin including the reasons why it is needed is available at the projects homepage. Gentoo currently does not support the binary plugin. hp-setup however tries to automatically install the plugin. The installed files are out of portages control and are located under  and. For installing just the plugin without configuring printer queues hp-plugin is available. If installing the plugin fails with hp-setup or hp-plugin the plugin installer is available for download here. To install the plugin the downloaded *.run file has to executed in a shell:

Afterwards follow the instructions of the installer similar to hp-setup or hp-plugin

/usr/libexec/cups/backend/hp failed
Edit this and remove the lines prefixed with "State", "Reason" and "Type".

Upon saving the file and restarting the cupsd daemon, printing should resume.

Error on install "File "./plugin_install.py", line 78 except ImportError, e:"
PROBLEM: A snipping of the error follows.

RESOLUTION: Python 3 is set as main python interpreter. HPLP currently does not work correct with python 3. Switching back to python 2 by using eselect python fixes this.

This bug is further documented at the following link

HPLIP ebuild Upgrades Do Not Upgrade Binary Plugin(s)
PROBLEM: The HPLIP ebuild itself does not upgrade the binary plugin(s) when the ebuild is upgraded. A symptom of this problem, you may get segfaults when starting XSane. (ie. The HP LaserJet M1522nf requires a binary plugin for using the scanning feature.)

RESOLUTION: Following the upgrade instructions should take care of this as hp-setup trys to upgrade the plugin.

Printing Weird Characters
If you're printing, usually from Abiword, and your printer starts replacing characters with weird looking characters, then your printer likely cannot handle Postscript Level 3 output. To work around, you'll need to edit the printer's PPD file and replace '*LanguageLevel: "3"' with '*LanguageLevel: "2"'.

The likely reason for this bug is, HPLIP maintainers refuse to provide a PPD file for your printer specifying Postscript Level 2. This could be easily be resolved by them by either providing a seperate PPD file for the select printers, or using a SED/AWK recipe to quickly correct replace this line while this file is being moved into the /etc/cups/ppd folder. (We could also speculate the firmware is broken for Postscript Level 3 printing for these printers?)

See which was initially opened in the year 2008.