Canon Printer in Linux

How to get a Canon all-in-one printer working with Ubuntu

These instructions are for Canon all-in-one printers (printer, scanner, and copier in one unit). These instructions are for the Canon PIXMA MP160, but these instructions can be adapted for other all-in-one printers in the Canon PIXMA series of all-in-one printers. This is done entirely in the terminal. All terminal commands are in boldface.

You need the necessary compiling tools, so if you haven’t already done so, open a console and enter the following command

sudo aptitude install libgtk2.0-dev libxml2-dev gettext libnss-dev libnspr-dev libgtkspell.

This will download all the necessary dependencies.

Download the printer and scanner drivers from here. You will need to download the following files :





Download these files to your home directory.

You will now need to download Alien so you can convert the .RPM files into .DEB files. Install alien using the following command

sudo aptitude install alien

To convert the .RPM files into .DEB files

sudo alien -d *.rpm

To install the printer drivers

sudo dpkg -i cnij*.deb

To install the scanner drivers

sudo dpkg -i scan*.deb

sudo aptitude install libpng3

sudo ln -s /usr/lib/ /usr/lib/

sudo /etc/init.d/cupsys restart

cd /usr/share/cups/model/

sudo lpadmin -p MP160 -P canonmp160.ppd -v cnij_usb:/dev/usblp0 -E

sudo apt-get install libxml1

Now you have the printer completely installed.

Now we need to get the scanner completely installed. To do this, we need to install the scanner back-end.

Download the sane scanner back-end from here. Save it to your home directory.

Uncompress the downloaded file using the following command
tar -xvjf mp150-0.13.1.tar.bz2

cd mp150-0.13.1


sudo make install

(if asked to overwrite any files, choose Yes)

Turn on your Canon all-in-one printer, do a complete restart (not a simple log-out), and log back in. To test your scanner, place something in your scanner and open XSane by clicking Applications -> Graphics -> XSane Image Scanner. To scan, click on the Scan button. Don’t forget to set the scan resolution to your liking.

Canon LBP 2900 link

Canon LBP 2900 link
Install without using the package repository

Using the pre-built 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.


The 2.3 driver is the latest release: Canon Linux CAPT 2.3 Driver Download

The 1.9 driver download page can be found here. Alternatively you can directly download the Debian package (recommended for beginners) or the Source Code.

Automated install using a BASH script

A script has been developed to automate the install of this driver on both kinds of architectures (amd64, i386). Unfortunately Canon doesn’t supply 64bit DEB packages and compiling the driver from source is a bit tricky. Therefore using this script is the best approach for users of 64bit Ubuntu, while for the 32bit users it’s just an automation of the manual install mode.

The 64-bit versions of the DEB packages have been built on an Ubuntu 9.10 x86_64 architecture, while the 32-bit ones used by the script are the ones supplied by Canon. The script and the drivers have been tested on Ubuntu 9.04 i386 and on Ubuntu 9.10 amd64 using a Canon LBP2900 printer.

The archive containing the script and the packages needed for the install can be found here. Please read the README file contained in the archive for more details or use the -h or –help command line options when invoking the script.

For questions, details, bugs or enhancements, please visit this page.

Adding a printer

Configuring CUPS

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 look for available models you may use command:

$ find /usr/share/cups/model -name ‘*LBP*K.ppd’

Close configuration dialog, open again and rename your printer to, say, “LBP810”. Remember name you chose, as later commands will refer to it.

Instead of GUI actions, you may try this:

sudo /usr/sbin/lpadmin -p LBP810 -m CNCUPSLBP1120CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

Again, choose another .ppd name, if you have another printer…

Configuring Canon services

$ sudo /etc/init.d/ccpd restart
$ sudo /etc/init.d/ccpd status
Canon Printer Daemon for CUPS: ccpd: 8956 8954

If you see only one number at the end of line, edit /etc/ccpd.conf and add this:

DevicePath /dev/usb/lp0

Instead you may try this:

$ sudo /usr/sbin/ccpdadmin -p LBP810 -o /dev/usblp0

