Canon GNU/Linux printer support: progress?

This weekend is the UK PDF Readers Sprint in Manchester, and part of the day will be spent sending letters to public institutions requesting that they remove adverts for non-Free PDF software. In anticipation of this task I purchased a printer this week, a Canon IP4850, expensive at around 65 EUR, but I was reassured by the cheap price of ink.

I’ve used canon printers before and have generally had good experiences. This is the first Canon printer that I’ve purchased which comes with semi-official GNU/Linux support. I say semi-official as on the box is written:

Operation can only be guaranteed on a PC with pre-installed Microsoft Windows 7, Vista, or XP

The canon support website however offers drivers in the form of an RPM, DEB, and even a separate archive containing the ‘driver source file’.

After installing and testing these packages on my Debian based system, I found several problems however:

  1. The drivers are proprietary and under a restrictive license
  2. The only GUI for configuring the printer is CUPS own lpadmin. Whilst this is good in as much as it is integrated into your system better than a standalone application would be, it lacks many of the features available to users of the Windows drivers, including print head alignment, for instance. For a relatively expensive photo printer (ones less than half the price are readily available), it’s grating not to have fine-grained control over print quality.
  3. In order to install the packages, although DEB and RPM packages are available, you have to execute a clunky shell script from the command line which fails if you don’t already have cups installed and running
  4. To uninstall the drivers a specific procedure is required that is incompatible with removing the packages via the system package manager (‘sudo cnijfilter-ip4800series-pkgconfig.sh –uninstall’)
  5. Because there is no repository for the packages, updates will not cause notifications or automatic installation. Furthermore, even if/when updated packages are available, Canon will have to write another awkward shell script in order to handle them due to the way that the first set of packages was installed.
  6. The ink monitor is a standalone ugly application that must be started from the command line, and isn’t integrated into the CUPS GUI

These problems are particularly disappointing when you consider that an alternative driver is available which solves most of these problems, and is far more elegant and easy to manage. Turboprint is a well established solution for printing drivers on GNU/Linux and supports hundreds of commonly used printers. It is a commercially developed, proprietary driver, and as such I don’t plan to use it. However, if I was going to use a proprietary driver for my new printer, then I’d sooner use Turboprint, which I can install and remove via apt, and has much more extensive support for the printer’s features via an easy compact GUI interface.

Fortunately Free Software drivers are available for the IP 4850 from Gutenprint, and whilst they aren’t capable of getting the most out of the device, on balance I prefer to use them than the official Canon GNU/Linux drivers. Canon’s drivers seem to serve little purpose currently – for basic printing, out of the box support via Gutenprint works well (a pop-up dialogue configured the printer in about a minute, without an Internet connection), and for more professional use Turboprint offers a far better proprietary solution.

It’s great to see Canon recognising the existence of Free Software operating systems when it comes to their printer drivers however, and it’s nice to see that they went to the trouble of creating RPM and DEB packages, even if they fuddled them into a nasty shell script. It’s also good to see them integrating the driver into CUPS.

Hopefully these baby steps will develop into a better solution for future Canon printers. It’s a shame that the company decided not to improve existing Gutenprint drivers, but with a little work the ones that they currently distribute could be much improved, and do away with their shell script, provide an official repository for their packages, and extend CUPS lpadmin interface to support features like print head alignment. They could do all that without switching the drivers themselves to a Free Software license, if company policy prohibits this. That would at least mean that consumers could purchase Canon printers with confidence that they could be configured in a relatively easy and familiar way. It could also make it easier for Canon to relicense the drivers as Free Software at a later stage, as there would be cleaner separation between the components they would be providing.

Canon have got their foot on the ladder of GNU/Linux support however, which is more than can be said of many rival printer manufacturers, and for that I salute them.