How to Install Canon Printer Drivers in Ubuntu and Derivatives

How to Install Canon Printer Drivers in Ubuntu and Derivatives

Complete guide to downloading, installing, and configuring Canon printer drivers on Ubuntu and derivative distributions using .deb packages and CUPS.

Tested on: [Unity GNOME][10.04 10.10 11.04 11.10 12.04]

Printing on Linux has come a long way, but in 2011, getting a Canon printer to work on Ubuntu often meant wrestling with proprietary drivers, architecture mismatches, and CUPS configuration. Canon did provide Linux drivers for many of their inkjet and laser modelsโ€”they just didn’t make it easy. This guide walks through the entire process: finding the right driver, handling dependencies, installing the .deb packages, configuring CUPS, and troubleshooting the issues that tripped up most users.

Canon printer connected to Ubuntu desktop

Before You Begin

Gather this information first:

  • Exact printer model (e.g., Canon PIXMA MP280, Canon LBP6000). Check the label on the front or top of the printer.
  • Ubuntu version โ€” run lsb_release -a in a terminal.
  • System architecture โ€” run uname -m. If it returns x86_64, you’re on 64-bit. If i686, 32-bit.
  • Connection type โ€” USB or network. Have the cable connected or the printer on the same network before starting.

Step-by-Step Installation

Step 1 โ€” Download the Canon Linux Driver

Canon’s support site provides Linux drivers for supported models. Navigate to your printer’s support page and look for the “Linux” option under Drivers & Downloads. The driver package is typically a .tar.gz archive containing .deb and .rpm packages.

Download the archive to your ~/Downloads directory.

Step 2 โ€” Extract the Archive

Open a terminal and navigate to the download:

Terminal

cd ~/Downloads
tar xvf canon_printer_driver_*.tar.gz

This creates a directory structure containing the driver packages. The exact layout varies by model, but you’ll typically find directories like cnijfilter-common and cnijfilter-mp280series (or your model equivalent).

Step 3 โ€” Install Required Dependencies

Canon’s drivers depend on several libraries. Install them first:

Terminal

sudo apt-get update
sudo apt-get install libcupsimage2 libcups2 libpango1.0-0 libxml2

For 64-bit systems installing 32-bit drivers, add the compatibility libraries:

Terminal

sudo apt-get install ia32-libs

On Ubuntu 12.04 and later, ia32-libs may be replaced by specific 32-bit packages. Install them as needed:

Terminal

sudo apt-get install lib32stdc++6 lib32z1

Step 4 โ€” Install the .deb Packages

Navigate into the extracted directory. You’ll find one or more .deb files. Install the common package first, then the model-specific package:

Terminal

cd canon_driver_directory/packages/
sudo dpkg -i cnijfilter-common_*.deb
sudo dpkg -i cnijfilter-mp280series_*.deb

Replace mp280series with your actual model’s package name. If dpkg reports missing dependencies, fix them:

Terminal

sudo apt-get install -f

Then re-run the dpkg commands.

Installing Canon .deb packages in terminal

Step 5 โ€” Verify the Driver Installation

Check that the Canon filter was installed correctly:

Terminal

ls /usr/lib/cups/filter/ | grep cif

You should see files like cifmp280 (or your model equivalent). Also confirm the PPD file exists:

Terminal

ls /usr/share/ppd/cnijfilter-mp280series/

Step 6 โ€” Add the Printer in CUPS

Open the CUPS web interface in your browser at http://localhost:631. Navigate to Administration โ†’ Add Printer.

  1. Select your Canon printer from the list of discovered printers (USB or network).
  2. Give it a name and description.
  3. On the driver selection page, choose Provide a PPD File and browse to the PPD installed in /usr/share/ppd/cnijfilter-*/.
  4. Set default options (paper size, quality, colour mode) and click Add Printer.

Alternatively, add the printer via the command line:

Terminal

sudo lpadmin -p CanonMP280 -E -v usb://Canon/MP280%20series -P /usr/share/ppd/cnijfilter-mp280series/canonmp280.ppd

Adjust the URI and PPD path for your model.

Step 7 โ€” Set as Default Printer

Terminal

sudo lpadmin -d CanonMP280

Step 8 โ€” Print a Test Page

Terminal

echo "Test page from Ubuntu" | lp -d CanonMP280

