Skip to content

Instantly share code, notes, and snippets.

@mwilck
Last active October 8, 2025 21:44
Show Gist options
  • Select an option

  • Save mwilck/e09b650047d846db5a8dd8e422171335 to your computer and use it in GitHub Desktop.

Select an option

Save mwilck/e09b650047d846db5a8dd8e422171335 to your computer and use it in GitHub Desktop.
HP printer support on openSUSE with HPLIP (update 2025-08)

What Is HPLIP?

HP Linux Imaging and Printing is Hewlett Packard's software package with drivers and tools for HP's printers, scanners, and all-in-one devices.

Do I Need HPLIP for My HP Printer or All-in-one Device?

Perhaps no. Almost all modern network printers, including those from HP, support driverless printing using the Airprint™ or IPP Everywhere™ standards. See the OpenPrinting setup tutorial. Driverless scanning is possible too, thanks to sane-airscan.

Do I Need HPLIP Nonetheless?

Perhaps yes. First of all, the driverless standards work only for (relatively) recent network printers. You need HPLIP if you have locally connected (e.g. USB) printers or older models that don't support IPP everywhere™. Secondly, there are subtle differences between driverless operation and operation with the HPLIP driver which will affect page margins, colors, options, and general print quality. There is no general rule which setup will serve you better with the printer / scanner model you have. Finally, HPLIP provides some useful extra functionality such as checking ink levels or cleaning heads.

What Do I Have to Install to Use HPLIP?

On openSUSE, the hplip package is split into separate sub-packages that you can install in various combinations according to your needs.

1. Full installation

Simply install the hplip package. This will provide almost1 the full user experience from the upstream installer2. You will have the printer and scanner drivers, PPD (PostScript Printer Description) files, and a collection of command-line and graphical tools for device setup, maintenance, and monitoring. The graphical utility hp-toolbox provides access to the full functionality of HPLIP, and the easiest way to set up a new device.

The downside of the full installation is that it has a rather large install size and pulls in a lot of dependencies.

2. Basic Setup for Adding New Printers and Scanners

This setup allows adding and using printers and scanners with a much smaller install size compared to the full installation. You need the hplip-base package and its dependencies, and at least one package providing PPDs:

  • hplip-driver-hpcups or hplip-ppds-hpcups for printers using the "hpcups" filter, i.e. almost all recent models3,
  • hplip-ppds-hpps for PostScript printers using the hpps filter,
  • hplip-ppds-postcript for other PostScript printers,
  • hplip-ppds-plugin for printers that require the proprietary HPLIP plugin,
  • hplip-ppds-fax for some fax devices,

hplip-base includes those HPLIP utilities that don't require a graphical user interface, including hp-probe, hp-setup, and hp-plugin.

How Do I Find the PPD for My Printer?

In the vast majority of cases, hplip-driver-hpcups will be sufficient.

On Tumbleweed or SLE/Leap 16, you can run zypper info --provides on any of thehplip-driver- and hplip-ppds- packages to obtain a list of supported printer models. It will print a long list of lines containing postscriptdriver and the vendor and model name. Run e.g. zypper install 'postscriptdriver(hp;officejet_pro_k5300;)' to install the package containing the required PPD.

How Do I Obtain the Device URI?

Run the hp-probe utility1 from the hplip-base package to detect connected printers. You may have to play with the options; for modern network printers using the DNS-SD discovery method, hp-probe -b net -m avahi will work best4. On success, hp-probe will output a hp:/... URI for your device.

This URI can be entered in your system's CUPS web interface ("Administration→Add Printer") to add the printer.

How Do I Add a New Printer from the Command Line?

Obtain the device URI using hp-probe as described in the previous paragraph and the PPD ("model") from the output of lpinfo -m. Use the obtained values like below to create the queue:

lpadmin -v 'hp:/net/Smart_Tank_7300_series?ip=192.168.10.23' \
        -m 'drv:///hpcups.drv/hp-smart_tank_7300_series.ppd' \
        -p hplip

This example shows a minimal command line for creating a queue. You may want to use additional options like -E for enabling the queue, or one or more -o options. See the man page lpadmin(8).

How Do I Use the Proprietary HPLIP Plugin?

Some HP printers and all-in-one devices need a proprietary plugin for operation. The plugin can't be shipped by openSUSE because it isn't open source. To install the plugin, use the hp-plugin tool from the hplip-base package, or use hp-toolbox. You need the plugin that matches your version of hplip exactly; therefore the plugin needs to be reinstalled after updating HPLIP to a new upstream version (e.g. 3.25.2 → 3.25.6).

3. Minimal Setup for Printing and Scanning

After the queue has been set up, the PPD package(s) that were required for initial setup can be uninstalled, because your printer's PPD will have been copied to /etc/cups/ppds. hplip-base can also be uninstalled, unless you are interested in the functionality of the tools it provides5. For daily printer operation (after initial printer / scanner setup), you only need the hplip-cups package and its dependencies. For scanning, hplip-sane will suffice.

4. Comfortable Setup for Printing, Scanning, and Administration

This is like 3., but with the hp-utils package added. It will give you the full set of HPLIP utilities including hp-toolbox. Unlike 1., it does not contain any of the packages containing PPDs, which are only necessary for setting up new devices.

How Can I Report a Bug?

Use Launchpad to report HPLIP bugs. Use openSUSE bugzilla to report a bug in the openSUSE package. See also How To Report a Printing Issue.

Footnotes

  1. If the device has scanner capabilities, the URI can also be determined by running scanimage -L. 2

  2. Using the upstream installer under openSUSE is strongly discouraged.

  3. The cups-driver-hpcups package contains a .drv file from which CUPS will extract the macthing PPD for your printer during the setup procedure. cups-ppds-hpcups contains static, precompiled PPD files.

  4. This requires a running avahi daemon and an open MDNS port in the firewall (CAUTION: be sure not to compromise your system security. MDNS should only be enabled on trusted networks).

  5. If your device needs the proprietary plugin, you'll have to keep hplip-base in order to be able to update the plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment