My own saga should prove educational. I wanted to use the Canon iP3000 photo printer, part of the company's PIXMA printer series. But I was unable to find a Linux driver for the iP3000 at the Canon USA site. This oversight seems to be fairly representative: LinuxPrinting.org, a site that provides resources for printing with open-source systems, keeps a vendor scorecard on which it calls Canon "average." In other words, the Linux drivers do exist for this printer, but they're hard to find.
Next I discovered that the matching print driver isn't built into the CUPS (Common Unix Printing System) portable printing layer, so I checked the Canon site again and did some more digging. Because Linux drivers are frequently in out-of-the-way places on a vendor site, searching under Linux [model name] on the site’s internal search engine sometimes works.
Linux drivers frequently don’t make it to the Linux printing database. That happens when a vendor has a driver it's unwilling to publish under the GPL (General Public License--freeware license under specific terms and conditions), which would generally keep the driver off LinuxPrinting.org. Alternatively, the vendor may have a GPL'd driver that simply never made it to LinuxPrinting.org. That turned out to be the case for my Canon printer.
My next step was to go to LinuxPrinting.org and look up the printer by vendor, via the printer database. But that failed, too. So I next tried the the LinuxPrinting Canon vendor FAQ. That still didn't help! So my next step was to Google the printer model and Linux. I searched on the keywords Canon iP3000 Linux. By doing this, I got to the blog and other online posts referred to below.
I found that blog postings at various Linux sites contain many useful--and some useless--ideas. You might try the LinuxPrinting.org vendor-specific Web forum or mailing lists. In general, however, external Web search via Google works better than trying to navigate within the LinuxPrinting.org site.
In the case of the Canon iP3000, the first recommendation I saw said to use the BJC-7004 driver. While this driver works, it provides print quality of only 300 to 600 dpi (600x1200 is not usable), and the only choices in paper types are plain, bond and transparency film. Also, while the driver looks fine printing both the CUPS test image and sample text, its output on photo images is gray and muddy, even compared with what my old Lexmark printed on plain paper. Shown below is an A-B comparison of the BJC driver vs. the Canon-Japan driver discussed below. Since I print photos, I clearly needed a better driver.
Sorting Printer Wheat From Printer Chaff
Next, I decided to look for pointers to sites with installable drivers. This means file extensions like .rpm (.deb if you use a Debian-derived distro) for driver installers. (You don't want the bare .ppd or .ppd.gz files unless your printer has an internal Postscript interpreter, which very few consumer-price printers have.)
I found a posting that gave a long list of functions my printer won't support if one installs the driver the poster suggests. I bookmarked it and kept going. I knew I might not find anything better. But I kept going anyway, knowing that perseverance can pay off. And for me, it did.
I eventually found a reference on a LinuxPrinting.org mailing list via Google. I followed the links back to the German original posting. Since I don't read German, my next task was to obtain an English translation, which I got here. Like most machine translations, it was good enough, but not great.
The post turned out to be a how-to for a Debian distribution. As a result, much of the original instructions--for example, "convert RPM to DEB , add library symlinks, and remove a module"--are simply irrelevant to Fedora Core users and most others who use .rpms for installation. If you are using a Debian-based distribution, go to the German translation above, and good luck. But if you're using a Fedora-Red Hat or other RPM-based distro, you'll need to know more.
First, as I discovered, you will need to install the driver RPMs (RPM Package Managers). To download and install the RPMs for my Canon printer, I went to ftp://download.canon.jp/pub/driver/bj/linux/. The following files are the Canon Japan driver for the Canon iP4000 printer:
bjfilter-common-2.50-2.i386.rpm bjfilter-pixusip4100-lprng-2.50-2.i386.rpm bjfilter-pixusip4100-2.50-2.i386.rpm
If you have a Canon iP4000, download these. For a Canon iP3000, download the pixusip3100 RPMs for the last two; the first one is common to all supported PIXMA printers. Then login as root. To install the rpms:
rpm --install bjfilter-common-2.50-2.i386.rpm rpm --install bjfilter-pixusip4100-lprng-2.50-2.i386.rpm rpm --install bjfilter-pixusip4100-2.50-2.i386.rpm
You needn't bother with the documentation files unless you read Japanese!
