How To Install A (Canon) Printer On Debian And Debian-Like Systems

This tutorial will cover how to install the well-known CUPS printing system, and optionally tell you how to have your Canon printer work. There are extra details about where to find Canon drivers and how to install the "Print to PDF" feature.


Cups Installation

If you didn't check any option at the Debian network installation, you will need to download and install a few packages.

Run the following command as root:

# apt-get install cups cups-client "foomatic-db*"

This will install CUPS and download a database of printer drivers.


 Allow Users To Print

As the Debian distribution installs a secure Linux system on your computer, most of the permissions involved by installing packages are "opt-in". This means you have to explicitly grant permission to users so that they can print.

This is done by adding them to the lpadmin group:

# adduser YOUR_NORMAL_ACCOUNT lpadmin


Configure Your Printer

Power on and plug your printer, and then browse to http://localhost:631/

Go to the Administration tab and click Add printer. At that point you will be required to type your normal user and password (not root).

CUPS will look for printers available on the network or attached to your computer.

Choose your printer in the Local printers section.

Fill the form if you want to, then see if your printer driver is in the list.
NB: Your exact model number is probably not in the list, however if you've got a 3030 printer, the 3000 driver is the one you need.

If you don't find your printer in the list, either the driver just doesn't exist for non-Windows OS / Mac OS, or it is proprietary (non-free).

If you bought a Brother or HP printer, you're lucky because all of their current printers are provided with an opensource driver. Install the hplip package for Hewlett Packard printers.

You can't find Canon drivers on non-free repositories. You have to go to the Canon website and download them.


Download A Canon Printer Driver

Go to, select your country and language, then go to the Support page, find your printer (in category "Printer" or "Multifunction").
Choose "Linux" as your operating system. Let the language setting as it is. (Because maybe the drivers could be hidden if the included manual doesn't exist in your language).

Download that UFR II driver file.


Install Canon UFR II Driver

You'll end up with a zip file / archive.

Open your Terminal again, change to your Downloads directory, and unzip that file:

$ unzip *ufr2*.zip 

The unzipped directory is the language you choose, e.g. "english" or "italiano". cd to that directory, then open the "driver" directory corresponding to your architecture (32 or 64 bits), and finally open the RPM folder.

As you may know, RPM is the "Red Hat Package Manager", but Debian uses APT. RPM files have the ".rpm" extension and Debian packages get a ".deb" extension.

So, we will have to convert them.

For that purpose, install a program called alien. And I'd advice to install fakeroot as well. (Fakeroot allows you to work on Debian packaging without root privileges, which are not needed until the installation part.)

# apt-get install alien fakeroot

Then convert the packages:

 $ fakeroot alien --to-deb *.rpm

Finally you can now install them as usual:

# dpkg -i *.deb


Configure Your Printer

Reload the "Add printer" page on the CUPS web interface, and this time you should be able to find your printer model in the list. (You can also press "Choose another ...." and go back to "Canon" again.)

You should not need to restart cups, but if you want to, just to be sure, do the following as root:

# service cups restart 

Voilà ! You've successfully installed your printer!


Here is a trick that could be helpful. If you're using an application that doesn't provide an "Export to PDF" function, you can simply print as normally and select a special "PDF printer."

In order to do that, you have to install the "cups-pdf" package:

# apt-get install cups-pdf

Your "PDF printed" documents will be put in a folder called "PDF" in your home directory, i.e. ~/PDF/

You may have to create this directory yourself if you have issues with the cups PDF printer.


Use The CUPS Web Frontend

The CUPS web user interface is the place to go whether you need to manage your printers and printing jobs, and find the reasons of printing issues. You can pause or cancel a job and even re-print a document.

Note you have to modify your /etc/cups/cupsd.conf configuration file if you want the interface to be accessible from other computers in your network.

Share this page:

Suggested articles

25 Comment(s)

Add comment


By: n2ptf

Same as the Pixma ip1700. I went to various world regions and still no linux drivers

By: Alfred

If you are stuck with a Canon printer there are drivers available at They are not free but you can try a crippled version to se if it will work wiyh your printer. I used it to run a Canon Pixma successfuly but finally got smart and bought HP.

By: Daniel W

The i386 driver will install on a x86 install, you just need to use sudo dpkg -i --forcearchitecture canon~.rpm on each driver. I have done both my laptop and HTPC which are running 64 bit kernels, and both will print and scan from my Canon MP560 albeit crudely on the printing in some ways. It's not like as if it's a major loss to Canon if they don't cater to the most unused OS on the desktop out there is it?

By: GregE

Canon do supply drivers for Linux, but you have to go to the European or Asian Canon support to get them. The supplied drivers are 32bit only and come packaged with an install script that must be run as a superuser. Both deb and rpm versions are available. My Pixma MP640 works very well under Debian, Mint and Ubuntu. On a 64bit system you need to edit the install script to --force-archtecture and you must also have ia32-libs installed.

I have had an issue with 64bit natty in that the install script fails due to a dependency issue. The debs need repackaging. If you do a minimal maverick install, install the driver then do a dist-upgrade - then the driver works as it should. 

 My multifunction prints and scans across my home network. Not as easy as using HPLIP, but doable.


By: Alejandro

This is the latest location for the drivers on the australian site:

By: Espaqu

Well stated. You could have elaborated on how selecting a region affects the availability of drivers. Selecting "North America" seems to provide the smallest number of choices, while "Australia" seems to have to most. Don't know why there should be that difference, but as long as I can find an appropriate driver, I don't care where I have to go to get it. 

By: Lawrence

Nice article, very informative and useable.

A point of caution though. Your procedure gives the idea that the linux drivers are there so all you have to do is select the OS (operating system). In fact, canon's linux support is very inconsistent. For  example, there is no Linux driver at all for the Canon Pixma iP2702 on the Canon site if you select North America at Canon's home page. Linux does not show up in the OS selection drop down list at all. But there are several versions of OSX and practically every version of Windows.

 I checked on this particular printer because I have an iP2700 that I managed to get it to work on my Ubuntu 10.04LTS 32 bit install only to discover that I cannot use it on my upgraded 64bit box - still running Ubuntu 10.04LTS. Tried a few hacks and work-arounds, none of which worked.

An acquaintance of mine also running Ubuntu 10.04LTS 32 bit got a Canon Pixma 1200. Many hours and several hacks and workarounds later I still can't print a word on this printer. Again, no Linux support.

Canon makes nice printers, but unfortunately,  the company is not very nice to Linux users.



Great information thank you I have been searching everywhere for this 

By: Dan

I downloaded the drivers for my company's Canon IRC3080i from Canon, and used these instructions to install them on Linux Mint 13...worked!

 Without the Canon drivers, sending anything to the printer just gave hundreds of pages of garbage from the printer.

 Thanks for these instructions!


By: Jeff

Worked great here on Ubuntu 10.10 x64 with an MF-5950. Thanks!

By: jbmere

Hi there,

After doing every step mentioned here, thank you very much for provide them, I still found problems because the authentication user code.

When I print from Windows, the driver rise up a windows asking me the user code  and password allowing to print over the device. This is missed in Linux. What is going wrong here?

Maybe I missed some basic steps ?

Is there  any help available ?

Thank you

By: Stefan Bregenzer


I made a tutorial where I describe the installation of canon pixma mx715 in linux ubuntu (scanner + printer):

I think it also helps with other models, because it's the same way only other driver data (you can translate the site to english with the flag-icon on the right side of the blog)


Stefan Bregenzer

By: Andriy

Worked great here on Debian wheezy x64 with an MG3255. Thanks!

By: Anonymous

Nope doesn't work. Don't know what's wrong but none of my printers show up when I look for them. Even the HP printers and I did download and install the ip files.

By: Anonymous

On Debian Wheezy amd64 version, you need to enable multiarch. To enable , be root and invoke

dpkg --add-architecture i386

then, type

apt-get update

apt-get install ia32-libs-i386

Those might work for you(also README file of the driver).


Newest Canon driver version 290 and how-to install on Debian Wheezy 7 at

By: Swastik

Thanks :-)

