Printers & Linux

Linux comes with all of the most common printer drivers already installed, so to use your printer just plug it in, turn it on, and start printing.

printing from libre office

If plug-and-play isn't working for you, then you probably need a driver. There are three types of printer drivers for Linux:

  1. Gutenprint. A package of about 700 printer drivers. Yes, that's seven-hundred.

  2. Ghostscript. A free version of Postscript, a type of printer driver used on many high-end printers.

  3. Manufacturer drivers. Sometimes the manufacturer of a printer makes their printer..."unique". In this case, you might find a driver for the printer on the manufacturer website.

Of these, Gutenprint should already be installed. If it isn't, or you feel it needs an update, you can find it through the Add/Remove application available from the Activities Overview.

To access the Activities Overview, move your mouse into the top left corner of your screen. Once the Activities Overview dashboard appears, start typing Add and the Add/Remove Software application should appear in your search results.

Launch Add/Remove Software. Once it's open, do a search for gutenprint. Install the gutenprint driver packages.

installing drivers

If that doesn't fix the issue or if gutenprint was already installed, then you may need a different set of drivers. If your printer is a Postscript printer, then you can try installing Ghostscript and Foomatic driver packages.

Install these drivers the same way as you installed the gutenprint drivers; launch the Add/Remove Software application, search for ghostprint and install all packages that look relevant to you. Then search for foomatic and install relevant packages from the results.

If neither of these methods work, then you must look to the internet for drivers. There are two safe places to locate drivers for your devices; make no exceptions. Just as on Mac or Windows, installing software you find from random websites is dangerous!

First check openprinting.org, an online database of nearly all the available free and trusted printer drivers for Linux and Unix. Search their database to locate an available driver and either install or download it for later use. If you find an RPM file, then you can install it while you download it. If you find a PPD file, then you'll need to install it manually.

If you don't find a driver on openprinting.org, then your last resort is the manufacturer's website. This, of course, will differ from manufacturer to manufacturer, so just go to the website, look for driver downloads, and try to find a Linux installer for your printer model.

If you've managed to find your driver and get it installed, then you're finished! Plug your printer in, turn it on, and let Linux do the rest. Return to this site's peripherals menu to learn about more devices and Linux.

If you found a PPD file, then you've successfully found a Postscript configuration file for your printer. This is a good thing, because now you can configure the printer manually.

Plug your printer into your computer (or network if it's a network-attached printer) and turn it on.

The printer configuration utilities on Linux are friendly and effective. How friendly and effective? it was so popular that Apple paid top dollar for rights to its trademark (CUPS) and now maintains the code (which, thanks to the GNU General Public License, remains free).

Launch the printer control panel by going to the Activities Overview (move your mouse into the top left corner of your screen until the Actitivies dashboard appears) and choose System Settings from the list of Applications.

Find the Printers control panel in the System Settings window and click to activate it. Click the Unlock button in the top right corner of the printer configuration window, and enter your password.

To add a new printer, click the plus sign in the lower left of the printer control panel.

manually configuring a printer

Your computer will scan for available printers and should find your printer as long as it's plugged in and turned on. If it doesn't, you can specify its location on the network by entering its IP address.

Click the Forward button to move on with configuration; Linux will search for a matching driver. If you're at this step at all, it probably won't find a driver, so you'll be prompted for the printer's manufacturer and model number, and then for a driver file. Point the configuration to the PPD file you downloaded from openprinting.org or the manufacturer's site.

Continue through any remaining configuration screens until your printer has been added to your printer list, and then you're done. If you're adding more than one printer, you can set a default printer by selecting the printer in the list on the left of the control panel and placing a checkmark in the /Default/ option on the bottom right.

Common Unix Printing System (CUPS)

If you can't find the Printer control panel in System Settings on your computer, try going directly to the backend technology that it uses: CUPS. Configuration through CUPS occurs in any web browser (although it's not actually doing anything on the web; you're only using the web browser to access CUPS on your local system).

  1. Open your web browser and navigate the URL http://localhost:631
  2. You will probably be asked for administrative permission to access this page. Enter root as the username and then enter the root password. If this fails, then you may have configured your system such that you are an administrator, so try entering your own username and password.
  3. Once authenticated, you'll see the main control panel for CUPS.
  4. image: CUPS control panel in a web browser
  5. In the top menu of the CUPS screen, click Administration, and then click the Add Printer button.
  6. The initial Add Printer screen offers a few options; Local printers that are physically connected via a USB cable to your computer, Discovered printers that are connected to your network (often Shared by other computers on your network), and Other Network printers that use a variety of protocols. If the printer you are attempting to set up is locally connected, then select the USB printer. If you are adding a Network printer, then select it via the LPR protocol.
  7. image: adding a printer
  8. You might be asked to provide an IP address (for network printers), depending on how you are identifying your printer to the computer. Otherwise, you will be asked to provide a Description and Location for your printer. These should be names and phrases that make sense to you; the description might be "Epson 4800" with a location of "Living Room", or it could be "Mom's printer" with the location of "Mom's Office", and so on. In other words, there are no right or wrong answers here, as long as you know what the description is referring to.
  9. Finally, you must identify what driver your computer should use to communicate with the printer. The driver might already be selected for you, but if not just search through the list and select the correct driver. If the driver is not in the list, then you need to install the driver or PPD for that printer.
  10. image: selecting a driver
  11. To make sure your new printer is working, print a test page by navigating back to the admin page of CUPS and clicking the Manage Printers button.
  12. Choose your printer from the list of printers to be taken to that printer's configuration screen.
  13. In the printer's configuration screen, choose Print Test Page from the Maintenance menu.
  14. image: printing a test page
  15. If no test page prints, verify that the printer is turned on and connected to your computer, and that you are using the correct driver. If the printer is a network printer, also verify that you are accessing it using the correct protocol; usually LPR/LPD is the correct protocol, but in some cases printers will be configured to use HPLIP, HTTP, SAMBA, or any number of network protocols.

Now that you've added the printer via CUPS, the printer will be available everywhere on your system. You can use CUPS to modify your printer settings, monitor print jobs, add new printers, and nearly everything else you ever want to do with printers.

If All Else Fails...

If you've tried all of these options and nothing seems to work, then you might just have one of those printers that will not work with Linux. Again, don't just settle for this; email the printer manufacturer and encourage them to provide Linux drivers, and to use and follow Open Standards. There's no reason a simple output device like a printer should not work on all computers, regardless of platform!

That won't do much for you right now, though. You'll probably have to go and find a new printer.

On your old computer system, you'd have gone to a store and looked at available printers, and you'd double-check compatibility to ensure the printer you intended to buy was designed at least in part with your operating system in mind. You may have seen the nearly ubiquitous "Designed for Windows" stickers on printers, and a few "Compatible with Mac" stickers (the consumer computer market is not well-known for diversity), but very infrequently will you see anyone put a Penguin logo on the box.

The internet once again comes to the rescue; before you purchase a new printer, look at your options and then look for those printers online to see what other Linux users are saying about them. If a printer is not working well with Linux, you'll probably find a few dozen posts about it from angry consumers. Go to the printer manufacturer's website, look for drivers there. Go to openprinting.org and see if they offer drivers for the printer you think you want to buy. If you can't find support, then avoid that printer!

If you've managed to find your driver and get it installed, or else if you've gone out and purchased a new printer, then you're finished! Return to the peripherals menu to learn about more devices and Linux.