April 8th, 2006

Printing

Today I tackled an outstanding issue with our home computer setup – my inability to print.

Last year we bought a Canon iP4200 printer as our replacement for the Epson left in North America. The printer is pretty good; it handles duplex printing, has reasonably priced ink, and when setup to print photos does a very acceptable job indeed. The only downside was lack of a Linux printer driver, other than the commercial TurboPrint.

One work around for this was to have the printer connected to a MacOS X machine and shared over the network. Fedora Core 5 can see MacOS X shared printers on the network and can print to them as if they are a postscript printer. In practise this didn’t work without setting up an entry in the /etc/hosts file so that the hostname of the machine hosting the printer could be found.

Today I tried to figure out why FC5 couldn’t use Zeroconf to discover the address of the MacOS X machine instead of having to manually setup the /etc/hosts file. The answer is fairly straight forward: FC5 is missing the nss-mdns library which provides this functionality. Thankfully it’s easy to get hold of and configure this, something I’ve documented in “Zeroconf in Fedora”. Having sorted this out I can now print directly over the network.

In a piece of additional good news, Canon have made available an iP4200 printer driver for Linux. It’s not currently publicised anywhere on their European support website, but can be found directly on their Japanese ftp site.

To make the driver available during printer configuration go into the Printing administration tool (Desktop -> Administration -> Printing) and select “Import PPD…” from the “Action” menu. The file to import is canonip4200.ppd in /usr/share/cups/model/. The printer driver will now appear as “IP4200 (PPD)” in the list of Canon drivers during printer setup.