By: Pokar

Excellent Instructions. I am on debian for less than a month (not regular) and I have done the job with Canon mf4820d.. Thanks a Lot.

By: Daniel Cook

For the life of me, I can't get signed on to the cups web site localhost631 ; when I click on the Administration tab, it asks for a username/password which I can't furnish. I tried my username/password for my linux install which didn't work and see no place on this web site to sign up for an account.

By: keria christina

Great Information.

Thank you for your support and sharing this informative article.

By: alex

pixma G3100 cannot find that ufr2 file

By: Mitchell

I am getting this error:

Reading package lists... DoneBuilding dependency tree       Reading state information... DoneNote, selecting 'foomatic-db-compressed-ppds' for glob 'foomatic-db*'Note, selecting 'foomatic-db-hpijs' for glob 'foomatic-db*'Note, selecting 'foomatic-db-engine' for glob 'foomatic-db*'Note, selecting 'foomatic-db' for glob 'foomatic-db*'Note, selecting 'foomatic-db-gutenprint' for glob 'foomatic-db*'foomatic-db-compressed-ppds is already the newest version (20180306-1).cups is already the newest version (2.2.7-1ubuntu2.5).cups-client is already the newest version (2.2.7-1ubuntu2.5).Some packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming.The following information may help to resolve the situation:The following packages have unmet dependencies: foomatic-db-compressed-ppds : Conflicts: foomatic-db                               Breaks: foomatic-db                               Breaks: foomatic-db:i386                               Conflicts: foomatic-db:i386E: Unable to correct problems, you have held broken packages.


Any suggestions on how to fix this?

By: Daina

Thank you for the guidance.

By: Serviceprinter

Great information. It is very commercial and professional industry of canon. It is very good and informative/ helpful blogs.Canon do supply drivers for Linux, but you have to go to the European or Asian Canon support to get them. The supplied drivers are 32bit only and come packaged with an install script that must be run as a superuser. Both deb and rpm versions are available. My Pixma MP640 works very well under Debian, Mint and Ubuntu. It's professional articles. I will share in this post. Thank you.

By: duvall

Thank you