SourceForge Logo hpinkjet.sourceforge.net

Hewlett-Packard Linux Imaging and Printing Project

The Hewlett-Packard Linux Imaging and Printing Project provides a unified single and multi-function connectivity solution for Linux. The goal of this project is to provide "radically simple" printing, faxing, scanning, photo-card access, and device management to the consumer and small business desktop Linux users. This project is based open source software and uses GPL compatible licenses.

Table of contents


1 Overview

The Hewlett-Packard Linux Imaging and Printing project (HPLIP) provides a unified single and multi-function connectivity solution for Linux. The goal of this project is to provide "radically simple" printing, faxing, scanning, photo-card access, and device management to the consumer and small business desktop Linux users. This project is based open source software and uses GPL compatible licenses.

HPLIP is comprised of several major components; applications, driver, backend, daemons, and PPD files. HPLIP is designed to work with the CUPS spooler system. A CUPS/HPLIP system provides bi-di communication which is necessary for full HPLIP support. HPLIP provides a new CUPS backend called "hp" which supports bi-di printing connectivity.

HPLIP uses HPIJS for generating printer-ready-data for non-postscript print jobs. HPIJS has been available since 2001 as a uni-di solution. HPIJS has been modified to support HPLIP, but HPIJS is still backward compatible with existing spoolers.

HPLIP supports connectivity over USB, parallel and network (JetDirect). The following figure is an overview of the CUPS/HPLIP system with major components highlighted.

Each print job has an associated PPD file. Print job properties are set with the PPD file. Each HP printer has a unique PPD file and is generated from the foomatic database and distributed with the HPLIP tar ball. The foomatic system is available at www.linuxprinting.org.

The "hp" CUPS backend supports printing via USB, parallel, and JetDirect connectivity. The "hp" backend can be used in place of the normal "usb" and "parallel" backends provided by CUPS.

The "hp" backend provides in-bound print job status. Job status is sent to CUPS via stderr "ERROR:" and "INFO:" messages and to the HP Device Manager.

Out-of-bound printer status is available in the HP Device Manager. For example, ink levels for most inkjets can be viewed in the device manager. Also pen alignment can be performed from the device manager.

HPLIP provides a "hpaio" sane backend for scanning. Both flatbed and ADF scanning is supported via xsane/sane applications.

A photo-card application allows the user to download and delete pictures from printers that support photo-cards.

PC fax send is supported, no PC fax receive. PC fax send will look like a CUPS printer spool queue.

A distribution can mix and match the HPLIP package in order to support a bi-di or uni-di solution. HPIJS is part of the HPLIP package, but HPIJS can still be installed separately. The HPLIP package includes two makefiles one for HPLIP and one for HPIJS.

HPLIP is intended to replace HPOJ. They both support USB, parallel and JetDirect connectivity. HPLIP is similar to HPOJ, but different. HPLIP has persistent daemons (hpiod, hpssd) like HPOJ, but is more friendly. HPLIP does not require a "ptal-init setup". The "hp" backend will look like any other CUPS backend that can install printers as needed. The daemons use a standard init.d start/stop script.

HPLIP provides a MLC/1284.4 transport for talking to Multi-Function Peripherals (MFPs), but HPLIP does not dedicate the port to MLC/1284.4 like HPOJ does. HPLIP brings MLC/1284.4 up and down as needed. This means a MFP can use raw I/O for printing and MLC/1284.4 for scanning.

HPOJ performs all parallel I/O directly to the hardware port in User Mode. This is problematic with other Linux/Unix platforms. Many kernels do not allow direct communication to the parallel port from User Mode. HPLIP also performs parallel I/O in User Mode, but HPLIP uses the ppdev/parport kernel modules. Which provides kernel management and a better sharing mechanism for other applications.

All IEEE 1284 functions needed for HPLIP are performed with low-level ppdev ioctl(s). This includes data reads and writes. For MLC/1284.4, hardware ECP Mode is not always available so only software ECP Mode is supported.

In most cases USB I/O will be faster than parallel I/O. The reason for this is all USB I/O takes place in Kernel mode via the USB hardware controller. Where most parallel I/O takes place in User Mode via software control. If your peripheral supports both USB or parallel use USB.

Generally HPOJ and HPLIP cannot co-exist on the same PC. The parport kernel module will conflict with HPOJ. Use "ptal-init setup" to remove HPOJ devices.


2 License

In general all applications are covered by the GNU General Public License (GPL) and the backend is covered by a MIT license. The printer driver HPIJS uses a BSD license. See the COPYING file in the HPLIP tar ball for more details.


3 System Requirements

Linux kernel 2.4.19 and above. Linux is the target distribution. Other Unix platforms may work if they have similar kernel drivers, but have not been tested.

GNU software tools are required to build from source code. This includes the ANSI C compiler, ANSI C++ compiler and POSIX compliant environment.

printer kernel module for Linux 2.4.

usblp kernel module for Linux 2.6.

ppdev/parport kernel modules for parallel port support.

GNU Ghostscript 7.05 or higher.

Foomatic 3.0.2 or higher.

Qt 3.x or higher for UI toolkit.

PyQt 3.11 or higher for Qt wrapper for Python.

Python 2.2 or higher and python-devel.

CUPS 1.15 or higher and cups-devel.

libjpeg 6b or higher and libjpeg-devel.

net-snmp 5.0.9 or higher and net-snmp-devel for network support.

HPLIP has been tested on most major Linux distributions, but only 32-bit and little-endian systems have been tested.

chkconfig or install_initd for HPLIP startup/shutdown script.


4 Product Support