Or open the CUPS web interface, click your printer, and select Print Test Page.

CUPS printer administration page showing Canon printer

Network Printer Configuration

If your Canon printer connects over Wi-Fi or Ethernet, the process differs slightly at the CUPS discovery step. The printer URI format for network printers is typically:

socket://192.168.1.100:9100

Or for Canon’s BJNP protocol:

bjnp://192.168.1.100

To use BJNP, install the cups-backend-bjnp package:

Terminal

sudo apt-get install cups-backend-bjnp

Then restart CUPS:

Terminal

sudo service cups restart

The network printer should now appear in the CUPS Add Printer discovery list.

Troubleshooting Common Issues

Printer Not Detected via USB

Check the connection:

Terminal

lsusb | grep -i canon

If nothing appears, try a different USB cable or port. Some Canon printers also need to be powered on and in “ready” state (not sleep mode) before they’re detected.

Check permissions:

Terminal

ls -la /dev/bus/usb/*/*

Your user should have read/write access. Adding your user to the lp and lpadmin groups helps:

Terminal

sudo usermod -aG lp,lpadmin $USER

Log out and back in for group changes to take effect.

Driver Architecture Mismatch

If dpkg fails with errors about wrong architecture, verify what you downloaded matches your system. The error typically reads:

package architecture (i386) does not match system (amd64)

Enable multi-arch support on 64-bit systems:

Terminal

sudo dpkg --add-architecture i386
sudo apt-get update

Then retry the installation.

Check the CUPS error log:

Terminal

tail -50 /var/log/cups/error_log

Common causes include incorrect PPD selection, missing filter files, or permission issues. Restart CUPS and try again:

Terminal

sudo service cups restart

Clear stuck jobs:

Terminal

cancel -a

Common Pitfalls

Installing RPM packages instead of DEB. Canon’s Linux driver archives contain both .rpm and .deb packages. Ubuntu uses .deb. If you accidentally try to install an RPM, it will fail. Always navigate to the debian or packages subdirectory for .deb files.

Skipping the common package. The model-specific driver depends on cnijfilter-common. Installing the model package alone will either fail outright or result in a non-functional driver. Always install the common package first.

Using the wrong PPD file. If CUPS offers a generic Canon driver during setup, it may not support your model’s full feature set (duplex printing, borderless printing, specific paper trays). Always use the PPD that was installed by the Canon driver package.

Firewall blocking CUPS on network printers. If your printer is on the network but not discovered, ensure UDP port 8612 (BJNP) or TCP port 9100 (AppSocket/JetDirect) is not blocked by your firewall:

Terminal

sudo ufw allow 8612/udp
sudo ufw allow 9100/tcp

Final Thoughts

Canon printer installation on Ubuntu in 2011 was undeniably more involved than on Windowsโ€”download, extract, satisfy dependencies, install packages, configure CUPS. But once configured, the printer worked reliably through standard Linux printing infrastructure. The key was patience with the initial setup: right driver, right architecture, right PPD, right order. Get those four things right and printing just worked.

Frequently Asked Questions

Do all Canon printers need manually installed drivers on Ubuntu?
No. Many Canon printers are supported by the built-in CUPS drivers (Gutenprint and HPLIP for some models). The manual driver installation is needed for models where Canon provides a proprietary Linux driver that is not included in the default repositories.
Can I install the 32-bit Canon driver on a 64-bit Ubuntu system?
Yes, but you need the 32-bit compatibility libraries. Install them with sudo apt-get install ia32-libs (Ubuntu 11.10 and earlier) or sudo apt-get install lib32stdc++6 lib32z1 on later releases. Then install the .deb package normally.
How do I find my Canon printer model string for CUPS configuration?
Run lpinfo -m | grep -i canon in a terminal. This lists all known Canon printer models and their PPD paths. Match your model from this list when adding the printer in CUPS.
The driver installed but my printer is not detected. What should I check?
First verify the USB connection with lsusb โ€” your Canon printer should appear in the list. Then check that CUPS is running with sudo service cups status. If using a network printer, ensure it is on the same subnet and reachable via ping.
Can I use these drivers with Linux Mint or other Ubuntu derivatives?
Yes. Linux Mint, elementary OS, Zorin OS, and other Ubuntu-based distributions use the same package management system. The .deb packages and CUPS configuration steps are identical.