The inkjet printer in our house is a Canon MP240 which is connected to the wife’s Windows-running laptop, while I’m on Ubuntu 10.04 64-bit, and although it takes a bit of effort to get them to play ball – they will talk and printing works just fine. To get it all up and running just follow these steps:
1.) Get the driver files
Head on over to: http://software.canon-europe.com/products/0010645.asp and enter Linux as your OS type and pick a language of choice, for the MP240 in English you’ll end up with a file called MP240_debian_drivers.tar. Extract it by right-clicking on it and selecting Extract Here from the pop-up menu, or running the command tar xvf ./MP240_debian_drivers.tar from the command line.
Once extracted, you’ll end up with a folder called the tar file name which has two files within it: MP240_debian_printer.tar and MP240_debian_printer_scangear.tar. Because this guide is about printing it’s the first file we’re after – so extract it using any of the two methods shown above, and again it’ll create a folder of the tar name, inside which you’ll find a tar.gz file (which you can safely ignore) and two deb files which are what we’re really after: cnijfilter-common_3.00-1_i386.deb and cnijfilter-mp240series_3.00-1_i386.deb.
2.) Repackage the deb OR get a libcupsys2 transitional package
Because Ubuntu has transferred from libcupsys2 to libcups, we have the option of using our mighty linux skills to repackage the debs to use libcups by reading this, but it’s a bit tech, and we don’t really have to. Instead, we can just install the transitional package from good ol’ Jaunty by heading over to this page: http://packages.ubuntu.com/jaunty/all/libcupsys2/download (link now broken – see local mirror of file below – or don’t use at all [see update 2!]).
The link to download the transitional deb is the security.ubuntu.com/ubuntu one – just click on it to download, then double click on the file to install it. Nice – almost there!
Update: The link to the transitional package is no longer working, but as I still have a copy I’ve made it available here: libcupsys2_1.3.9-17ubuntu3.9_all.deb
Update 2: I see that some people have had success without using the libcupsys2 transitional package at all, just by ignoring the dependency. I haven’t tried it myself, but from what I read you can skip this step entirely by using the following commands for step 3:
sudo dpkg -i --ignore-depends=libcupsys2 --force-architecture cnijfilter-common_3.00-1_i386.deb
sudo dpkg -i --ignore-depends=libcupsys2 --force-architecture cnijfilter-mp240series_3.00-1_i386.deb
3.) Install / Force Install of the MP240 drivers
If you’re running 10.04 32-bit then you can just install the canon debs by running the following two lines at the command line:
sudo dpkg -i cnijfilter-common_3.00-1_i386.deb
sudo dpkg -i cnijfilter-mp240series_3.00-1_i386.deb
If, like me, you’re running 64-bit Linux, then you need to force dpkg to ignore the architecture differences like this:
sudo dpkg -i --force-architecture cnijfilter-common_3.00-1_i386.deb
sudo dpkg -i --force-architecture cnijfilter-mp240series_3.00-1_i386.deb
4.) Add your printer
With that done, we’re ready to set up the printer, so go to System | Administration | Printing from the gnome panel (or your printing config tool of choice if you’re using KDE or whatnot) and the printer driver will be available for you to use. Because I’m going across the network to get to the printer I’m clicking on [Add] then picking Windows Printer via SAMBA. You can just hit [Browse] without entering an IP or path or anything to browse detected workgroups on your network.
Once you’ve selected the printer and clicked [OK] you can click [Forward] and then Canon as the driver manufacturer and you’ll find the MP240 driver in your list like this:
Select it, click [Forward] again and print off a test page – you should be all set! Cheers! =D