A couple of years ago my family purchased a Canon MP150, a bog standard multifunction center. It was an impulse buy, so any concern that it may not work in Linux was easily brushed aside, especially since the rest of the family still heavily used Windows XP. And it didn’t work in Linux.
But with great fortune the gutenprint project now (well, really over a year ago, but after the initial searches I gave up looking) supports the Canon MP150 as well as a sizeable list of other Canon printers.
The OpenPrinting-gutenprint drivers in ubuntu do not yet have the Canon drivers so below is how I setup the Canon MP150 driver on Ubuntu Hardy.
Visit http://www.openprinting.org/show_printer.cgi?recnum=Canon-PIXMA_MP150 and download the package you need, rpm or deb, i386 or 64bit, depending on what distro and architechture you are running.
I downloaded the ‘x86 32 bit (DEB for LSB 3.2)’ package and installed it with dpkg:
sudo dpkg -i openprinting-gutenprint_5.2.2-1lsb3.2_i386.deb
The openprinting-guntenprint package installs with all the ppd files compressed with gunzip. I am not sure if this is how they are supposed to be, perhaps more current versions of cups/gnome printer config are able to use them compressed, but in hardy they couldn’t. Instead I uncompressed the driver I needed into the same folder and selected it in the gnome print config.
First find the driver you need in the openprinting-gutenprint driver folder, replace Canon with the folder of printer brand that you are looking for if it is not a Canon printer:
dean@subspace:/opt/OpenPrinting-Gutenprint/ppds/Canon$ ls | grep -i mp150
Canon-PIXMA_MP150-gutenprint.5.2-en.ppd.gz
Canon-PIXMA_MP150-gutenprint.5.2.sim-en.ppd.gz
Next, uncompress the two files with gunzip:
dean@subspace:/opt/OpenPrinting-Gutenprint/ppds/Canon$ sudo gunzip -d Canon-PIXMA_MP150-gutenprint.5.2.sim-en.ppd.gz
dean@subspace:/opt/OpenPrinting-Gutenprint/ppds/Canon$ sudo gunzip -d Canon-PIXMA_MP150-gutenprint.5.2-en.ppd.gz
Now plug the printer in and turn it on, and head to the gnome print config under System -> Administration -> Printing, click New Printer and hopefully it should be at least partially recognised as in the screenshot below.

In your case it may autodetect the driver, in my case it only found the Turboprint driver, ugh. Instead select the Provide PPD file radio button and click on the bar below it with the folder icon. Head to /opt/OpenPrinting-Gutenprint/ppds/Canon in the location bar, or click through the path and select Canon-PIXMA_MP150-gutenprint.5.2.sim-en.ppd, choose Open then Forward.
Give your printer a name, which will appear in any print dialogs for you to choose, and if you want to, describe it as well.
Click Apply and you’re now done! You should see your printer in the list and be able to print a test page, or even try printing documents in all your favourite Linux applications.