Color and Monochrome (B&W) Inkjet Printers Parallel USB Network(1) Print Class Scan Photo Fax Services/Status
2000C NoYesNoDJ9xx NoNoNo No
2500C NoYesNoDJ9xx NoNoNo No
Apollo_2100 YesNoNoAP21xx NoNoNo No
Apollo_2150 YesNoNoAP21xx NoNoNo No
Apollo_2200 YesNoNoAP2xxx NoNoNo No
Apollo_2500 YesNoNoAP2560 NoNoNo No
Apollo_2600 YesNoNoAP2560 NoNoNo No
Apollo_2650 YesNoNoAP2560 NoNoNo No
Apollo_P2000-U YesNoNoAP21xx NoNoNo No
Apollo_P2250 YesNoNoAP2xxx NoNoNo No
BUSINESS_INKJET_2200 NoYesNoDJ9xxVIP NoNoNo Yes
BUSINESS_INKJET_2230 NoYesNoDJ9xxVIP NoNoNo Yes
BUSINESS_INKJET_2250 NoYesNoDJ9xxVIP NoNoNo Yes
BUSINESS_INKJET_2280 NoYesNoDJ9xxVIP NoNoNo Yes
Business_Inkjet_1000 NoYesNoDJGenericVIP NoNoNo Yes
Business_Inkjet_1200 NoYesNoDJGenericVIP NoNoNo Yes
Business_Inkjet_2800 NoYesYesLJColor NoNoNo Yes
COLOR_INKJET_PRINTER_CP1700 NoYesYesDJ9xxVIP NoNoNo Yes
Color_Inkjet_CP1700 NoYesYesDJ9xxVIP NoNoNo Yes
DESKJET_1100 YesNoNoDJ850 NoNoNo No
DESKJET_1120 YesNoNoDJ8xx NoNoNo No
DESKJET_1125 YesNoNoDJ8xx NoNoNo No
DESKJET_1220C NoYesNoDJ9xx NoNoNo Yes
DESKJET_3810 NoYesNoDJ9xx NoNoNo Yes
DESKJET_3816 NoYesNoDJ9xx NoNoNo Yes
DESKJET_3819 NoYesNoDJ9xx NoNoNo Yes
DESKJET_3820 NoYesNoDJ9xx NoNoNo Yes
DESKJET_3822 NoYesNoDJ9xx NoNoNo Yes
DESKJET_3870 NoYesNoDJ9xx NoNoNo Yes
DESKJET_400 YesNoNoDJ350 NoNoNo No
DESKJET_400L YesNoNoDJ350 NoNoNo No
DESKJET_500 YesNoNoDJ540 NoNoNo No
DESKJET_500C YesNoNoDJ540 NoNoNo No
DESKJET_505J YesNoNoDJ540 NoNoNo No
DESKJET_510 YesNoNoDJ540 NoNoNo No
DESKJET_520 YesNoNoDJ540 NoNoNo No
DESKJET_540 YesNoNoDJ540 NoNoNo No
DESKJET_600 YesNoNoDJ6xx NoNoNo No
DESKJET_610C YesNoNoDJ6xxPhoto NoNoNo No
DESKJET_610CL YesNoNoDJ6xxPhoto NoNoNo No
DESKJET_612C YesNoNoDJ6xxPhoto NoNoNo No
DESKJET_630C YesYesNoDJ630 NoNoNo Yes
DESKJET_632C YesYesNoDJ630 NoNoNo Yes
DESKJET_640C YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_648C YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_656C YesYesNoDJ630 NoNoNo Yes
DESKJET_660 YesNoNoDJ6xx NoNoNo No
DESKJET_670TV YesNoNoDJ6xx NoNoNo No
DESKJET_672C YesNoNoDJ6xx NoNoNo No
DESKJET_680 YesNoNoDJ6xx NoNoNo No
DESKJET_682 YesNoNoDJ6xx NoNoNo No
DESKJET_690 YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_692 YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_693 YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_694 YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_695 YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_697 YesYesNoDJ6xxPhoto NoNoNo Yes
DESKJET_810C YesNoNoDJ8xx NoNoNo Yes
DESKJET_812C YesNoNoDJ8xx NoNoNo Yes
DESKJET_815C YesNoNoDJ8xx NoNoNo Yes
DESKJET_816C YesNoNoDJ8xx NoNoNo Yes
DESKJET_825C NoYesNoDJ8x5 NoNoNo Yes
DESKJET_830C YesNoNoDJ8xx NoNoNo Yes
DESKJET_832C YesNoNoDJ8xx NoNoNo Yes
DESKJET_840C YesNoNoDJ8xx NoNoNo Yes
DESKJET_841C YesNoNoDJ8xx NoNoNo Yes
DESKJET_842C YesNoNoDJ8xx NoNoNo Yes
DESKJET_843C YesNoNoDJ8xx NoNoNo Yes
DESKJET_845C NoYesNoDJ8x5 NoNoNo Yes
DESKJET_850C YesNoNoDJ850 NoNoNo No
DESKJET_855C YesNoNoDJ850 NoNoNo No
DESKJET_870C YesNoNoDJ850 NoNoNo No
DESKJET_880C YesNoNoDJ8xx NoNoNo No
DESKJET_882C YesNoNoDJ8xx NoNoNo No
DESKJET_890C YesNoNoDJ8xx NoNoNo No
DESKJET_895C YesYesNoDJ8xx NoNoNo Yes
DESKJET_916C NoYesNoDJ9xx NoNoNo Yes
DESKJET_920C NoYesNoDJ9xx NoNoNo Yes
DESKJET_930C NoYesNoDJ9xx NoNoNo Yes
DESKJET_932C NoYesNoDJ9xx NoNoNo Yes
DESKJET_933C NoYesNoDJ9xx NoNoNo Yes
DESKJET_934C NoYesNoDJ9xx NoNoNo Yes
DESKJET_935C NoYesNoDJ9xx NoNoNo Yes
DESKJET_940C NoYesNoDJ9xx NoNoNo Yes
DESKJET_948C NoYesNoDJ9xx NoNoNo Yes
DESKJET_950C NoYesNoDJ9xx NoNoNo No
DESKJET_952C NoYesNoDJ9xx NoNoNo Yes
DESKJET_955C NoYesNoDJ9xx NoNoNo Yes
DESKJET_957C NoYesNoDJ9xx NoNoNo Yes
DESKJET_959C NoYesNoDJ9xx NoNoNo Yes
DESKJET_960C NoYesNoDJ9xxVIP NoNoNo Yes
DESKJET_970C NoYesNoDJ9xx NoNoNo Yes
DESKJET_975C NoYesNoDJ9xx NoNoNo Yes
DESKJET_980C NoYesNoDJ9xxVIP NoNoNo Yes
DESKJET_990C NoYesNoDJ9xxVIP NoNoNo Yes
DESKJET_995C NoYesNoDJ9xxVIP NoNoNo Yes
Deskjet_1280 NoYesNoDJ9xx NoNoNo Yes
Deskjet_3740 NoYesNoDJ3320 NoNoNo Yes
Deskjet_3900 NoYesNoDJ3320 NoNoNo Yes
Deskjet_3920 NoYesNoDJ3320 NoNoNo Yes
Deskjet_3940 NoYesNoDJ3320 NoNoNo Yes
Deskjet_460 NoYesNoDJ9xxVIP NoYesNo Yes
Deskjet_5400_series NoYesNoDJGenericVIP NoNoNo Yes
Deskjet_5700 NoYesNoDJGenericVIP NoNoNo Yes
Deskjet_5900_series NoYesNoDJGenericVIP NoNoNo Yes
Deskjet_6500 NoYesNoDJGenericVIP NoNoNo Yes
Deskjet_6600 NoYesYesDJGenericVIP NoNoNo Yes
Deskjet_6800 NoYesYesDJGenericVIP NoNoNo Yes
Deskjet_6940_series NoYesYesDJGenericVIP NoNoNo Yes
Deskjet_6980_series NoYesYesDJGenericVIP NoNoNo Yes
Deskjet_9800 NoYesNoDJGenericVIP NoNoNo Yes
Mopier_320 NoYesNoLJMono NoNoNo Yes
OfficeJet YesNoNoDJ540 NoNoNo No
OfficeJet_LX YesNoNoDJ540 NoNoNo No
Officejet_Pro_K550 NoYesYesDJGenericVIP NoNoNo Yes
Officejet_Pro_K850 NoYesYesDJGenericVIP NoNoNo Yes
business_inkjet_1100 NoYesNoDJGenericVIP NoNoNo Yes
business_inkjet_2300 NoYesYesLJColor NoNoNo Yes
business_inkjet_2600 NoYesNoDJGenericVIP NoNoNo No
business_inkjet_3000 NoYesYesLJColor NoNoNo No
cp1160 NoYesNoDJ9xxVIP NoNoNo Yes
deskjet_3320 NoYesNoDJ3320 NoNoNo Yes
deskjet_3325 NoYesNoDJ3320 NoNoNo Yes
deskjet_3420 NoYesNoDJ3320 NoNoNo Yes
deskjet_3425 NoYesNoDJ3320 NoNoNo Yes
deskjet_3450 NoYesNoDJ3320 NoNoNo Yes
deskjet_3500 NoYesNoDJ3320 NoNoNo Yes
deskjet_3600 NoYesYesDJ3600 NoNoNo Yes
deskjet_3840 NoYesNoDJ3600 NoNoNo Yes
deskjet_5100 NoYesNoDJGenericVIP NoNoNo Yes
deskjet_5550 NoYesNoDJGenericVIP NoNoNo Yes
deskjet_5551 NoYesNoDJGenericVIP NoNoNo Yes
deskjet_5552 NoYesNoDJGenericVIP NoNoNo Yes
deskjet_5600 NoYesNoDJGenericVIP NoNoNo Yes
deskjet_5650 NoYesNoDJGenericVIP NoNoNo Yes
deskjet_5652 NoYesNoDJGenericVIP NoNoNo Yes
deskjet_5800 NoYesYesDJGenericVIP NoNoNo Yes
deskjet_6120 NoYesNoDJ9xxVIP NoNoNo Yes
deskjet_6122 NoYesYesDJ9xxVIP NoNoNo Yes
deskjet_6127 NoYesYesDJ9xxVIP NoNoNo Yes
deskjet_9300 NoYesNoDJ9xx NoNoNo Yes
deskjet_9600 NoYesNoDJGenericVIP NoNoNo Yes
dj450 NoYesNoDJGenericVIP NoYesNo Yes
photosmart_7150 NoYesNoDJGenericVIP NoNoNo Yes
Inkjet Photo Printers Parallel USB Network(1) Print Class Scan Photo Fax Services/Status
PHOTOSMART_100 NoYesNoPSP100 NoYesNo Yes
PHOTOSMART_1115 NoYesYesDJ9xxVIP NoYesNo Yes
PHOTOSMART_1215 NoYesNoDJ9xxVIP NoYesNo Yes
PHOTOSMART_1218 NoYesNoDJ9xxVIP NoYesNo Yes
PHOTOSMART_130 NoYesNoPSP100 NoYesNo Yes
PHOTOSMART_1315 NoYesNoDJ9xxVIP NoYesNo Yes
PHOTOSMART_230 NoYesNoPSP100 NoYesNo Yes
PHOTOSMART_P1000 NoYesNoDJ9xx NoYesNo Yes
PHOTOSMART_P1100 NoYesNoDJ9xx NoYesNo Yes
Photosmart_320_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_330_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_370_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_380_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_420_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_470_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_7400_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_7800_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_8000_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_8100_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_8200_series NoYesNoDJGenericVIP NoYesNo Yes
Photosmart_8400_series NoYesYesDJGenericVIP NoYesNo Yes
Photosmart_8700_series NoYesYesDJGenericVIP NoYesNo Yes
photosmart_140_series NoYesNoPSP100 NoYesNo Yes
photosmart_240_series NoYesNoPSP100 NoYesNo Yes
photosmart_7200_series NoYesNoDJGenericVIP NoYesNo Yes
photosmart_7350 NoYesNoDJGenericVIP NoYesNo Yes
photosmart_7550 NoYesNoDJGenericVIP NoYesNo Yes
photosmart_7600_series NoYesNoDJGenericVIP NoYesNo Yes
photosmart_7700_series NoYesNoDJGenericVIP NoYesNo Yes
photosmart_7900_series NoYesYesDJGenericVIP NoYesNo Yes
Color LaserJet Printers Parallel USB Network(1) Print Class Scan Photo Fax Services/Status
Color_LaserJet_3000 NoYesYesLJColor NoNoNo Yes
Color_LaserJet_3600 NoYesNoLJJetReady NoNoNo Yes
Color_LaserJet_3800 NoYesYesLJColor NoNoNo Yes
Color_LaserJet_4500 NoYesYesLJColor NoNoNo Yes
Color_LaserJet_4550 NoYesYesLJColor NoNoNo Yes
Color_LaserJet_4700 NoYesYesLJColor NoNoNo Yes
Color_LaserJet_5M NoYesNoLJColor NoNoNo No
Color_LaserJet_8500 NoYesNoLJColor NoNoNo Yes
Color_LaserJet_8550 NoYesNoLJColor NoNoNo Yes
color_LaserJet_2500 NoYesNoLJColor NoNoNo Yes
color_LaserJet_2500_series NoYesNoLJColor NoNoNo Yes
color_LaserJet_2550 NoYesYesUndefined NoNoNo Yes
color_LaserJet_2550_series NoYesYesUndefined NoNoNo Yes
color_LaserJet_3500 NoYesNoLJJetReady NoNoNo Yes
color_LaserJet_3500n NoYesNoLJJetReady NoNoNo Yes
color_LaserJet_3550 NoYesNoLJJetReady NoNoNo Yes
color_LaserJet_3550n NoYesNoLJJetReady NoNoNo Yes
color_LaserJet_3700 NoYesYesLJColor NoNoNo Yes
color_LaserJet_3700n NoYesYesLJColor NoNoNo Yes
color_LaserJet_4600 NoYesNoLJColor NoNoNo Yes
color_LaserJet_4600_series NoYesNoLJColor NoNoNo Yes
color_LaserJet_4610 NoYesYesLJColor NoNoNo Yes
color_LaserJet_4650 NoYesYesLJColor NoNoNo Yes
color_LaserJet_5500 NoYesNoLJColor NoNoNo Yes
color_LaserJet_5550 NoYesYesLJColor NoNoNo Yes
color_LaserJet_9500 NoYesYesLJColor NoNoNo Yes
Color LaserJet MFPs Parallel USB Network(1) Print Class Scan Photo Fax Services/Status
Color_LaserJet_2800 NoYesYesPostscript YesYes(2)Yes Yes
Color_LaserJet_2820 NoYesYesPostscript YesYes(2)Yes Yes
Color_LaserJet_2830 NoYesYesPostscript YesYes(2)Yes Yes
Color_LaserJet_2840 NoYesYesPostscript YesYes(2)Yes Yes
Color_LaserJet_4730mfp NoYesYesLJColor NoNoNo Yes
Color Inkjet All-in-Ones Parallel USB Network(1) Print Class Scan Photo Fax Services/Status
OFFICEJET_PRO_1150C YesNoNoDJ850 YesNoYes Yes
OFFICEJET_PRO_1170C_SERIES YesNoNoDJ890 YesNoYes Yes
OFFICEJET_R40 YesNoYesDJ8xx YesYesYes Yes
OFFICEJET_R40xi YesNoYesDJ8xx YesYesYes Yes
OFFICEJET_R45 YesNoYesDJ8xx YesYesYes Yes
OFFICEJET_R60 YesNoNoDJ8xx YesNoYes Yes
OFFICEJET_R65 YesNoYesDJ8xx YesYesYes Yes
OFFICEJET_R80 YesNoYesDJ8xx YesYesYes Yes
OFFICEJET_R80xi YesNoYesDJ8xx YesYesYes Yes
OfficeJet_5105 NoYesNoDJ9xx YesNoYes Yes
OfficeJet_5110 NoYesNoDJ9xx YesNoYes Yes
OfficeJet_6100_Series NoYesNoDJGenericVIP YesNoYes Yes
OfficeJet_6150_Series NoYesNoDJGenericVIP YesYesYes Yes
OfficeJet_G55 NoYesYesDJ9xx YesNoYes Yes
OfficeJet_G55xi NoYesYesDJ9xx YesNoYes Yes
OfficeJet_G85 NoYesYesDJ9xx YesNoYes Yes
OfficeJet_G85xi NoYesYesDJ9xx YesNoYes Yes
OfficeJet_G95 NoYesYesDJ9xx YesYesYes Yes
OfficeJet_K60 NoYesYesDJ9xx YesNoYes Yes
OfficeJet_K60xi NoYesYesDJ9xx YesNoYes Yes
OfficeJet_K80 NoYesYesDJ9xx YesNoYes Yes
OfficeJet_K80xi NoYesYesDJ9xx YesNoYes Yes
OfficeJet_Series_300 YesNoNoDJ540 NoNoYes No
OfficeJet_Series_310 YesNoNoDJ540 NoNoYes No
OfficeJet_Series_320 YesNoNoDJ540 NoNoYes No
OfficeJet_Series_330 YesNoNoDJ540 NoNoYes No
OfficeJet_Series_350 YesNoNoDJ540 NoNoYes No
OfficeJet_Series_500 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_520 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_570 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_580 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_590 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_600 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_610 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_630 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_700 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_710 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_720 YesNoNoDJ660 YesNoYes No
OfficeJet_Series_725 YesNoNoDJ660 YesNoYes No
OfficeJet_T_Series YesNoNoDJ8xx YesNoYes Yes
OfficeJet_V30 NoYesNoDJ9xx YesNoYes Yes
OfficeJet_V40 NoYesNoDJ9xx YesNoYes Yes
OfficeJet_V40xi NoYesNoDJ9xx YesNoYes Yes
OfficeJet_V45 NoYesNoDJ9xx YesNoYes Yes
Officejet_5600_series NoYesNoDJ3600 YesNoYes Yes
Officejet_6200_series NoYesNoDJGenericVIP YesNoYes Yes
Officejet_7200_series NoYesYesDJGenericVIP YesYesYes Yes
Officejet_7300_series NoYesYesDJGenericVIP YesYesYes Yes
Officejet_7400_series NoYesYesDJGenericVIP YesYesYes Yes
Officejet_9100_series NoYesYesLJColor YesYesYes Yes
PSC_1400_series NoYesNoDJ3320 YesNoYes Yes
PSC_1500_series NoYesNoDJGenericVIP YesNoNo Yes
PSC_1600_series NoYesNoDJGenericVIP YesYesNo Yes
PSC_2100_Series NoYesNoDJGenericVIP YesYesYes Yes
PSC_2150_Series NoYesNoDJGenericVIP YesYesYes Yes
PSC_2170_Series NoYesNoDJGenericVIP YesYesYes Yes
PSC_2200_Series NoYesNoDJGenericVIP YesYesYes Yes
PSC_2350_series NoYesNoDJGenericVIP YesYesYes Yes
PSC_500 YesNoNoDJ8xx YesNoNo Yes
PSC_720 NoYesNoDJ9xx YesNoNo Yes
PSC_750 NoYesNoDJ9xx YesNoNo Yes
PSC_750xi NoYesNoDJ9xx YesNoNo Yes
PSC_760 NoYesNoDJ9xx YesNoNo Yes
PSC_900_Series NoYesNoDJ9xx YesYesNo Yes
Photosmart_2570_series NoYesYesDJGenericVIP YesYesYes Yes
Photosmart_2600_series NoYesYesDJGenericVIP YesYesYes Yes
Photosmart_2700_series NoYesYesDJGenericVIP YesYesYes Yes
Photosmart_3100_series NoYesNoDJGenericVIP YesYesYes Yes
Photosmart_3200_series NoYesYesDJGenericVIP YesYesNo Yes
Photosmart_3300_series NoYesYesDJGenericVIP YesYesYes Yes
Printer_Scanner_Copier_300 YesNoNoDJ6xx YesNoNo No
officejet_4100_series NoYesNoDJ3320 YesNoYes Yes
officejet_4105_series NoYesNoDJ3320 YesNoYes Yes
officejet_4110_series NoYesNoDJ3320 YesNoYes Yes
officejet_4115_series NoYesNoDJ3320 YesNoYes Yes
officejet_4200_series NoYesNoDJ3600 YesNoYes Yes
officejet_5100_series NoYesNoDJ9xx YesNoYes Yes
officejet_5500_series NoYesNoDJ3600 YesNoYes Yes
officejet_7100_series NoYesYesDJ9xx YesYesYes Yes
officejet_d_series NoYesYesDJ9xxVIP YesYesYes Yes
psc_1100_series NoYesNoDJ3320 YesNoNo Yes
psc_1200_series NoYesNoDJ3320 YesNoNo Yes
psc_1300_series NoYesNoDJ3600 YesYesNo Yes
psc_1310_series NoYesNoDJ3600 YesNoNo Yes
psc_2300_series NoYesYesDJGenericVIP YesYesYes Yes
psc_2400_series NoYesYesDJGenericVIP YesYesYes Yes
psc_2500_series NoYesYesDJGenericVIP YesYesYes Yes
Monochrome (B&W) LaserJet Printers Parallel USB Network(1) Print Class Scan Photo Fax Services/Status
LaserJet_1010 NoYesNoLJFastRaster NoNoNo No
LaserJet_1012 NoYesNoLJFastRaster NoNoNo No
LaserJet_1015 NoYesNoLJMono NoNoNo No
LaserJet_1022 NoYesYesLJMono NoNoNo No
LaserJet_1022n NoYesYesLJMono NoNoNo No
LaserJet_1022nw NoYesYesLJMono NoNoNo No
LaserJet_1150 NoYesNoLJMono NoNoNo Yes
LaserJet_1160 NoYesNoLJMono NoNoNo Yes
LaserJet_1300 NoYesYesLJMono NoNoNo Yes
LaserJet_1300n NoYesYesLJMono NoNoNo Yes
LaserJet_1300xi NoYesYesLJMono NoNoNo Yes
LaserJet_1320 NoYesYesLJMono NoNoNo Yes
LaserJet_1320_series NoYesYesLJMono NoNoNo Yes
LaserJet_1320n NoYesYesLJMono NoNoNo Yes
LaserJet_1320nw NoYesYesLJMono NoNoNo Yes
LaserJet_1320tn NoYesYesLJMono NoNoNo Yes
LaserJet_2100 NoYesYesLJMono NoNoNo Yes
LaserJet_2100_Series NoYesNoLJMono NoNoNo Yes
LaserJet_2200 NoYesYesLJMono NoNoNo Yes
LaserJet_2200_Series NoYesYesLJMono NoNoNo Yes
LaserJet_2300 NoYesYesLJMono NoNoNo Yes
LaserJet_2300_Series NoYesYesLJMono NoNoNo Yes
LaserJet_2410 NoYesYesLJMono NoNoNo Yes
LaserJet_2420 NoYesYesLJMono NoNoNo Yes
LaserJet_2430 NoYesYesLJMono NoNoNo Yes
LaserJet_4000_Series NoYesNoLJMono NoNoNo Yes
LaserJet_4050_Series NoYesNoLJMono NoNoNo Yes
LaserJet_4100_Series NoYesNoLJMono NoNoNo Yes
LaserJet_4150_Series NoYesNoLJMono NoNoNo Yes
LaserJet_4200 NoYesNoLJMono NoNoNo Yes
LaserJet_4240 NoYesYesLJMono NoNoNo Yes
LaserJet_4250 NoYesYesLJMono NoNoNo Yes
LaserJet_4300 NoYesNoLJMono NoNoNo Yes
LaserJet_4350 NoYesYesLJMono NoNoNo Yes
LaserJet_4Si NoYesNoLJMono NoNoNo No
LaserJet_4_Plus NoYesNoLJMono NoNoNo No
LaserJet_5000 NoYesYesLJMono NoNoNo Yes
LaserJet_5000_Series NoYesNoLJMono NoNoNo Yes
LaserJet_5100_Series NoYesNoLJMono NoNoNo Yes
LaserJet_5MP NoYesNoLJMono NoNoNo No
LaserJet_5P NoYesNoLJMono NoNoNo No
LaserJet_5Si NoYesNoLJMono NoNoNo No
LaserJet_6MP NoYesNoLJMono NoNoNo No
LaserJet_6P NoYesNoLJMono NoNoNo No
LaserJet_8000 NoYesYesLJMono NoNoNo Yes
LaserJet_8000_Series NoYesNoLJMono NoNoNo Yes
LaserJet_8100_Series NoYesNoLJMono NoNoNo Yes
LaserJet_8150_Series NoYesNoLJMono NoNoNo Yes
LaserJet_9000_Series NoYesYesLJMono NoNoNo Yes
LaserJet_9050 NoYesYesLJMono NoNoNo Yes
Monochrome (B&W) LaserJet MFPs Parallel USB Network(1) Print Class Scan Photo Fax Services/Status
LaserJet_1100 YesNoNoLJMono YesNoNo Yes
LaserJet_1100a YesNoNoLJMono YesNoNo Yes
LaserJet_1100xi YesNoNoLJMono YesNoNo Yes
LaserJet_1200 NoYesNoLJMono YesNoNo Yes
LaserJet_1200n NoYesNoLJMono YesNoNo Yes
LaserJet_1220 NoYesNoLJMono YesNoNo No
LaserJet_1220se NoYesNoLJMono YesNoNo No
LaserJet_3015 YesYesNoLJMono YesNoYes Yes
LaserJet_3020 YesYesNoLJMono YesNoYes Yes
LaserJet_3030 NoYesNoLJMono YesNoYes Yes
LaserJet_3050 NoYesNoLJMono YesNoYes Yes
LaserJet_3052 NoYesNoLJMono YesNoYes Yes
LaserJet_3055 NoYesNoLJMono YesNoYes Yes
LaserJet_3200 NoYesNoLJMono YesNoYes Yes
LaserJet_3200M NoYesNoLJMono YesNoYes Yes
LaserJet_3200se NoYesNoLJMono YesNoYes Yes
LaserJet_3300_3310_3320 NoYesNoLJMono YesNoYes Yes
LaserJet_3330 NoYesNoLJMono YesNoNo Yes
LaserJet_3380 NoYesNoLJMono YesNoYes Yes
LaserJet_3390 NoYesNoLJMono YesNoYes Yes
LaserJet_3392 NoYesNoLJMono YesNoYes Yes
LaserJet_4100_MFP NoYesNoLJMono YesYesNo Yes
LaserJet_4345_mfp NoYesYesLJMono NoNoNo Yes
LaserJet_8100_MFP NoYesNoLJMono NoNoNo Yes
LaserJet_8150_MFP NoYesNoLJMono NoNoNo Yes
LaserJet_9000_MFP NoYesYesLJMono NoNoNo Yes
LaserJet_9040_MFP NoYesYesLJMono NoNoNo Yes
LaserJet_9050_MFP NoYesYesLJMono NoNoNo Yes
LaserJet_9055_MFP NoYesYesLJMono NoNoNo Yes
LaserJet_9065_MFP NoYesYesLJMono NoNoNo Yes

