Key Takeaways
- Most modern printers work on Linux with no driver at all, thanks to driverless IPP printing built into CUPS.
- When you do need a driver, your distribution’s own package manager is the safest first stop, and it is free.
- HP owners have it easy: the HPLIP package covers thousands of models with one install.
- The CUPS web interface at localhost:631 lets you add any printer and pick a driver from a browser, no terminal required.
- Only download a driver directly from the maker when the built-in options fail, and always match your exact model.
The first time I plugged a printer into a Linux laptop, I braced for a fight. To my surprise, the page came out before I had even finished making coffee. That is the pleasant secret of printing on Linux today: much of it just works. When it does not, the fix is usually a single command or a few clicks in a browser tab. In this guide you will learn every reliable way to install printer driver Linux setups need, from automatic detection to manufacturer packages, plus how to test the result so you know it is really working.
What “installing a driver” actually means on Linux
On Linux, the printing system is called CUPS (the Common Unix Printing System). It sits between your applications and the hardware, taking your document and turning it into something the printer understands. A driver, in this world, is really just a small description file that tells CUPS how to talk to one specific model.
Here is the part that trips people up. Many newer printers speak a shared language called IPP, so CUPS can drive them with no model-specific driver at all. That is why a fresh install sometimes prints without you doing a thing. If you want the wider background on how these pieces fit together, our complete guide to printer drivers and common fixes lays it all out in plain language.

Before you start: three quick checks
A little prep saves a lot of guessing later. None of this takes more than a minute or two.
- Find your exact model number. It is printed on a sticker on the front or back of the printer, and it matters because “Canon PIXMA” is not specific enough.
- Note how the printer connects: USB cable, home Wi-Fi, or a wired network port. Wireless and network printers are usually the easiest on Linux.
- Confirm CUPS is running. On most desktops it already is, but you can check with the command
systemctl status cupsin a terminal.
Tip: Before installing anything manual, turn the printer on and plug it in first. Linux often detects it right then and offers to finish setup for you, which means you may not need a driver at all.
Method 1: Let your desktop detect it automatically
This is the path most people should try first. It costs nothing, needs no downloads, and works for the majority of home printers made in the last several years.
- Open your system settings. On GNOME (Ubuntu, Fedora), go to Settings, then Printers. On KDE (Kubuntu), open System Settings, then Printers.
- Click Add Printer or the plus button. Your desktop scans USB and the local network.
- Pick your printer from the list when it appears. If it uses IPP or AirPrint, it may show up as ready to go with no driver step.
- Print a test page from the same screen to confirm it works.
If the printer prints cleanly, you are finished. There is genuinely nothing more to install. If it appears but pages come out garbled or blank, the automatic match picked a generic profile, and one of the methods below will give you a better one.
Method 2: Install a driver package from your distro
When automatic detection is not enough, your Linux distribution ships free driver collections you can install in one line. Two names cover most printers: Gutenprint (a huge library of inkjet and laser drivers) and HPLIP (HP’s own package for its printers and all-in-ones).
Open a terminal and run the command that matches your distribution:
- Ubuntu, Debian, or Mint:
sudo apt install printer-driver-gutenprint hplip - Fedora:
sudo dnf install gutenprint hplip - Arch or Manjaro:
sudo pacman -S gutenprint hplip
After it finishes, go back to Settings, then Printers, and add the printer again. This time CUPS can offer a driver built for your exact model. HP owners can also run hp-setup in a terminal, which walks you through detection and driver selection with a friendly wizard.

