Install HPLIP on Fedora
If your HP printer suddenly goes silent or starts spitting out a wall of error messages after a kernel upgrade or a stray RPM install, you’re probably missing the right version of HPLIP for your Fedora system. This guide shows exactly how to get the latest HPLIP running so that the printer speaks again.
Why the “just drop the .rpm” approach usually fails
Fedora’s default package manager pulls the older, stable release from the official repos. Those versions are often too old for newer HP models or recent kernel changes. Trying to force‑install an RPM can leave you with broken modules that complain about missing libraries. The key is to let the HPLIP project’s own repository do the heavy lifting.
Enabling the Official HPLIP Repository
sudo dnf config-manager --set-enabled fedora-updates-testing # optional but handy for bleeding‑edge drivers
The official HPLIP repo lives on HP’s servers. Add it with:
sudo dnf install https://dl-ssl.hp.com/hp-linux-imaging-and-printing/rpm/fedora/10/HPLIP-release-10-1.noarch.rpm
Why this matters: The repo contains the latest RPMs that have been patched for the newest kernels and system libraries. Without it, you’ll end up with an outdated driver that can’t load.
Installing or Upgrading HPLIP
sudo dnf clean all sudo dnf install hplip
If you already had a version installed, this will upgrade in place. If the old package was left over from a manual install, remove it first:
sudo dnf remove hplip sudo dnf install hplip
Why this matters: Cleaning ensures no stale metadata lingers; removing guarantees you’re not fighting two different versions of the same library.
Checking and Loading Kernel Modules
After installation, confirm that the hpcups module is loaded:
lsmod | grep hpcups
If nothing shows up, load it manually:
sudo modprobe hpcups
Why this matters: The kernel module provides the low‑level interface between CUPS and your printer. Without it, even a correctly installed HPLIP cannot talk to the hardware.
Verifying with hp-setup
Run the wizard:
hp-setup
Choose “Local Device” if you’re on the same machine or “Network Device” otherwise. Follow the prompts; it will automatically register your printer with CUPS and download any firmware needed.
Why this matters: hp-setup does a sanity check on the whole stack: driver, module, CUPS, and firmware. If something’s off, it will point you to the exact step that failed.
Common Pitfalls (and how I ran into them)
I once had an HP LaserJet 4200 that stopped printing after pulling the latest kernel update. The printer light blinked red, and when I tried lpq, CUPS said “cannot open device.” I found out that the old HPLIP package I’d installed from a third‑party repo hadn’t been compiled against the new kernel headers, so the module failed to load. Removing it and installing the official RPM fixed the problem in minutes.
Another headache: after a manual install of hpijs from an older source, CUPS would reject any jobs with “unsupported feature.” The solution was simply to uninstall that legacy package and let the official HPLIP handle everything.
Final sanity check
Print a test page:
sudo hp-test-setup
If the printer responds and you see a clean PDF on the screen, congratulations—you’re good to go. If not, double‑check the CUPS status with systemctl status cups and look for any “module load failed” messages.
That’s all there is to it. Drop those old packages, pull the official repo, and let hp-setup do its thing. Your HP printer should be back in business before you can say “print job queued.”