Notes:

All information provided is believed to be accurate but is not guaranteed.

(1) Network support indicates built-in ethernet and/or wireless networking. Alternatively, many devices may be operated on the network using an external JetDirect print server. Not all network configurations are supported. Please refer to the HPLIP FAQs for more information.

(2) USB mass storage only. You may mount the photocard as a storage drive over USB only. Refer to your distribution's documentation for setup and usage instructions.


5 Updates


6 Installation

This section addresses how to install HPLIP from source code. Note, most distributions already have a HPLIP package available. Check your distribution before installing HPLIP from source code. This section assumes all System Requirements listed in the previous section have been met and any pre-existing HPLIP install uses the same "./configure --prefix=/usr" parameters. For the latest information and more details see hpinkjet.sourceforge.net.

This section does not address how to install your printer. See your distributions documentation regarding any spooler questions. Additional information is available at www.linuxprinting.org and hpinkjet.sourceforge.net.

You can download HPLIP here. The download includes the HPLIP source code and a platform-independent automake/autoconf master makefile. The master makefile will compile and install HPLIP. After downloading to your directory use the following instructions.

tar xzvf hplip-0.8.x.tar.gz
cd hplip-0.8.x
./configure --prefix=/usr
make
make install
/etc/init.d/hplip restart
If HPLIP built and installs correctly you should get the following response. Note, our example assumes hpiod and hpssd were already running.
Stopping hpiod:                                            [  OK  ]
Stopping hpssd:                                            [  OK  ]
Starting hpiod:                                            [  OK  ]
Starting hpssd:                                            [  OK  ]
Now we must restart cupsd in order to let CUPS see the new "hp" backend.
/etc/init.d/cups restart

