HP Linux Imaging and Printing

Print, Scan and Fax Drivers for Linux

Manual Build and Install Instructions for Linux From Scratch

Step 1: Installation Prerequisite Steps

View the current Release Notes for additional information on this release.


You will need root access to complete many of the steps while installing HPLIP. If you do not have root access contact your system admin for assistance.


This guide is written merely to provide some hints for installing HPLIP on Linux From Scratch. These steps may or may work and are unsupported. Any corrections or modifications would be appreciated to make this guide more useful for other LFS users.


Please see Step 7 before continuing the install for some possible pre-installation steps.

Step 2: Install Dependency Packages


These package names are provided as a convenience and may or may not be correct.

avahi cupsys cupsys-client cupsddk cupsddk-drivers libcupsys2-dev cupsys-bsd libcupsimage2-dev libdbus-1-dev gcc g++ gs-esp libssl-dev libjpeg-dev libsnmp9-dev libc6 libtool libusb-1.0-0-dev make wget python-imaging python-dbus python-gobject python-dev python python-reportlab sane libsane-dev sane-utils xsane

Step 3: Download HPLIP


We recommend that you download the HPLIP tarball to your home or desktop directory.

A. Click here to Download the Regular Tarball

B. Go to the directory where you downloaded the HPLIP tarball.


cd ~/Desktop

C. Uncompress the tarball.

Enter this command:

tar xvfz hplip-3.17.10.tar.gz

This will create a directory with the same name as the tarball file.

D. Change your working directory to the hplip-3.17.10 directory.


cd hplip-3.17.10

Step 4: Configure HPLIP for installation

A. This step configures the development environment and checks that your system is ready to install HPLIP.

For specific information on using ./configure and the different options please go here. Also reference your distro documentation and configuration for additional information on which tags are relevant.

Enter this command (select the appropriate command depending on your system configuration):

32 bit distro users:

./configure --with-hpppddir=/usr/share/ppd/HP --prefix=/usr --disable-qt4 --disable-qt5 --enable-doc-build --enable-cups-ppd-install --disable-foomatic-drv-install --disable-libusb01_build --disable-foomatic-ppd-install --disable-hpijs-install --disable-udev_sysfs_rules --disable-policykit --disable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build

64 bit distro users:

./configure --with-hpppddir=/usr/share/ppd/HP --libdir=/usr/lib64 --prefix=/usr --disable-qt4 --disable-qt5 --enable-doc-build --enable-cups-ppd-install --disable-foomatic-drv-install --disable-libusb01_build --disable-foomatic-ppd-install --disable-hpijs-install --disable-udev_sysfs_rules --disable-policykit --disable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build

Step 5: Run Make

A. This step will compile the HPLIP source.


You want to run make as a regular user, NOT as root.

Enter this command:


Step 6: Run Make Install


The symlink fix script step is only required for Ubuntu 5.10, Ubuntu 6.06 and Ubuntu 7.04.

A. Run the symlink fix script.

python ./installer/fix_symlink.py

Or to run the script manually run:

cat /installer/fix_symlink.py

B. This step will install HPLIP.

Enter this command:

sudo make install

Step 7: Possible Installation Step(s) (untested)

Find the foomatic filter script "foomatic-rip" wherever it was installed. If it is not installed, download from


and do

cp foomatic-rip /usr/lib/cups/filter/


cd /usr/share/cups/model/
ln -s /usr/share/ppd/HP/* foomatic-ppds

Edit the file /etc/udev/rules.d/25-lfs.rules:

  1. Add the following rule (from SUSE) as a single line to the very top:
SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0644"
  1. Comment out the rules
KERNEL=="lp[0-9]*",      GROUP="lp"
BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k", GROUP="lp"

by inserting a hash (#) in front of them

  1. Make sure that your HP-device is plugged in and turned on. Run the following script to stop the udev-daemon:
T=`pidof -x udevd`; kill $T

Then start the udev-daemon again by running:

/etc/rc.d/init.d/udev start

When udev is started, run:


and see if your device has been detected. If "lsusb" is not available (it is part of "usbutils") you could also do:

If there is something, your device is seen correctly for the purposes of hplip.

B If you are going to be setting up a printer with USB and the printer is already plugged in, you will need to do one of the following:

  1. Unlpug and re-plug in the USB printer, or
  2. Restart your PC.

Failure to do this will cause your USB printer to not be detected by HPLIP.

Step 8: Configuring your printer using hp-setup

Continue to hp-setup