How to add a printer on Linux
Add a network or USB printer on Ubuntu, Fedora or Mint with driverless IPP Everywhere, your desktop settings, the CUPS web page or the maker's driver.
Ubuntu, Fedora, Linux Mint and most other distributions print through CUPS, the same print system macOS uses underneath. Most printers sold in recent years support driverless printing through IPP Everywhere or AirPrint, so Linux can find them on the network or over USB and set them up without installing a driver. Older printers may need a driver package or a PPD file from the maker.
Steps
Linux (Ubuntu, Fedora, Mint)
0 of 9 steps tried
-
Check whether it was added automatically
Connect the printer to the same network as your computer, or plug in its USB cable, and turn it on. Recent versions of Ubuntu and Fedora often make driverless printers available by themselves, so open any app, press Ctrl + P and look for the printer in the list. If it's there and a test page prints, you're done.
-
Add it in GNOME Settings
On Ubuntu, Fedora Workstation and other GNOME desktops, open Settings > Printers and click Add Printer, entering your password if asked. Pick the printer from the list, or type its IP address or host name into the search box at the top of the window to find it directly.
-
Add it on KDE Plasma or Linux Mint
On KDE Plasma desktops, open System Settings > Printers and choose to add a printer. On Linux Mint, open the Printers tool from the menu and click Add. Both list printers found on the network and over USB, and let you enter an address for one that isn't listed.
-
Choose driverless when offered
When the add dialog offers a choice of driver or connection, prefer entries labelled IPP Everywhere, driverless or IPP network printer. These use the printer's own description of its features, so two-sided printing, trays and color usually work without extra software. Generic PCL or PostScript drivers are a fallback for older printers.
-
Use the CUPS web interface
Every CUPS system has a browser-based admin page. Open
http://localhost:631, go to Administration > Add Printer, and sign in with your Linux username and password when asked; your account needs administrator rights. The page may switch to a secure address and show a certificate warning, which is normal for this page on your own computer. It's also handy for checking queues and cancelling stuck jobs. -
Add a printer from the command line
If you know the printer's IP address and it supports IPP Everywhere, one command adds it. Replace the name and address in the example with your own;
-m everywheretells CUPS to build the settings from information the printer reports. Then runlpoptions -d Office_Printerto make it your default printer.sudo lpadmin -p Office_Printer -E -v ipp://192.168.1.45/ipp/print -m everywhere -
Install the maker's Linux driver if needed
Some older or budget printers don't support driverless printing and need a driver. Check your distribution's software tool or package manager first for packages such as Gutenprint or HPLIP, which cover many models, then the downloads for your model on the manufacturer's official support website, where some makers offer
.deband.rpmpackages. Avoid drivers or install scripts from unofficial sites. -
Use a PPD file from the maker
For some PostScript printers, the maker supplies a PPD (PostScript Printer Description) file rather than a full driver. In the add printer dialog or on the CUPS web page, choose the option to provide a PPD file and select it. CUPS treats PPD files as an older approach, so use driverless setup instead whenever the printer supports it.
-
Troubleshoot with lpstat
Run
lpstat -tto see whether the CUPS scheduler is running, which printers are set up and enabled, and which jobs are waiting. If a printer shows as disabled, re-enable it withsudo cupsenablefollowed by its name, and clear stuck jobs withcancel -a. For more detail, read the CUPS log withjournalctl -u cupsor in/var/log/cups/error_log.lpstat -t
Tips
- If network printers never appear in the list, check that the Avahi service is running and that a firewall isn't blocking multicast DNS (mDNS), which Linux uses to discover printers. Adding the printer by its IP address works either way.
- Scanning is separate from printing on Linux. Many all-in-ones scan without a driver through the SANE backends for eSCL and WSD, such as sane-airscan, in apps like Document Scanner.
- Reserve the printer's IP address in your router so a printer you added by address keeps working after the router restarts.
- If the printer shows up twice, one entry was usually created automatically and the other is the one you added. Keep the one that works and remove the other in Settings or on the CUPS web page.
Common questions
Do I need a driver to print on Linux?
Usually not for printers that support IPP Everywhere or AirPrint, which covers most network printers sold in recent years. Older printers and some budget USB-only models still need a driver package or a PPD file.
What is localhost:631?
It's the CUPS web interface running on your own computer. You can add and remove printers, change default options and see or cancel print jobs there, signing in with your administrator account when a change needs it.
Why is my printer stuck as paused or stopped?
CUPS stops a queue after certain errors, such as the printer being unreachable. Fix the cause, then resume the printer from your desktop's printer settings, the CUPS web page, or with sudo cupsenable followed by the printer name.