Caveats

 1. Network support requires libsnmp. HPLIP can be build without network support. At configure time use the following command.
    ./configure --prefix=/usr --disable-network-build
 2. The HPLIP startup/shutdown script is Red Hat (chkconfig) and LSB
    (install_initd) compliant. If your distribution is not compliant the script may not work. 
 3. In order to get HPLIP to compile with libsnmp on SUSE 9.1 you need add the following symlink for libcrypto.
    ln -s /usr/lib/libcrypto.so.0.9.7 /usr/lib/libcrypto.so
 4. For distribution package managers the following ./configure options are available. This allows the package 
    manager to configure these options.
    --disable-rpm-install        disables sane, icon, /etc/hp and /etc/init.d install
    --disable-foomatic-install   disables foomatic install
    --disable-cups-install       disables cups install
    --disable-network-build      disables building network support, will not link with libsnmp
    --disable-pp-build           disables building parallel port support
 5. The HPLIP startup script must be executed before the CUPS startup script at boot time.
 6. For Mandrake be sure to include the net-snmp-mibs package for network support.
 7. In order to run the HP Device Manager, PyQt needs to be installed. Also Fedora C3 requires the "sip" module, 
    see the following Fedora C3 instructions.
    yum install PyQt
    yum install sip
 8. In SUSE 9.2 and above PyQt is now part of kdebindings3-python.
 9. In order to run HPLIP with Fedora C4 you must disable SELinux protection. Under "Security Level Configuration",
    select SELinux tab, un-click "Enforcing Current: Permissive". The default SELinux policies will conflict with HPLIP I/O.
    If you want to run with SELinux enabled install the FC4 HPLIP rpm available at RH.