Next, check for record in /etc/ccpd.conf

For a network printer such as the LBP7200Cdn, the “DevicePath” should say “net:”, so for example if your network printer is on IP address, then the entry in /etc/ccpd.conf should say

DevicePath net:

Now, restart canon services:

$ sudo /etc/init.d/ccpd restart
$ sudo /etc/init.d/ccpd status
Canon Printer Daemon for CUPS: ccpd: 8956 8954

You should see two numbers at the end. If you do, you are lucky 🙂 If you only see one number here, then try restarting the computer, or possibly you could try replacing the ccpd start up script with the one on this page, and then restart the computer.

Starting/stopping on USB add/Remove

Fill /etc/udev/rules.d/85-canon-capt.rules with your preferred editor

$ gksudo gedit /etc/udev/rules.d/85-canon-capt.rules

with this:

KERNEL==”lp*”, SUBSYSTEMS==”usb”, ACTION==”add”, SYSFS{idVendor}==”04a9″, RUN+=”/bin/bash /etc/init.d/ccpd start”
KERNEL==”lp*”, SUBSYSTEMS==”usb”, ACTION==”remove”, RUN+=”/bin/bash /etc/init.d/ccpd stop”

Next, reload UDEV config:

$ sudo udevadm control –reload-rules

Now, using

$ sudo /etc/init.d/ccpd status

check that printer started/stopped on adding/removing it from USB.


mmarkk@imac:~$ sudo ccpdadmin

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 :

Print a Test Page

At this point you can test your printer by going to: System->Administration->Printing

You should see a icon for the printer you have just setup. There maybe another printer in there with a similar name just ignore this one for the time being. Right click on the printer and choose properties. Click the buttons “Print Test Page”. Hopefully your page should print.

We have replaced the script to start the driver. Next we need to tell the system we want the script to start when the system next boots. This is where I had most problems with the ccpd daemon.

Restart and Verify

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.

Status Monitor

The Canon status monitor can alert you to any issues with your printer. This can be run directly on the terminal by issuing this command:

captstatusui -P
My printers example: captstatusui -P LBP3010

You will be presented with the User Interface and it should say ready to print. If not make sure the printer is switched on.

Finally we want the monitor to run each time the computer is switched so we add it to the as a startup application in: System Settings->Startup Applications

Click the Add button.

Name:Canon Printing Status Monitor

Command: captstatusui -e -P

Description: Hidden until error occurs

The -e option causes the monitor to stay hidden until an error occurs like when you run out of paper.


If Status monitor reports error “Check the DevicePath of /etc/ccpd.conf”, then you probably don’t have usblp kernel module. Run the following command:

lsmod | grep usblp

If it outputs nothing, load the module and restart ccpd:

sudo modprobe usblp
ls -l /dev/usb/lp0
sudo /etc/init.d/ccpd restart

Note: As of Ubuntu 11.10 (Oneiric Ocelot), usblp has been deprecated and will not be automatically loaded when you connect your USB printer (see bug #842823]).

If the status monitor works but printing does not, make sure that /var/ccpd/fifo0 actually exists:

ls -l /var/ccpd

When missing, it can be added manually:

sudo mkdir /var/ccpd
sudo mkfifo /var/ccpd/fifo0
sudo chown -R lp:lp /var/ccpd=======


Configuring Canon laser printers LBP XXXX Series in Ubuntu Linux


the Canon laser printers LBP XXXX Series.
Before to installing raducodescu we have to check whether the following items are installed in synaptic package manager, if not we have to install them,


The second step is to run the ssh file and install the printer.

Third step connect the printer.

finally run following commads

1. /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

2. /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0

3. /etc/init.d/ccpd start (or restart can be used in case of print failiures. You can check whether the istallation successfull or not, by running the command /etc/init.d/ccpd status. The out put of this command should be a combination of two numbers, ie, two running processes. If the out put contains only one number the printer will not work correctly)

For debian users : finally follwing command is to added

4. sudo update-rc.d ccpd defaults 20

That’s all…….Try this, share this ….and give feed back………Best of luck…..all of you