Heimlich, still und leise hat Canon Japan eigene Linux-Treiber für die Tintenstrahldrucker programmiert und bietet sie kostenlos zum Download an. Wie Sie die japanischen Treiber installieren und ob sie eine Chance gegen das kommerzielle Treiberpaket Turboprint haben, untersucht dieser Artikel.
Lange Zeit galten Canon-Tintenstrahldrucker als überhaupt nicht unterstützt, da der Hersteller keinerlei Informationen über die Ansteuerung an die Community herausgab. Nur das kommerzielle Treiberpaket Turboprint bot eine ausreichend gute Unterstützung, um Grafiken und Fotos in guter Qualität auszudrucken.
Von der Öffentlichkeit, und auch der deutschen Niederlassung, weitgehend unbemerkt veröffentlichte Canon Japan auf seinem FTP-Server [1] einige RPM-Pakete mit Linux-Treibern für die in Japan als Pixus-Familie bekannten Tintenstrahldrucker. In Deutschland werden diese Drucker als “i”-Serie verkauft und sind, soweit es der Autor in Erfahrung bringen konnte, absolut baugleich.
Auf dem japanischen Canon-Server lagern fertige RPM-Pakete für CUPS und das BSD-Printing-System, allerdings sind sie für das asiatische Turbolinux Version 8 gedacht. Damit lässt sich unter den aktuellen europäischen Linux-Distributionen nicht viel anfangen, zu unterschiedlich sind die Bibliotheken.
Japanisch für Anfänger
Das Hauptproblem bei der Installation ist die zwar umfangreiche, aber leider ausschließlich in Japanisch verfügbare Dokumentation aus dem Paket ftp://download.canon.jp/pub/driver/bj/linux/guidepixus550icups-2.2-1.tar.gz von [1]. Hier leistete der Online-Übersetzer Babelfish von Altavista [2] sehr gute Dienste – der Autor stellte die Anleitung kurzerhand auf seinen Webserver und ließ sie von Babelfish übersetzen.
Das CUPS-Front- und Backend selbst hat Canon unter GPL gestellt, nicht jedoch die Bibliotheken mit den eigentlichen Filter-Funktionen. Die gibt es nur in den RPM-Paketen, nicht einmal separat. Noch dazu unterscheiden sich die Bibliotheken von Version zu Version – wer also mehrere Modelle verwenden möchte, muss zwangsläufig die entsprechenden Bibliotheken mehrfach installieren.
Derzeit stehen zwei Versionen bei [1] zum Download, der Autor testete die Version 2.2.1 und 2.4.0 auf einem Canon i560 Tintenstrahldrucker, ob sie eine echte Alternative zum kommerziellen Druckertreiber Turboprint 1.90 [4] sind.
Quellen und Binaries
Die Installation beginnt in beiden Versionen damit, dass Sie CUPS per /etc/init.d/cups stop beenden und die Canon-Bibliotheken aus einem der RPM-Pakete zurück gewinnen. Der Autor verwendete hierfür die Dateien ftp://download.canon.jp/pub/driver/bj/linux/bjfilterpixus550i-2.2-1.i386.rpm und bjfilterpixus560i-2.4-0.i386.rpm aus dem Download-Bereich von Canon – die Bibliotheken unterscheiden sich zwar oft nur in der Versionsnummer, im Verzeichnis usr/lib/bjlib des jeweiligen RPM-Pakets sind jedoch verschiedene Konfigurationsdateien für die unterstützten Druckermodelle abgelegt, so dass Sie das zu Ihrem Drucker passende Konfigurationsdatei aus dem Paket herauskopieren müssen. Dies geht am einfachsten mit dem Midnight Commander, mit dem Sie in das RPM-Paket hineinsehen und einzelne Dateien herauskopieren können. Aber auch per Kommandozeile können Sie Teile des RPMs entpacken:
rpm2cpio bjfilterpixus560i-2.4-0.i386.rpm | cpio --extract --make-directories --no-absolute-filenames usr/lib/*
Das Programm cpio legt dann im aktuellen Verzeichnis die Unterverzeichnisse usr und usr/lib an, in dem alle erforderlichen Bibliotheken enthalten sind. Die Dateien aus usr/lib kopieren Sie bei SuSE Linux nach /usr/local/lib, bei Debian und Mandrake nach usr/lib, das Unterverzeichnis bjlib nach /usr/lib, und rufen danach ldconfig auf. Das ist nötig, damit Sie die Quellpakete der Filterprogramme anschließend übersetzen können.
Um die Quellen des Druckfilters von Canon, also dem eigentlichen Treiber, zu übersetzen, sind neben den Standard-Entwicklungs-Pakete noch eine Reihe weiterer RPM-Pakete der jeweiligen Distribution erforderlich. Bei SuSE Linux 9.1 sind das popt für die libpopt, das zugehörige Development-Paket popt-devel sowie die CUPS-Entwicklungsumgebung cups-devel. Diese Pakete gehören sämtlich zum Lieferumfang der Professional-Variante und lassen sich per yast -i Name von der Kommandozeile aus installieren.
An der Quelle
Zuerst benötigen Sie den Druckfilter bjfilter, er ist dafür zuständig, die eingehenden Daten in die proprietäre Sprache des jeweiligen Druckers zu übersetzen. Der Tarball enthält das Skript autogen.sh, das mittels autoconf und die Abhängigkeiten prüft, make compiliert und make install installiert dann den Filter im Verzeichnis /usr/local/bin.
Das Archiv bjcups-2.4.0.tar.gz enthält das CUPS-Backend pstocanonbj, was der eigentliche “Treiber” ist, sowie das CUPS-Frontend bjcups und die Bibliotheken bjexec und paramlist.
Zunächst müssen Sie die mitgelieferten Bibliotheken übersetzen, dazu wechseln Sie in das Unterverzeichnis libs der bjcups-Quellen und rufen make all install auf. Anschließend compilieren Sie die restlichen Quellen, indem Sie im übergeordneten Verzeichnis ebenfalls make all install aufrufen – damit installieren Sie das CUPS-Frontend unter /usr/local/bin, das Backend unter /usr/lib/cups/filter und die PPD-Dateien unter /usr/share/cups/model – insgesamt unterstützt der Treiber die Drucker Canon i560, i860 und i990.
Damit ist die Basis-Installation bereits abgeschlossen und Sie können CUPS wieder per /etc/init.d/cups start starten. Neben den reinen Filter bietet Canon noch das grafische Frontend bjcupsmon an, das sich auf dem Test-System jedoch nicht übersetzen ließ.
Drucker einbinden
Ob der Drucker überhaupt mit dem installierten Filter funktioniert, können Sie ganz einfach mit bjfilter überprüfen. Dazu benötigen Sie lediglich ein Bild im PNG-Format:
bjfilterpixus560i --media plain --quality 2 ~/Bild.png >/dev/usblp0
Der vorangegangene Aufruf setzt voraus, dass es sich um einen Canon i560 handelt, in Japan bekannt unter der Bezeichnung “Pixus 560i”, der als erster USB-Drucker angeschlossen ist.
Die Einbindung des Druckers in CUPS erfolgt an der Kommandozeile folgendem Befehl:
lpadmin -p canon_i560 -m canonpixus560i.ppd -v canon_usb:/dev/usb/lp0 -E
Unter SuSE Linux sollten Sie statt dessen besser die Druckereinrichtung von YaST verwenden. Wählen Sie einfach “PIXUS560i” in der Modell-Liste aus, CUPS benutzt dann automatisch den Canon-Filter, der in der PPD-Datei voreingestellt ist.
Probleme mit Gimp
Der Ausdruck funktionierte aus allen KDE-Programmen sowie aus Open Office heraus völlig problemlos über KPrinter. Lediglich Gimp benutzt standardmäßig lp für seinen Ausdruck, was mit dem Canon-Treiber partout nicht funktionierte.
Abhilfe bringt, für den Ausdruck aus Gimp heraus ebenfalls KPrinter zu benutzen. Dazu ändern Sie den Aufruf in den Druckereinstellungen von Gimp in folgende Zeile:
kprinter -dcanon_i560
Geben Sie bei Gimp darüber hinaus keine PPD-Datei an, auch damit funktionierte der Ausdruck im Test nicht – bis Redaktionsschluss war leider nicht heraus zu bekommen, was genau Gimp an der PPD von Canon störte.
Qualitätsunterschiede
Die von Canon im Paket bjcups mitgelieferten Postscript Printer Descriptions (PPDs) unterstützen sämtliche vom Hersteller angebotenen Papiersorten, von “Plain Paper” bis hin zum “Glossy Photo Paper”.
Im Test bereitete der Treiber Version 2.2.1 für den Canon i550 jedoch unerwartete Probleme: Ausgerechnet die Einstellungen für Normalpapier und Folien waren nicht zu gebrauchen. Zwar war der Ausdruck selbst gut, jedoch wurden alle Pixel der Farben Cyan und Magenta in der Breite auf 200 Prozent skaliert – das Ergebnis der YaST-Drucker-Testseite sehen Sie in Abbildung 1. Die Einstellungen “High Resolution Paper” und “Glossy Photo Paper” bringen, entsprechende Medien vorausgesetzt, sehr gute Ausdrucke zu Papier, für Normalpapier trägt der Drucker in diesen Modi jedoch zu viel Schwarz auf, was ausblutende und unscharfe Buchstaben zur Folge hat. Immerhin, für den alltäglichen Briefverkehr ist es akzeptabel.

Abbildung 1: Nur die Farben Cyan und Magenta des Testbilds (oben) skaliert der Canon-Treiber in der Version 2.2.1 (unten) bei Normalpapier und Folien auf doppelte Breite, während Gelb und Schwarz die korrekte Skalierung aufweisen.
Die Version 2.4.0 für den Canon i560 hingegen leistete sich keinerlei Schwächen, der Ausdruck war in allen Fällen gestochen scharf und braucht in keiner Weise den Vergleich mit dem kommerziellen Druckertreiber von Turboprint zu scheuen.
Allerdings lässt sich die Auflösung des Druckers bei den Canon-Treibern nicht wirksam ändern: Ab Werk sieht die PPD lediglich 600 DPI vor, der Autor passte die Datei manuell an und fügte die Modi 150 DPI, 300 DPI und 1200 DPI hinzu. Unterhalb 600 DPI hatte die Änderung zwar (negative) Auswirkungen auf die Druckqualität, der Ausdruck wurde dadurch jedoch nicht schneller. Offenbar rechnet der Canon-Filter das Bild wieder auf 600 DPI hoch und verschenkt damit den Geschwindigkeitsvorteil.
Auch bei der Art der zu verarbeitenden Dokumente scheint der Druckerfilter der Version 2.2.1 etwas wählerisch zu sein. Die Testseite für gehobene Grafikanwendungen, die auch Aufschluss über die Farbseparation geliefert hätte, ließ sich mit dem Filter überhaupt nicht verarbeiten. Auch versagte uns der Canon-Filter die Seiten sieben bis zehn des Office-Dokuments – ohne jegliche Fehlermeldung und nicht nachvollziehbar. Die neue Version 2.4.0 und Turboprint hatten mit den selben Dateien keinerlei Probleme.
Grauer Panther
Für den täglichen Briefverkehr reichen Graustufen völlig aus, diese bringt auch der alte Treiber Version 2.2.1 für den Canon i550 problemlos und mit hoher Konturschärfe zu Papier. Dazu muss zum Beispiel in Open Office in den Drucker-Eigenschaften Graustufen-Druck eingestellt sein. Für den Leistungsvergleich verwendete der Autor den neuen Canon-Treiber Version 2.4.0.
Der traditionelle Grauert-Brief durfte als Standard-Test für den alltäglichen Briefdruck nicht fehlen – allerdings unterscheidet sich die Art des Ausdrucks. Wurde der Grauert-Brief früher als reiner ASCII-Text direkt an den Drucker ausgegeben, verwenden heutige Textverarbeitungsprogramme ausschließlich den Grafik-Modus. Zudem verfügen heute nur noch Drucker im gehobenen Preissegment über eigene PCL- oder Postscript-Interpreter, GDI-Drucker wie der Canon i560 benötigen das fertig gerenderte Druckbild und können mit ASCII-Text gar nichts mehr anfangen.
Mit 97 Sekunden für zehn Grauert-Briefe schlug der Canon-Treiber Turboprint (132 Sekunden) um Längen. Die Qualität der Ausdrucke war bei beiden Treibern sehr gut, ein Unterschied war selbst mit der Lupe nicht auszumachen.
Auch den Grau-Test, wo eine ganzseitige graue Fläche ausgedruckt wird, absolvierten der Canon-Treiber in Version 2.4.0 und Turboprint 1.90 nahezu problemlos, die Streifenbildung ist zu vernachlässigen und fällt kaum auf. Der Druckrand beträgt unten fünf Millimeter und an allen anderen Seiten drei Millimeter. Für den Druck der Grauflächen verwenden beide Treiber kein Schwarz, sondern drucken eine mehrfarbige Punkte dich nebeneinander (Error-Diffusion).
Farn-Grafiken
Beim DTP-Mix-Test, einer Mischung aus farbig hervorgehobenem Text, normalem Fließtext und Balkendiagrammen, schnitt Turboprint besser ab: Einerseits war der Ausdruck des zehnseitigen Dokuments mit aktivierter Farbkorrektur (TrueMatch) dreißig Sekunden schneller als der Canon-Treiber, andererseits entsprach das Druckbild eher dem, was der Monitor anzeigte.
Hinter TrueMatch von Turboprint verbirgt sich eine Gamma-Korrektur – viele Monitore sind etwas zu hell und mit zu hohem Kontrast eingestellt, was meist mit einer Gamma-Korrektur von 1,3 bis 1,4 aufgefangen werden kann.
Beim Grafik-Test in Abbildung 3, einer komplexen Corel-Draw-Grafik mit Farbverläufen und engen Linien, konnte Turboprint seine Trümpfe nicht so recht ausspielen. Zwar bietet Turboprint verschiedene Druckauflösungen bis zu 4800 DPI an, einen sichtbaren Einfluss auf den Ausdruck hatte dies jedoch nicht. Der gelbe Text auf schwarzem Grund bei Messpunkt 8 links verfärbte sich ohne TrueMatch sichtbar ins rote, und auch der Schwarz-Verlauf am unteren Ende wies ohne TrueMatch einen leichten Braun-Stich auf. Insgesamt erreichte Turboprint bei 600 DPI mit TrueMatch den besten Grafik-Ausdruck.

Abbildung 2: Mit Hilfe des Grafiktests lässt sich sehr leicht feststellen, wie gut Treiber und Drucker die Farbverläufe zu Papier bringen – so fiel Turboprint durch eine grobere Rasterung und andersfarbige Pixel auf.
Klarer Sieger in dieser Disziplin ist jedoch der Canon-Treiber: Verfärbungen gab es keine, und der Grau-Verlauf am unteren Bildrand war deutlich sauberer und gleichmäßiger als beim kommerziellen Treiber. Weitere Pluspunkte sammelte der Canon-Treiber bei den abgestuften Farbverlaufsbalken (Messpunkt 1) und den Verläufen an den Rändern: Während bei Turboprint mit bloßem Auge ein Raster in allen vier Grundfarben zu sehen ist, liefert der Canon-Treiber satte Farben. Noch dazu brauchte der Canon-Treiber lediglich 130 Sekunden für den Ausdruck der sehr komplexen Grafik, bei Turboprint dauerte es 50 Sekunden länger.
Fotos
Stellvertretend für Ihre Urlaubs-Fotos druckte der Autor im Test das Foto unseres Models Bianca (Abbildung 3) ganzseitig auf Canons Photo Paper Glossy Plus aus. Beide Treiber schlugen sich in dieser Disziplin ausgezeichnet.

Abbildung 3: Das Foto unseres Models Bianca ist gespickt mit Problemen für Drucker und Scanner. So ist der Pinguin-Kopf im Spiegel bei vielen Druckern genauso wenig zu erkennen wie die dunklen Farbtöne der Farbtafel in der Mitte.
Bei Turboprint mit aktiviertem TrueMatch leuchteten besonders die Hauttöne des Models, die Sonnenblumen und die der Plüsch-Pinguin deutlich stärker als bei der Konkurrenz aus Japan. Dafür versank die Schreibmaschine in einem matten, schmierigen Schwarz, auf dem Ausdruck des Canon-Treibers waren einfach mehr Details im Schwarzspiegel zu erkennen und die schwarzen Schatten waren kräftiger abgezeichnet als bei Turboprint. Letztlich geht der Punkt auch in dieser Disziplin an die Japaner – die Ausdruckgeschwindigkeit fiel hier mit 175 und 180 Sekunden nicht ins Gewicht.
Fazit
Canons Pixus-Treiber in der Version 2.4.0 schlägt die kommerzielle Konkurrenz aus dem Hause Turboprint fast in allen Belangen. Das Problem liegt eindeutig an der Sprachbarriere, weder Canon Deutschland noch die Pressestelle wussten, dass es auf den japanischen Servern überhaupt Linux-Treiber gibt.
Ein Problem ist sicher die Verbreitungslizenz: Zwar stehen die Front- und Backends für CUPS unter GPL, die Binär-Bibliotheken hingegen sind Closed Source. Aus der Babelfish-Übersetzung der Verbreitungslizenz lässt sich herauslesen, dass die Weitergabe der Binärpakete in Form fertig compilierter RPMs kostenfrei möglich ist – verlassen sollte man sich auf solche Details bei einem Automaten jedoch nicht.
Canon ist mit dem eigenen Treiber auf dem richtigen Weg, müsste dies aber dringend im eigenen Konzern und bei den Distributoren bekannt machen – zumindest eine englische Dokumentation täte dringend Not und würde sicher auch zur Verbreitung beitragen.
Infos
[1] FTP-Server mit den japanischen Linux-Treibern: ftp://download.canon.jp/pub/driver/bj/linux/
[2] Babelfish Übersetzungs-Automat: http://babelfish.altavista.com
[3] Japanische Linux-Treiber-Homepage: http://cweb.canon.jp/drv-upd/bj/bjlinux221.html
[4] Turboprint, kommerzieller Druckertreiber: http://www.turboprint.de




