Independent printer help. Not affiliated with any printer manufacturer.

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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 everywhere tells CUPS to build the settings from information the printer reports. Then run lpoptions -d Office_Printer to make it your default printer.

    sudo lpadmin -p Office_Printer -E -v ipp://192.168.1.45/ipp/print -m everywhere
  7. 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 .deb and .rpm packages. Avoid drivers or install scripts from unofficial sites.

  8. 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.

  9. Troubleshoot with lpstat

    Run lpstat -t to 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 with sudo cupsenable followed by its name, and clear stuck jobs with cancel -a. For more detail, read the CUPS log with journalctl -u cups or 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.

Press Enter to see all results. Use ↑ ↓ to move.