How to install Linux Canon Printer Driver in Ubuntu

By default, the Canon Printer driver not available in Ubuntu. However, Canon kindly provide Linux drivers for their inkjet printers.
After hours of searching and trying various methods I finally found the solution! I managed to get my Canon LBP2900 installed on Ubuntu 11.4!
These instructions will help get your LBPxxxx Canon Printer driver installed and automatically starting with monitor on:

  1. Ubuntu 11.04 – Natty
  2. Ubuntu 10.10 – Maverick
  3. Ubuntu 10.04 – Lucid

Linux Canon Printer Driver in Ubuntu
Linux Canon Printer Driver in Ubuntu

Using Package Repository

The Canon CAPT printer driver is split into two packages: cndrvcups-capt and cndrvcups-common available from the Canon printer driver PPA. As of May 2011, this PPA contains 2.20 version of the Canon drivers, build for i386 and amd64 on Lucid, Maverick and Natty. This is the easiest way to install the drivers.

To add the PPA to your system and install the packages do:

sudo add-apt-repository ppa:michael-gruz/canon
sudo apt-get update
sudo apt-get install cndrvcups-capt cndrvcups-common

Install without using the package repository

Using the prebuilt packages from the package repository is the easiest way to install the Canon drivers. If for some reason you prefer to use the older install method that does not utilise a package repository, read the following instructions.
Download Official Canon Printer Driver then choose the right install package.
Unfortunately, they’re not designed for Ubuntu and they are compiled to work only on a 32bit OS. Therefore the only solution for the one is to compile their own drivers using Canon’s sources, but not following Canon’s instructions.
An alternative and more hassle-free solution would be to use an automated BASH script that handles all the installing procedures and works both on 32-bit and 64-bit systems (while the guide mentioned before is useful only for people with 32-bit machines & Ubuntu 10.10). The archive containing the script is located here.
The current supported printer models for the 1.90 release of the driver are: LBP-1120, LBP-1210, LBP2900, LBP3000, LBP3010, LBP3018, LBP3050, LBP3100, LBP3108, LBP3150, LBP3200, LBP3210, LBP3250, LBP3300, LBP3310, LBP3500, LBP5000, LBP5050, LBP5100, LBP5300, LBP7200C.
Running the script is pretty easy:


where PRINTER_MODEL is one from the above. Any other printer model you would try to use will give you an error message and the script will exit.
Make sure you have ESP Ghostscript and OpenPrinting Driver Interface installed on your system. If you are not sure, type following command into a terminal:

% gs -h | grep opvp

this should output:

lj5mono ljet2p ljet3 ljet3d ljet4 ljet4d ljetplus nullpage opvp oprp pbm

if you don’t get the correct line the OpenPrinting Driver Interface is not installed and you should install it before you proceed.
To install the ESP Ghostscript which has the OpenPrinting Driver Interface, first, be an administrator, and open the file “/etc/apt/sources.list” of your system, and add the list by following two lines, and save the file.

deb debian_dic main contrib non-free
deb stable main contrib non-free

Next, install the new ESP Ghostscript by the following command.

$ sudo apt-get update
$ sudo apt-get install gs-esp

Adding a printer

Go to System->Administration->Printing add printer. Choose “Add printer“. Do not choose USB Printer found by Ubuntu here. Select “CAPT Printer”. You should see “ccp” in URI. Change it so URI should become “ccp:/var/ccpd/fifo0”. Click “next”, find your model and add your printer. Choose English variant if you see Japanese and English variants. Also If you do not have you exact model in list, choose nearest. For example, for LBP 810, I choose “LBP 1120”.
To view your Canon printer information, type this command below into Terminal:

$ sudo ccpdadmin

you will get:

  ccpdadmin [-p Printer-name -o Printer-dev-path]
  ccpdadmin [-x Remove-Printer-name]

 CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787

 Entry Num  : Spooler   : Backend       : FIFO path             : Device Path   : Status
     [0]    : LBP810    : ccp           : /var/ccpd/fifo0       : /dev/usb/lp0  :

Now it is time to restart the system. If all goes well the system should restart and at the login page be able to print. This guide will not cover setting up cups for network printing.

After you login open a terminal and run:

sudo /etc/init.d/ccpd status
Canon Printer Daemon for CUPS: ccpd: 1135 1131

This shows the process Id’s for the two ccpd processes that should now be running. If you only see one then you still have a problem with the way the ccpd daemon is starting. Please check carefully you have completed all the steps above.

At this point you should be able to print a test page all being well.

If you run into problems try turning your printer off, restart your computer and only turn your printer on, after you have logged in.

7 thoughts on “How to install Linux Canon Printer Driver in Ubuntu”

  1. Dude, You are awesome for posting this!!! I’ve been racking my brain trying to figure out how to get this printer (canon mx432) I bought to work on Zorin OS. I’m still installing the Repositories in the terminal but I have a good feeling because this is the first posting I’ve tried where the commands provided for the terminal actually were recognized and worked. LIFESAVER. I bought this printer even though it didn’t have a penguin on it because the sales asscociate at staples was a memeber of the Charlotte, NC ”LUG” and said all I needed to do was ‘plug it in’ F’N southerners!!!! lol

  2. Unable to verify PGP signatures:
    W: GPG error: debian_dic Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY C7C9F09527AA323C
    W: GPG error: stable Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA
    Any idea which key server I should get the keys from?


Leave a Comment