10. HPLIP can be uninstalled with the "make uninstall" command. 
11. With FC4 64-bit systems use must use "./configure --prefix=/usr --libdir=/usr/lib64" in order to get libsane-hpaio installed
    correctly.

7 Usage and Troubleshooting

7.1 Compiling and Installation Troubleshooting

Issue 1: make exists with error: "g++: not found"
Solution:
gcc is not properly installed. Follow the instructions for your distribution to install gcc.

7.2 Setup and I/O Troubleshooting

Issue 1: 'hp-probe' fails to find my network printer
Solution:

Note: This is a known problem with hp-probe
1. Determine the IP address of your printer by printing out the network configuration page (or if you know it or can determine it in another way)
2. Run:
$ hp-makeuri <ip-address>
For example:
$ hp-makeuri 192.168.1.1
3. This will result in a device URI printed to the console. For example:
hp:/net/Officejet_9100_series?ip=192.168.1.1
4. Copy this device URI
5. Open the CUPS UI:
http://localhost:631
(or YasT, etc) and install the printer by pasting the generated URI.

Issue 2: There is no listing in CUPS or my printer installation tool for the exact model number of my printer.
Solution:

1. Check to see if there is another model in the list that is in the correct "series". For example, a "DeskJet 5510" will use a "DeskJet 5500 Series" driver.
In general, you "round down" the model number that appears on the case of the printer to the next lowest number that is available in the software.
2. If this doesn't work, visit this page and follow the instructions to download and install a new PPD file for your printer: http://linuxprinting.org/

