Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I use CUPS, should clients have drivers installed locally?

Example: say we have 1 Networked PC with Linux, 1 Print Server (or CUPS, Samba Print server)

If the Linux PC wants to print a document through the print server, is the Linux PC required to have the drivers for the printer it is going to use?

Or does it use some generic API?

share|improve this question
I am fighting with CANON LBP printers. I tried everything! ANd can't get them working locally. But I need Linux computers to be able to print with them. LBP 810 and LBP 1120 ones. – bakytn Sep 20 '11 at 10:05
I think your problem is that the LBP810 (and maybe the 1120) are winprinters, with all the intelligence on the computer. IIRC there were never any linux drivers produced for the 810 (at least). See my edit below for some suggestions. – ConcernedOfTunbridgeWells Sep 20 '11 at 13:38
Linux -> no ; Windows -> should but not mandatory – MUY Belgium Aug 25 '15 at 12:33
up vote 7 down vote accepted

The print server running CUPS is the only machine that needs to have the drivers. Read about CUPS on Wikipedia for example - in Overview section it states this quite clearly :

CUPS allows printer manufacturers and printer-driver developers to more easily create drivers that work natively on the print server. Processing occurs on the server, allowing for easier network-based printing than with other Unix printing systems. With Samba installed, users can address printers on remote Windows computers and generic PostScript drivers can be used for printing across the network.

Otherwise, what would be the be the real benefit of running CUPS?

share|improve this answer

If you're using Samba/CUPS as a print server for windows based clients then the clients will normally have drivers for that printer, although in some cases CUPS can do its own translation. For example, it is possible to set up ghostscript and render postscript to display on a non-PS printer, although the Windows clients would need a PS driver that plays nicely with this.

For Linux clients, the answer is: It's complicated but not. Traditional Unix/Linux does not have a standard native print or rendering API equivalent to Windows's GDI, although libraries such as Cairo can provide this functionality for applications that use them. Most traditional unix applications just print ASCII to stdout or generate Postscript files natively. Device-independent rendering libraries such as Cairo will just render to Postscript through their own driver, which would be bundled on the client with the library.

You will almost certainly find Postscript somewhere in the workflow for a CUPS or older lpr/lpd print system. Typically the clients will produce ASCII or Postscript output. ASCII output will be converted via something like a2ps and Postscript just passed through. The Postscript will be passed through to the printer or a rendering layer based on Ghostscript.

It's been a while since I set up a linux based print subsystem, but IIRC the PS drivers are pretty generic with just a PPD file for the target printer. The clients do not necessarily need to know much about it. Traditionally you just set up queues for printing in different ways (e.g. duplexed, non-duplexed or letterhead) and they become separate print destinations.

If you're using apps with local printer control, for example apps using the GNOME-Print API, or printing files directly with lpr -o options then the print facility can exercise more control over the actual printer destination. For example, particular trays or duplexing options can be selected. If you have a correct PPD file for the printer installed on the CUPS server then these options should work from the client without requiring the client to have additional driver software installed.

EDIT: In your case I think the problem might be that the LBP810 is a winprinter and there were never any Linux drivers produced for it. Your best bet might be to get a different printer, which can be done very cheaply if you approach it right.

Secondhand laser printers are very cheap on Ebay, and you can get a Laserjet 4100 or something similar for about 100 USD, depending on your location. All midrange HP lasers support Postscript or PCL5/6 and will play nicely with Linux and CUPS. You should have little trouble getting one of these to work and used ones are so cheap you can treat them as a throwaway item.

share|improve this answer
You say that when a PPD is installed on the CUPS server, client do not need drivers. What about Windows clients that explicitly requires a driver when adding a CUPS-shared printer? – CDuv Jan 2 at 2:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.