Method 3: Use the CUPS web interface
Every Linux machine with CUPS has a hidden control panel you reach through a browser. It is the most flexible option, and it works the same across every distribution, so it is worth knowing even if you prefer clicking around a settings app.
- Open a browser and go to
http://localhost:631. - Click Administration, then Add Printer. You may be asked for your Linux username and password.
- Choose your printer from the list of detected devices, or enter its network address by hand.
- On the driver screen, select the make and model. If you installed Gutenprint or HPLIP, your model should be listed.
- Finish the wizard, then use Maintenance, then Print Test Page to confirm the result.
The web interface is also where you upload a PPD file, which is a small text driver some manufacturers provide. If you have downloaded one, choose “Provide a PPD file” on the driver step and point it at the file.
Method 4: A driver straight from the manufacturer
Some brands, Brother especially, offer Linux drivers as downloadable .deb or .rpm packages or as a small install script. Reach for this only when the free built-in options do not list your model, since a manufacturer package is more to maintain.
Visit the brand’s official support site, search your exact model, and choose the Linux section. Download the package that matches your system (.deb for Debian-based distros, .rpm for Fedora), then install it. Brother, for example, bundles a driver install tool that sets up both the printer and scanner in one go.
Warning: Only download drivers from the manufacturer’s own domain or your distribution’s official repositories. Random “driver download” sites often bundle the wrong file or unwanted extras. When a search result looks off, close it and go straight to the maker’s support page.
Which method should you use?
Here is how the four approaches compare, so you can pick the shortest path that fits your printer and comfort level.
| Method | Best for | Skill level | Cost |
|---|---|---|---|
| Automatic detection | Recent Wi-Fi and USB printers | Beginner | Free |
| Distro package (Gutenprint, HPLIP) | Most inkjets, lasers, and all HP models | Beginner | Free |
| CUPS web interface | Full control and PPD files | Intermediate | Free |
| Manufacturer package | Models not covered elsewhere (often Brother) | Intermediate | Free |
A real example from my own desk
Last spring I set up an older Brother HL-L2350DW laser printer on a Linux Mint machine for a friend who was switching away from Windows. Automatic detection found it on the network but only offered a generic driver, and double-sided printing refused to work.
I downloaded Brother’s Linux install script from their support site, ran it in the terminal, and answered a couple of yes-or-no prompts. Two minutes later, duplex printing worked and the test page came out crisp. The lesson I keep relearning: try the free built-in route first, then go to the maker only for the last mile.
When it still will not print
If pages refuse to appear, a few checks clear up most cases. First, make sure the CUPS service is running with systemctl status cups, and start it with sudo systemctl start cups if it is not. Second, add yourself to the print group using sudo usermod -aG lpadmin $USER, then log out and back in, since permission gaps quietly block jobs.
Third, open the print queue in Settings and clear any stuck jobs, because one failed job can freeze the ones behind it. For a broader walkthrough, our category of printer driver guides and fixes covers stuck queues and reinstall tricks in more detail.
Two sources are worth bookmarking. The Wikipedia overview of CUPS explains the system in neutral terms, and HP’s official support site is the right place for HP-specific downloads. You can read how we test and source these steps on our editorial policy page.
Frequently Asked Questions
Do I always need a driver to print on Linux?
No. Many printers made in the last several years support driverless IPP printing, so CUPS can run them with no model-specific driver. Plug the printer in or connect it to Wi-Fi, and your desktop often sets it up on its own. You only need a driver when detection fails or output looks wrong.
How do I install an HP printer driver on Linux?
Install the HPLIP package with your package manager, for example sudo apt install hplip on Ubuntu. Then run hp-setup in a terminal, which detects your printer and picks the right driver through a simple wizard. HPLIP supports thousands of HP models and handles scanning on all-in-ones too.
What is a PPD file and where does it go?
A PPD file is a small text driver that tells CUPS how to handle one printer model. If a manufacturer gives you one, add your printer through the CUPS web interface at localhost:631, choose “Provide a PPD file” on the driver step, and point it at the downloaded file. CUPS handles the rest.
Why does my printer show up but print blank or garbled pages?
That usually means CUPS matched a generic driver instead of one built for your model. Install Gutenprint or HPLIP, remove the printer, then add it again so the correct driver is offered. If your model is unusual, a manufacturer package or PPD file will give you the exact match you need.
Is the terminal required to install a printer driver on Linux?
Not at all. You can add most printers entirely through your desktop’s Settings app or the CUPS web interface in a browser. The terminal is handy for installing driver packages quickly or running HP’s wizard, but it is optional. Pick whichever route feels comfortable, since the end result is the same.
Wrapping up
Printing on Linux has come a long way. Start by plugging in and letting your desktop try automatic detection, then add Gutenprint or HPLIP if you need a proper driver, and keep the CUPS web interface in your back pocket for anything unusual. Manufacturer packages are there for the rare model the free tools miss.
Take it one calm step at a time and test after each change, so you always know what fixed it. When you are ready to go deeper, browse the rest of our driver guides for setup tips, clean reinstalls, and queue fixes. Your printer will be humming along under Linux before you know it.