Issue 3: I've plugged in my USB printer, but it doesn't show up in the CUPS interface.
Solution:

Restart CUPS. There are two basic methods: (Note: You must be root to execute these commands)

# /etc/init.d/cupsd restart
or:
# killall -HUP cupsd

Issue 4: I can 'ping' my network printer but 'hp-makeuri' won't generate a device URI for it.
Solution:

1. Check to make sure SNMP is properly installed. Check your distribution documnetation on how to do this.
2. Check your network firewall and make sure it is configured so that access to port 9100 is not blocked.

Issue 5: I am sharing a printer from another Linux machine using CUPS and I am unable to print to it.
Solution:

This configuration is unsupported currently in HPLIP. To print in this configuration, use HPIJS only.

Issue 6: I am sharing a printer from a Windows machine and I am unable to print to it.
Solution:

This configuration is unsupported currently in HPLIP. To print in this configuration, use HPIJS only and the SAMBA backend (smb:)

Issue 7: I am trying to setup my printer in SUSE using CUPS and am having problems.
Solution:

To install on SUSE, unless you have created a CUPS admin, you must use YaST. Otherwise, printer setup using CUPS will fail. Follow the YaST instructions here.

7.3 Printing Troubleshooting

Issue 1: Print jobs are failing on my 4x6 Photosmart printer.
Solution:

For printers that only support 4x6 page sizes, make sure the page size setting is correct in the CUPS queue. The default page setting may not be correct and print jobs will fail.

Issue 2: I tried printing a document with 'hp-print' but it didn't work.
Solution:

'hp-print' is only designed to print raw printer ready data to the printer. 'hp-print' by-passes the CUPS backend and is not intended for general use. To print raw printer ready data use the "lpr -oraw" command line.

Issue 3: I'd like to view the CUPS error log for debugging and troubleshooting purposes.
Solution:

Refer to the "Enabling Logging" section at this site. With the CUPS LogLevel set to debug, the CUPS error_log will show all programs that are executed during the print job. Generally there are two data paths taken during a print job; 1) HPIJS driver path 2) Postscript driver path. Both data paths will use the "hp" backend.

For the HPIJS path, look for errors near the ghostscript command (gs) command. The gs command will invoke the HPIJS driver.

For the Postscript path, there will be no gs command. Postscript will be passed directly to the "hp" backend and then to the printer.

Issue 4: When printing Letter media, the bottom row is printed incompletely.
Solution:

Some applications use enscript for printing, make the following changes to /etc/enscript.conf. This tip came from Patricio Paez.

from:

DefaultMedia = Letter

to:

DefaultMedia = Letterdj

Issue 5: How do I verify the HPLIP/HPIJS installation?
Solution:

Here are step by step instructions that will help verify the HPLIP/HPIJS installation for printing.

1. Setup a default printer queue for your printer. Use the following command to print a postscript file from the spooler. See your distribution for spooler setup if you have questions.

$ lpr /usr/share/printconf/tests/testpage.ps
If this command fails goto the next step. If this command passes, but fails to print from your application you have an application issue, see your distribution for help.

2. Use the following command to generate a printer-ready-file (ie: PCL/LIDIL).

$ gs -sDEVICE=ijs -sIjsServer=hpijs -dIjsUseOutputFD -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="DESKJET 990" -r300 -dNOPAUSE -dSAFER -sOutputFile=testpage.pcl /usr/share/printconf/tests/testpage.ps -c quit
This command generates a PCL file called testpage.pcl for a Deskjet 990. You can substitute the "DESKJET 990" with your printer model. For more gs command examples see the CUPS error_log (Printing Issue 3).

If this command fails make sure your version of ghostscript supports the "IJS" device. Use the "gs -h" command to verify "IJS" support. If there is no "IJS" support see your distribution for help.

If ghostscript has "IJS" support, but the gs command fails there must be something wrong with the HPLIP/HPIJS installation.

3. With "su" privileges, cat the file directly to your USB port.

cat testpage.pcl > /dev/usb/lp0
If the printer-ready-file prints ok then your HPLIP/HPIJS installation is ok, but your spooler system has a problem, see your distribution for support.

If this step fails your USB subsystem may have a problem goto the next step to verify.

4. Copy the testpage.pcl to another Linux box (or Windows box "copy /b testpage.pcl lpt1:") and repeat step 2.

If the printer-ready-file fails to print send us a copy of the printer-read-file and we will verify the file. If the printer-ready-file prints ok then you have a USB subsystem problem with your Linux box in step 3, see your distribution for help.

Issue 6: How do I print borderless photos from Gimp?
Solution:

The Gimp Print Plugin modifies the RGB gamma values so we don't use the Gimp Print Plugin, but you can still use Gimp to print using HPIJS. Use the follow step-by-step instructions for printing a jpg camera photo on 4x6 photo paper.

1. Open the jpg photo with GIMP.

2. Right click on the image and do a File "save as.." command.

3. In the Save Image dialog, click "Postscript" for file type. Then click ok. This will bring up the Save as Postscript dialog.

4. In the Save as Postscript dialog click "Inch" for units.

5. Set the X-Offset and Y-Offset to zero for borderless.

6. If the picture needs to be rotated select 90 degrees.

7. Set the Width and Height to the desired size of the input image. If the picture is rotated 90 degrees then set the Width to 6 inches and the Height to 4 inches. If the picture is not going to be rotated the set the Width to 4 inches and the Height to 6 inches.

8. If you want to maintain the aspect ratio click "Keep Aspect Ratio".

9. Click ok to finish saving the postscript file.

10. Now you should have a postscript file that can be printed with from the hp-toolbox.

11. Make sure your print queue is set to Full Bleed (borderless) when printing.

7.4 Scanning Troubleshooting

Issue 1: 'xsane' reports error: "Failed to open device: Operation not supported"
Solution:

1.Make sure the line "hpaio" appears in /etc/sane/dll.conf and is not commented out (i.e., no "#" before "hpaio" on the line). Also, note that the "hp" SANE backend (which works with HP Scanjets) is not the same as the "hpaio" SANE backend provided by HPLIP.
2.Try using scanimage to debug the problem:
(note: you may want to comment out SANE backends that you are not using with a "#" character in /etc/sane/dll.conf to make debugging easier)

$ export SANE_DEBUG_DLL=128
$ scanimage -L
Check the output for errors and report them to the HPLIP forum.

Issue 2: OpenOffice or 'xsane' cannot "see" my network connected scanner.
Solution:

For network scanning, the "hp:/net/..." URI must be configured in the CUPS queue for auto-discovery by OpenOffice and xsane. You can manually specify the URI with xsane using the following format:

xsane <"hpaio" device uri>
For example:
xsane hpaio:/net/PSC_750?ip=12.25.63.142
(Where the CUPS installed device URI is: hp:/net/PSC_750?ip=12.25.63.142, and the hp: was replaced with hpaio:)

Issue 3: When scanning multiple sheets with my scanner's ADF, I get an error message.
Solution:

When scanning with the ADF, you must use "batch mode". In 'scanimage', use a command line such as:

$ scanimage -b --batch-scan=yes > output.pnm
In 'xsane', use the provided batch scan mode.

7.5 Photo Card Access Troubleshooting

(TODO)

7.6 Device Manager Troubleshooting

Issue 1: HP Device Manager is non-functional for my device
Solution:

1.Run:
$ hp-info
2.Look at the output for:
[ERROR]: Model query failed.

3.If the model query failed or there are errors in the output, then please report this as a defect to the HPLIP team along with the hp-info output.

Issue 2: When I click "Print..." in the toolbox, I receive an error.
Solution:

1. Install kprinter (part of KDE), or
2. Install XPP

Issue 3: When I click "Scan..." in the toolbox, I receive an error.
Solution:

1. Install xsane, or
2. Install kooka

Issue 4: The front panel display function always says "Display not available"
Solutions:

Generally, only LaserJets and OfficeJets support this functionality. It is always turned off for DeskJets and other single or two function printers. If you feel that you are getting this message inappropriately, please file a defect report.

Issue 5: I installed a printer in CUPS with a usb:, socket:, etc. backend and it doesn't show up in the Device Manager.
Solution:

Only devices installed that are using the "hp:" backend will display in the Device Manager. Re-install the printer using the "hp:" device URI and then re-fresh (with F6) or re-run the Device Manager.

7.7 General Troubleshooting

Issue 1: I am seeing messages like "Unable to find GUI for username..." and "No GUI available" in the system log.
Solution:

These are normal and should not cause any concerns.

Issue 2: How do I check the syslog for HPLIP system errors?
Solution:

With "su" privileges, use the following command to view the syslog. Look for any errors during the time of the failure.

# tail -f /var/log/messages

David Suffield
© 2004-2006 Hewlett-Packard Company
This document is provided "AS IS" without warranties of any kind including warranties of merchantability, fitness for a particular purpose, or non-infringement of intellectual property.
HPLIP 0.9.8, last updated February 6, 2006