Durch die stete Entwicklung werden immer mehr Canon-Drucker von Haus aus erkannt. Man sollte also zunächst ganz normal die Druckerkonfiguration vornehmen (GNOME/KDE). Die folgende Anleitung benötigt man nur, falls kein Treiber für das vorliegende Gerät vorhanden sein sollte, bzw. man mit der Qualität der mitgelieferten Treiber unzufrieden ist.
Für den Fall, dass eine ältere Ubuntu-Version eingesetzt wird oder Features, zum Beispiel Füllstandsanzeige, benötigt werden, bieten sich die Original Canon-Treiber an, deren Installation ein wenig mehr Aufwand als bei Ubuntu-Paketen benötigt. Mit den MP- und MX-Modellen werden auch Scannertreiber, die den Windows-Treibern entsprechen, ausgeliefert, so dass sich die Installation auf alle Fälle lohnt. Dieser Artikel soll es jedem ermöglichen, diese Treiber zu installieren.
Falls der eigene Drucker nicht aufgelistet wird, lohnt sich ein Test, ob ein Treiber aus der gleichen Druckergeneration funktioniert. Wenn dies der Fall ist, bitte diesen Wiki-Artikel ergänzen.
Alternativ hat Takushi Miyoshi die Treiber etwas überarbeitet. Dessen Installationsanweisungen sind auf dieser Seite
zu finden. Achtung: Diese Treiber funktionieren nicht mit neueren Ubuntu-Versionen (getestet 8.10 und 9.04)
Wenn gar nichts funktioniert oder die Druckqualität zu wünschen übrig lässt, lohnt es, einen Blick auf Treiber von TurboPrint zu werfen.
Die Anleitung zur den Pixma-Scannern in den MP-Geräten findet sich hier Canon Pixma Scanner
Zurück zu den Canon-Treibern:
Eine Version des Treibers unterstützt immer eine Reihe von Druckern. Diese sind:
v1.3 (hier nicht behandelt): 360 / 850 / 860 / 870 / S600 / S630 / S6300
v2.0 (hier nicht behandelt): BJS500
v2.1 (hier nicht behandelt): BJF900 / BJF9000 / BJS300
v2.2: 550i / 850i / 950i
v2.3: 250i*
v2.4: Pixus 560i / Pixus 860i / Pixus 990i
v2.50: Pixus IP1500** / Pixus IP3100 / Pixus IP4100 / Pixus IP1000** / Pixus IP8600
v2.60: IP2200* / IP2500* / IP4200 / IP6600D / IP7500 / MP500
v2.70: IP90 / MP160** / IP3300 / MP510** / IP4300 / MP600 / IP2500** / IP1800**
v2.80: MP140** / MP610** / MP620*** / MP210*** / MP520** / IP4500* / IP3500* / MX700**
v2.90 IP100* / IP2600*
V3.00 IP4600** /IP3600*** /MP190** /MP240** /MP630** /MP540*
V3.10 MX860** /MX330** /MX320**
V3.20 IP4700** /MP250** /MP270** /MP490** /MP550** /M560** /MP640**
V3.30 IP2700** /MX340** /MX350** /MX870**
Die Funktionalität ist bei den neueren Treibern ausreichend, die Druckqualität hervorragend.
Im Anschluss eine Tabelle über die erprobten Drucker:
| Treibername | Deutsche Drucker |
| pixus550i | i550 |
| pixus860i | BJC i865 |
| pixusip4100 | Pixma IP4000 |
| pixusip4100i | Pixma IP4000R |
| ip2200 | Pixma IP2200 |
| ip2500 | Pixma IP2500 |
| ip2600 | Pixma IP2600 |
| ip3300 | Pixma IP3500 |
| ip4200 | Pixma IP4200 |
| ip4300 | Pixma IP4300 |
| ip4500 | Pixma IP4500 |
Die notwendigen Dateien für alle Drucker außer den mit ** gekennzeichneten, sind von dieser Seite
herunterladbar.
Für die mit * gekennzeichneten Drucker lässt sich der Treiber über deutsche Canon-Support-Seite
herunterladen.
Für die mit ** gekennzeichneten Drucker lässt sich der Treiber über die asiatische Canon-Support-Seite
herunterladen. Download unter Konqueror geht nur mit "Rechtsklick -> Speichern unter...", danach WWUFORedirectTarget.do entsprechend umbenennen.
Canon-Asia hat manchmal im Auswahlmenü für die Drucker recht eigenwillige Bezeichnungen für das Druckermodell, z.B. IP3680 für den IP3600 oder z.B. MP636 für den MP630. Entscheidend sind in den meisten Fällen die beiden ersten Ziffern.
Einige Treiber ***gibt es auch mit englischen Anleitungen auf der australischen Canon-Support-Seite
.
i250:
bjfiltercups-2.3-0.i386.rpm
bjfilteri250-2.3-0.i386.rpm
i550:
bjfiltercups-2.2-2.i386.rpm
bjfilterpixus550i-2.2-2.i386.rpm
i560:
bjfiltercups-2.4-1.i386.rpm
bjfilterpixus560i-2.4-0.i386.rpm
i850:
bjfilterpixus850i-2.2-1.i386.rpm
bjfiltercups-2.2-1.i386.rpm (Siehe Canon-I850-CUPS
)
i865:
bjfiltercups-2.4-1.i386.rpm
bjfilterpixus860i-2.4-0.i386.rpm
Pixma IP1000:
bjfilter-common-2.50-3.i386.rpm
bjfilter-pixmaip1000-2.50-2.i386.rpm
Pixma IP1500:
bjfilter-common-2.50-3.i386.rpm
bjfilter-pixmaip1500-2.50-2.i386.rpm
Pixma IP1800:
cnijfilter-common-2.70-1.i386.rpm
cnijfilter-ip1800series-2.70-1.i386.rpm
Pixma IP2200:
iP2200_Linux_260.tar.gz, enthält:
cnijfilter-common-2.60-1.i386.rpm
cnijfilter-ip2200-2.60-1.i386.rpm
Pixma IP2500:
cnijfilter-common-2.70-1.i386.rpm
cnijfilter-ip2500series-2.70-1.i386.rpm
Pixma IP2600:
cnijfilter-common_2.90-1_i386.deb
cnijfilter-ip2600series_2.90-1_i386.deb
Pixma IP3300:
cnijfilter-common-2.70-1.i386.rpm
cnijfilter-ip3300series-2.70-1.i386.rpm
v2.70-1 von japanischer Website funktioniert, v2.70-2 von deutscher Support-Website ist fehlerhaft! (nicht nur die Symlinks sind verkehrt)
Pixma IP3500:
cnijfilter-ip3500series_2.80-1.i386.deb
cnijfilter-common_2.80-1.i386.deb
Pixma IP3600:
cnijfilter-ip3600series_3.00-1_i386.deb
cnijfilter-common_3.00-1_i386.deb
Pixma IP4000, Pixma IP4000R:
bjfilter-pixusip4100-2.50-2.i386.rpm
bjfilter-pixusip4100-lprng-2.50-2.i386.rpm
bjfilter-common-2.50-3.i386.rpm
Pixma IP4200, Pixma IP5200 und Pixma IP5200R:
cnijfilter-ip4200-2.60-4.i386.rpm
cnijfilter-ip4200-lprng-2.60-4.i386.rpm
cnijfilter-common-2.60-3.i386.rpm
Pixma IP4300:
cnijfilter-ip4300-2.70-2.i386.rpm
cnijfilter-common-2.70-1.i386.rpm
Pixma IP4500:
cnijfilter-ip4500series_2.80-1_i386.deb
cnijfilter-common_2.80-1.i386.deb
Leider unterstützt der Treiber keinen Randlosdruck.
Pixma IP4600:
cnijfilter-ip4600series_3.00-1_i386.deb
cnijfilter-common_3.00-1_i386.deb
Pixma IP4700:
cnijfilter-ip4700series-3.20-1-i386-deb.tar.gz
Pixma IP90:
cnijfilter-ip90-2.70-1.i386.rpm
cnijfilter-common-2.70-1.i386.rpm
Pixma IP100:
cnijfilter-common_2.90-1_i386.deb
cnijfilter-ip100series_2.90-1_i386.deb
MP 140:
cnijfilter-mp140series-2.80-1.i386.deb
cnijfilter-common-2.80-1.i386.deb
scangearmp-mp140series-1.10-1.i386.deb
scangearmp-common-1.10-1.i386.deb
MP 160:
cnijfilter-mp160-2.70-1.i386.rpm
cnijfilter-common-2.70-1.i386.rpm
scangearmp-common-1.00-2.i386.rpm
scangearmp-mp160-1.00-1.i386.rpm
MP 190:
cnijfilter-common_3.00-1_i386.deb
cnijfilter-mp190series_3.00-1_i386.deb
scangearmp-common_1.20-1_i386.deb
scangearmp-mp190series_1.20-1_i386.deb
MP 210:
cnijfilter-mp210series-2.80-1.i386.deb
cnijfilter-common-2.80-1.i386.deb
scangearmp-mp210series-1.10-1.i386.deb
scangearmp-common-1.10-1.i386.deb
MP 240:
cnijfilter-common_3.00-1_i386.deb
cnijfilter-mp240series_3.00-1_i386.deb
scangearmp-common_1.20-1_i386.deb
scangearmp-mp240series_1.20-1_i386.deb
MP 250:
cnijfilter-mp250series-3.20-1-i386-deb.tar.gz
scangearmp-mp250series-1.40-1-i386-deb.tar.gz
MP 270:
cnijfilter-mp270series-3.20-1-i386-deb.tar.gz
scangearmp-mp270series-1.40-1-i386-deb.tar.gz
MP 490:
cnijfilter-mp490series-3.20-1-i386-deb.tar.gz
scangearmp-mp490series-1.40-1-i386-deb.tar.gz
MP 510:
cnijfilter-mp510-2.70-2.i386.rpm
cnijfilter-common-2.70-1.i386.rpm
scangearmp-mp510-1.00-1.i386.rpm
scangearmp-common-1.00-2.i386.rpm
MP 520:
cnijfilter-mp520series-2.80-1.i386.deb
cnijfilter-common-2.80-1.i386.deb
scangearmp-mp520series-1.10-1.i386.deb
scangearmp-common-1.10-1.i386.deb
MP 540:
cnijfilter-mp540series_3.00-1_i386.deb
cnijfilter-common-3.00-1_i386.deb
scangearmp-mp540series_1.20-1_i386.deb
scangearmp-common_1.20-1_i386.debs
MP 550:
cnijfilter-mp550series-3.20-1-i386-deb.tar.gz
scangearmp-mp550series-1.40-1-i386-deb.tar.gz
MP 560:
cnijfilter-mp560series-3.20-1-i386-deb.tar.gz
scangearmp-mp560series-1.40-1-i386-deb.tar.gz
MP 600:
cnijfilter-mp600-2.70-2.i386.rpm
cnijfilter-common-2.70-1.i386.rpm
scangearmp-mp600-1.00-1.i386.rpm
scangearmp-common-1.00-2.i386.rpm
MP 610:
cnijfilter-mp610series-2.80-1.i386.deb
cnijfilter-common-2.80-1.i386.deb
scangearmp-mp610series-1.10-1.i386.deb
scangearmp-common-1.10-1.i386.deb
MP 620:
cnijfilter-mp610series-2.80-1.i386.deb
cnijfilter-common-2.80-1.i386.deb
Zum korrekten Betrieb siehe folgende Anleitung für Hardy: Canon PIXMA MP620
fertige, erweiterte PPD's Enhanced PPD 
Anleitung um den Drucker per WLAN zu nutzen: http://www.holgermetzger.de/mp620.html Dabei nicht auf "find new printers", sondern auf "add printer" klicken und etwas warten (ca. 30 Sekunden), bis der Drucker gefunden wurde.
MP 630:
cnijfilter-mp630series_3.00-1_i386.deb
cnijfilter-common-3.00-1_i386.deb
scangearmp-mp630series_1.20-1_i386.deb
scangearmp-common_1.20-1_i386.deb
fertige, erweiterte PPD's Enhanced PPD 
Canon-Treiber und Dummy-Paket für Karmic und Lucid, Anleitung für die Treiber
Skript für automatischen Download und Installation des Pakets und der Treiber
MP 640:
cnijfilter-mp640series-3.20-1-i386-deb.tar.gz
scangearmp-mp640series-1.40-1-i386-deb.tar.gz
Treiber kann man hier herunterladen: http://support-asia.canon-asia.com/P/search?model=PIXMA+MP648&menu=download&filter=0&tagname=ca_os&ca_os=Linux (Anscheinend heisst der Drucker in Asien MP648 ?)
MX 320:
cnijfilter-mx320series-3.10-1-i386-deb.tar.gz
scangearmp-mx320series-1.30-1-i386-deb.tar.gz
MX 330:
cnijfilter-mx330series-3.10-1-i386-deb.tar.gz
scangearmp-mx330series-1.30-1-i386-deb.tar.gz
MX 340:
cnijfilter-mx340series-3.30-1-i386-deb.tar.gz
scangearmp-mx340series-1.50-1-i386-deb.tar.gz
MX 700:
cnijfilter-mp520series_2.80-1_i386.deb
cnijfilter-common_2.80-1_i386.deb
Zum korrekten Betrieb ist eine angepasste PPD von ubuntuforums.org
notwendig.
MX 860:
cnijfilter-mx860series-3.10-1-i386-deb.tar.gz
scangearmp-mx860series-1.30-1-i386-deb.tar.gz
Fremdpakete können das System gefährden.
Es sind vorab noch einige Pakete zu installieren [1]. Möglicherweise muss die Sektion universe freigeschaltet [2] werden.
libxml1 (bzw. libxml2 (ab Karmic))
libglade0 (libglade2-0 (ab Karmic))
libpng3
libtiff4
Paketliste zum Kopieren:
sudo apt-get install libxml1 libglade0 libpng3 libtiff4
sudo aptitude install libxml1 libglade0 libpng3 libtiff4
Die Installation des Druckers LBP5000 ist weiter unten beschrieben.
Wenn die Treiberpakete im *.deb-Format vorhanden sind, können sie einfach installiert [4] werden, und es sind in der Regel keine weiteren Schritte mehr notwendig. Es kann dann unter dem Abschnitt Einrichten-des-Druckertreibers weitergemacht werden. Sollten doch Probleme auftreten, so kann der Abschnitt Links setzen hilfreich sein. Sollte die Installation der Pakete fehlschlagen, weil die Abhängigkeit von libcupsys2 nicht aufgelöst werden kann, müssen die Pakete leicht angepasst werden. Wie dies geschehen kann, ist im Abschnitt Abhängigkeiten bearbeiten zu finden.
Grundsätzlich sollte immer die neueste Version des common-filter-Pakets installiert werden. Aktuell ist dies für alle cnij-Filter cnijfilter-common_3.00-1_i386. Dies behebt viele Fehler (z.B. mit neueren cups-Versionen, die keinen '_' Unterstrich in Dateinamen mehr erlauben).
Nun können die heruntergeladenen *.rpm-Dateien wie unter [3] beschrieben in *.deb-Pakete umgewandelt und installiert werden.
In manchen Fällen sollte die Option --scripts beim Umwandeln mit angegeben werden. Siehe Alien für mehr Informationen.
Dieser Schritt ist mit der Treiberversion 2.80 nicht mehr nötig, da bereits *.deb-Pakete von Canon angeboten werden.
Einige Anwender berichten, dass mit
sudo dpkg -i --force architecture *.deb
eine Installation und Betrieb unter 64-Bit funktioniert.
Die Treiberdateien setzen zum Teil veraltete DLLs voraus. Um dieses Problem zu umgehen, können symbolische Links mit den alten Versionsnamen zu den aktuellen Versionen der DLLs gesetzt werden. Glücklicherweise scheinen sich die DLL-APIs nicht geändert zu haben, so dass dies problemlos funktioniert.
Die Original-Datei-Versionen können dabei zwischen den Ubuntu-Versionen abweichen; dies sollte vorher geprüft werden!
Im ersten Schritt ist der Name des Druckerfilters zu ermitteln:
cd /usr/local/bin ls -l
Neuere Versionen - z.B. 2.80 - der Treiber installieren sich nach /usr/bin
Je nach Version des Treibers erscheint hier eine Datei bjfilter(Druckertyp) (bis v2.50) bzw. cif(Druckertyp) (ab v2.60).
login@rechner:~$ cd /usr/local/bin login@rechner:/usr/local/bin$ ls -l
insgesamt 892 -rwxr-xr-x 1 root root 84571 2007-02-22 06:50 cifip4300 -rwxr-xr-x 1 root root 20166 2007-02-22 06:50 cngpij -rwxr-xr-x 1 root root 96073 2007-02-22 06:50 cngpijmonip4300 -rwxr-xr-x 1 root root 106903 2007-02-22 06:50 lgmonip4300 -rwxr-xr-x 1 root root 578772 2007-02-22 06:50 printuiip4300
Diese Datei benötigt die TIFF- und PNG-DLLs, die häufig in neueren Versionen vorliegen. Die benötigten Versionen lassen sich durch
ldd bjfilter(Druckertyp)
bzw.
ldd cif(Druckertyp)
ermitteln. Im Beispiel steht etwa
login@rechner:/usr/local/bin$ ldd cifip4300
linux-gate.so.1 => (0xffffe000)
libcnbpcmcm294.so => /usr/lib/libcnbpcmcm294.so (0xb7f3d000)
libcnbpess294.so => /usr/lib/libcnbpess294.so (0xb7ef5000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7ecf000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7ecb000)
libtiff.so.3 => not found
libpng.so.3 => not found
libcnbpcnclapi294.so => /usr/lib/libcnbpcnclapi294.so (0xb7e4f000)
libcnbpcnclbjcmd294.so => /usr/lib/libcnbpcnclbjcmd294.so (0xb7e4a000)
libcnbpcnclui294.so => /usr/lib/libcnbpcnclui294.so (0xb7e44000)
libpopt.so.0 => /lib/libpopt.so.0 (0xb7e3d000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d09000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7cf6000)
/lib/ld-linux.so.2 (0xb7f5a000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7cd6000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7cc2000)Daraus ergibt sich, dass dem Treiber die DLLs libtiff.so.3 und libpng.so.3 fehlen, der Drucker kann so nicht drucken. Mit dem Befehl
cd /usr/lib ls -l libtiff* libpng*
lässt sich herausfinden, welche DLLs installiert sind. Zum Beispiel
login@rechner:/usr/lib$ ls -l libtiff* libpng*
-rw-r--r-- 1 root root 185926 2006-11-16 01:31 libpng12.a lrwxrwxrwx 1 root root 13 2007-01-10 00:49 libpng12.so -> libpng12.so.0 lrwxrwxrwx 1 root root 19 2006-12-03 23:50 libpng12.so.0 -> libpng12.so.0.1.2.8 -rw-r--r-- 1 root root 146320 2006-11-16 01:31 libpng12.so.0.1.2.8 lrwxrwxrwx 1 root root 10 2007-01-10 00:49 libpng.a -> libpng12.a lrwxrwxrwx 1 root root 11 2007-01-10 00:49 libpng.so -> libpng12.so -rw-r--r-- 1 root root 404034 2006-08-08 10:53 libtiff.a -rw-r--r-- 1 root root 971 2006-08-08 10:52 libtiff.la lrwxrwxrwx 1 root root 16 2007-01-10 00:48 libtiff.so -> libtiff.so.4.2.1 lrwxrwxrwx 1 root root 16 2006-12-03 22:06 libtiff.so.4 -> libtiff.so.4.2.1 -rw-r--r-- 1 root root 335596 2006-08-08 10:53 libtiff.so.4.2.1 -rw-r--r-- 1 root root 5846 2006-08-08 10:53 libtiffxx.a -rw-r--r-- 1 root root 997 2006-08-08 10:52 libtiffxx.la lrwxrwxrwx 1 root root 18 2007-01-10 00:48 libtiffxx.so -> libtiffxx.so.0.0.6 lrwxrwxrwx 1 root root 18 2007-01-10 00:48 libtiffxx.so.0 -> libtiffxx.so.0.0.6 -rw-r--r-- 1 root root 6968 2006-08-08 10:53 libtiffxx.so.0.0.6
Die installierte Version der TIFF-DLL ist in diesem Beispiel libtiff.so.4 anstelle der erwarteten libtiff.so.3. Ebenso weichen die installierte Version der PNG-DLL (libpng12.so) und die erwartete Version (libpng.so.3) voneinander ab. Im Beispiel müssen die aktuellen, vorhandenen DLLs auf die alten, von der Software erwarteten Versionen gelinkt werden.
sudo ln -s libtiff.so.4 libtiff.so.3 sudo ln -s libpng12.so.0 libpng.so.3
Aufgelistet sehen die TIFF- bzw. PNG-DLLs im /usr/lib-Verzeichnis so aus:
login@rechner:/usr/lib$ ls -l libtiff* libpng*
-rw-r--r-- 1 root root 185926 2006-11-16 01:31 libpng12.a lrwxrwxrwx 1 root root 13 2007-01-10 00:49 libpng12.so -> libpng12.so.0 lrwxrwxrwx 1 root root 19 2006-12-03 23:50 libpng12.so.0 -> libpng12.so.0.1.2.8 -rw-r--r-- 1 root root 146320 2006-11-16 01:31 libpng12.so.0.1.2.8 lrwxrwxrwx 1 root root 10 2007-01-10 00:49 libpng.a -> libpng12.a lrwxrwxrwx 1 root root 11 2007-01-10 00:49 libpng.so -> libpng12.so lrwxrwxrwx 1 root root 13 2007-01-06 19:14 libpng.so.3 -> libpng12.so.0 -rw-r--r-- 1 root root 404034 2006-08-08 10:53 libtiff.a -rw-r--r-- 1 root root 971 2006-08-08 10:52 libtiff.la lrwxrwxrwx 1 root root 16 2007-01-10 00:48 libtiff.so -> libtiff.so.4.2.1 lrwxrwxrwx 1 root root 12 2007-01-06 19:13 libtiff.so.3 -> libtiff.so.4 lrwxrwxrwx 1 root root 16 2006-12-03 22:06 libtiff.so.4 -> libtiff.so.4.2.1 -rw-r--r-- 1 root root 335596 2006-08-08 10:53 libtiff.so.4.2.1 -rw-r--r-- 1 root root 5846 2006-08-08 10:53 libtiffxx.a -rw-r--r-- 1 root root 997 2006-08-08 10:52 libtiffxx.la lrwxrwxrwx 1 root root 18 2007-01-10 00:48 libtiffxx.so -> libtiffxx.so.0.0.6 lrwxrwxrwx 1 root root 18 2007-01-10 00:48 libtiffxx.so.0 -> libtiffxx.so.0.0.6 -rw-r--r-- 1 root root 6968 2006-08-08 10:53 libtiffxx.so.0.0.6
Die PNG-DLL befindet sich unter Lucid Lynx im Verzeichnis /lib und nicht wie bisher in /usr/lib !
Somit sind die Links unter Lucid Lynx wie folgt anzupassen:
cd /usr/lib sudo ln -s libtiff.so.4 libtiff.so.3 cd /lib sudo ln -s libpng12.so.0 libpng.so.3
Achtung! In 64 bit Systemen kann man den Treiber von canon nur durch Manipulation des Pakets (andere Architektur in control eintragen) installieren. Dann müssen die libtiff.so und libpng.so aus dem Paket ia32-libs statt den 64 bit Versionen in /usr/libs verwendet werden, d.h. die links sind dann in /usr/lib32 zu erstellen.
Befehle dazu:
cd /usr/lib32 sudo ln -s libtiff.so.4 libtiff.so.3 sudo ln -s libpng12.so.0 libpng.so.3
Abgeschlossen wird diese Prozedur durch die Aktualiserung des Link-Caches mit "ldconfig":
sudo ldconfig
Mit dem Befehl "ldd" lässt sich prüfen, ob jetzt alles in Ordnung ist.
login@rechner:/usr/lib$ cd /usr/local/bin login@rechner:/usr/local/bin$ ldd cifip4300
linux-gate.so.1 => (0xffffe000)
libcnbpcmcm294.so => /usr/lib/libcnbpcmcm294.so (0xb7edf000)
libcnbpess294.so => /usr/lib/libcnbpess294.so (0xb7e97000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e71000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e6d000)
libtiff.so.3 => /usr/lib/libtiff.so.3 (0xb7e1b000)
libpng.so.3 => /usr/lib/libpng.so.3 (0xb7df7000)
libcnbpcnclapi294.so => /usr/lib/libcnbpcnclapi294.so (0xb7df1000)
libcnbpcnclbjcmd294.so => /usr/lib/libcnbpcnclbjcmd294.so (0xb7dec000)
libcnbpcnclui294.so => /usr/lib/libcnbpcnclui294.so (0xb7de6000)
libpopt.so.0 => /lib/libpopt.so.0 (0xb7ddf000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7cab000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7c98000)
/lib/ld-linux.so.2 (0xb7efc000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7c78000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7c64000)Falls dies nicht ausreichend war und weitere DLLs mit Namen cnlib* '"not found'" sind, fehlen diese Links in der Installationsdatei. Auch diese lassen sich, ähnlich wie oben beschrieben, nachträglich anlegen.
Der Befehl
ldd cifip4300
ergibt in so einem Fall:
linux-gate.so.1 => (0xffffe000)
libcnbpcmcm294.so => not found
libcnbpess294.so => not found
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e71000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e6d000)
libtiff.so.3 => /usr/lib/libtiff.so.3 (0xb7e1b000)
libpng.so.3 => /usr/lib/libpng.so.3 (0xb7df7000)
libcnbpcnclapi294.so => not found
libcnbpcnclbjcmd294.so => not found
libcnbpcnclui294.so => not found
libpopt.so.0 => /lib/libpopt.so.0 (0xb7ddf000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7cab000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7c98000)
/lib/ld-linux.so.2 (0xb7efc000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7c78000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7c64000)Abhilfe schafft, alle Canon-spezifischen DLLs anzeigen und danach mit verkürzten Namen verlinken. Dazu zunächst die DLLs mit
cd /usr/lib ls -l libcn*
ausgeben lassen, was im Beispiel diese Ausgabe ergibt:
-rwxr-xr-x 1 root root 40440 2007-02-22 06:50 libcnbpcmcm294.so.6.50.1 -rwxr-xr-x 1 root root 16304 2007-02-22 06:50 libcnbpcnclapi294.so.3.3.0 -rwxr-xr-x 1 root root 15348 2007-02-22 06:50 libcnbpcnclbjcmd294.so.3.3.0 -rwxr-xr-x 1 root root 23292 2007-02-22 06:50 libcnbpcnclui294.so.3.3.0 -rwxr-xr-x 1 root root 291400 2007-02-22 06:50 libcnbpess294.so.3.0.9 -rwxr-xr-x 1 root root 40228 2007-02-22 06:50 libcnbpo294.so.1.0.2
Die notwendigen Links werden in dem Beispiel wie folgt erstellt:
sudo ln -s libcnbpcmcm294.so.6.50.1 libcnbpcmcm294.so sudo ln -s libcnbpcnclapi294.so.3.3.0 libcnbpcnclapi294.so sudo ln -s libcnbpcnclbjcmd294.so.3.3.0 libcnbpcnclbjcmd294.so sudo ln -s libcnbpcnclui294.so.3.3.0 libcnbpcnclui294.so sudo ln -s libcnbpess294.so.3.0.9 libcnbpess294.so sudo ln -s libcnbpo294.so.1.0.2 libcnbpo294.so
Eine anschließende Überprüfung aller Canon DLLs im Verzeichnis /usr/lib ergibt für das Beispiel die folgende Ausgabe:
login@rechner:/usr/bin$ cd /usr/lib login@rechner:/usr/lib$ ls -l libcn*
lrwxrwxrwx 1 root root 24 2007-04-26 00:43 libcnbpcmcm294.so -> libcnbpcmcm294.so.6.50.1 -rwxr-xr-x 1 root root 40440 2007-02-22 06:50 libcnbpcmcm294.so.6.50.1 lrwxrwxrwx 1 root root 26 2007-04-26 00:43 libcnbpcnclapi294.so -> libcnbpcnclapi294.so.3.3.0 -rwxr-xr-x 1 root root 16304 2007-02-22 06:50 libcnbpcnclapi294.so.3.3.0 lrwxrwxrwx 1 root root 28 2007-04-26 00:43 libcnbpcnclbjcmd294.so -> libcnbpcnclbjcmd294.so.3.3.0 -rwxr-xr-x 1 root root 15348 2007-02-22 06:50 libcnbpcnclbjcmd294.so.3.3.0 lrwxrwxrwx 1 root root 25 2007-04-26 00:43 libcnbpcnclui294.so -> libcnbpcnclui294.so.3.3.0 -rwxr-xr-x 1 root root 23292 2007-02-22 06:50 libcnbpcnclui294.so.3.3.0 lrwxrwxrwx 1 root root 22 2007-04-26 00:43 libcnbpess294.so -> libcnbpess294.so.3.0.9 -rwxr-xr-x 1 root root 291400 2007-02-22 06:50 libcnbpess294.so.3.0.9 lrwxrwxrwx 1 root root 20 2007-04-26 00:43 libcnbpo294.so -> libcnbpo294.so.1.0.2 -rwxr-xr-x 1 root root 40228 2007-02-22 06:50 libcnbpo294.so.1.0.2
Es kann bei der Installation der Pakete dazu kommen, dass Abhängigkeiten nicht aufgelöst werden können. Dies liegt daran, dass bei aktuellen Ubuntu-Versionen libcupsys2 durch libcups2 ersetzt wurde. Um die Pakete dennoch zu installieren, ist etwas Handarbeit nötig. Dies wird hier am Beispiel der cnijfilter-common_3.00-1_i386.deb gezeigt. Das Verfahren sollte sich auf andere Treiberpakete übertragen lassen.
Zuerst wird das .deb-Archiv entpackt:
login@rechner:ar -x cnijfilter-common_3.00-1_i386.deb login@rechner:ls cnijfilter-common_3.00-1_i386.deb control.tar.gz data.tar.gz debian-binary
Nun wird die control.tar.gz entpackt:
login@rechner:tar -xzf control.tar.gz login@rechner:ls
cnijfilter-common_3.00-1_i386.deb control control.tar.gz data.tar.gz debian-binary md5sums
Jetzt kann man mit einem Editor [6] die Datei control editieren. Hier muss nun in der Zeile "Depends:..." "libcupsys2" durch "libcups2" ersetzt werden.
Anschließend muss alles wieder gepackt werden:
login@rechner:tar -czf control.tar.gz control md5sums login@rechner:ar -r cnijfilter-common_3.00-1_i386.deb debian-binary control.tar.gz data.tar.gz
Hierbei gilt es zu beachten, dass alle Dateien, die aus control.tar.gz entpackt wurden, auch wieder verpackt werden. Es können durchaus Dateien dabei sein, die hier nicht erwähnt wurden.
Jetzt sollte sich das Paket problemlos installieren lassen.
Mit dem Befehl
cd /usr/local/bin ldd bjfilter(Druckertyp)
bzw.
cd /usr/local/bin ldd cif(Druckertyp)
kann geprüft werden, ob alle DLLs richtig gelinkt sind. Dies ist eine sehr häufige Fehlerquelle bei der Installation, also zunächst dies prüfen. Es darf keine Zeile mit einem "not found" erscheinen, sonst fehlt etwas.
Nun kann der Drucker über die Druckerkonfiguration hinzugefügt und eingerichtet werden. Falls der Treiber nicht in der Auswahlliste erscheint, kann er manuell aus dem Verzeichnis /usr/share/cups/model/canon(Druckertyp).ppd ausgewählt werden, in Ubuntu Intrepid Ibex 8.10 /usr/share/ppd/canon(Druckertyp).ppd.
Die (Druckertyp).ppd (liegt in /usr/share/cups/model/ bzw. /usr/share/ppd/ oder /etc/cups/ppd/) kann durch folgende Ergänzungen erweitert werden (hierzu mittels Editor öffnen [6]):
*OpenUI *CNQuality/Quality: PickOne *DefaultCNQuality: 3 *CNQuality 1/Super High: "1" *CNQuality 2/High: "2" *CNQuality 3/Normal: "3" *CNQuality 4/Standard: "4" *CNQuality 5/Economy: "5" *CloseUI: *CNQuality
Dies ermöglicht es, die Druckqualität einzustellen (alternativ über printuipixus).
Achtung! Beim Canon MX 860 darf folgende Zeile unter Karmic (9.10) nicht mehr verwendet werden: (Hat bei Jaunty (9.04) noch problemlos funktioniert.)
*CNQuality 1/Super High: "1"
Ansonsten beendet sich das Programm aus dem gedruckt werden soll in der Regel sofort!
*OpenUI *Resolution/Output Resolution: PickOne *DefaultResolution: 600 *Resolution 600/600 dpi: "<</HWResolution[600 600]>>setpagedevice" *Resolution 1200/1200 dpi: "<</HWResolution[1200 1200]>>setpagedevice" *Resolution 2400/2400 dpi: "<</HWResolution[2400 2400]>>setpagedevice" *CloseUI: *Resolution
Ermöglicht es, auch 1200dpi und 2400dpi als Auflösung einzustellen.
*OpenUI *CNGrayscale/Grayscale: PickOne *DefaultCNGrayscale: false *CNGrayscale false/Off: "false" *CNGrayscale true/On: "true" *CloseUI: *CNGrayscale
Ermöglicht es, in Graustufen zu drucken.
Wenn der Treiber anfangs nur 600 dpi unterstützt, kann man die PPD folgendermaßen editieren, um ihn auf 2400 dpi und beste Qualität zu bringen.
Dazu die betreffenden Abschnitte editieren, damit sie wie folgt aussehen:
*OpenUI *Resolution/Output Resolution: PickOne *DefaultResolution: 600 *Resolution 600/600 dpi: "<</HWResolution[600 600]>>setpagedevice" *Resolution 1200/1200 dpi: "<</HWResolution[1200 1200]>>setpagedevice" *Resolution 2400/2400 dpi: "<</HWResolution[2400 2400]>>setpagedevice" *CloseUI: *Resolution *OpenUI *CNQuality/Quality: PickOne *DefaultCNQuality: 3 *CNQuality 2/High: "2" *CNQuality 3/Normal: "3" *CNQuality 4/Standard: "4" *CNQuality 5/Economy: "5" *CloseUI: *CNQuality
Wenn die Einstellungen nachträglich eingefügt werden sollen, ist zu beachten, dass die vom System verwendete canon(Druckertyp).ppd-Datei jetzt in /etc/cups/ppd/ zu finden ist. Die Druckerkonfiguration kopiert beim Hinzufügen des neuen Druckers die gewählte canon(Druckertyp).ppd-Datei aus /usr/share/cups/model/ nach /etc/cups/ppd. Der Dateiname unterscheidet sich dann eventuell etwas von dem Namen der Ursprungsdatei, aber das soll nicht weiter stören.
Wie unten angegeben kann man mittels "printuipixus***" bzw. "cifip***" auch randlos drucken, das ist allerdings recht kompliziert. Glücklicherweise hat Canon den randlosen Druck bereits im Treiber vorgesehen, es fehlen eigentlich nur die '.bl' (=borderless) Einträge in der (Druckertyp).ppd. Fertige PPD's mit randlosem Druck gibts für die "Canon MFP 600/610" dort: Blog zu den Canon Multifunktionsdruckern
. Die dort eingefügten Befehle lassen sich für alle hier aufgelisteten Druckertypen übernehmen.
Hier ein Beispiel für "A4 Randlos" (bei manchen Druckern muss "a4.bl" statt "A4.bl" eingegeben werden):
*OpenUI *PageSize/Paper Size: PickOne *DefaultPageSize: a4 *PageSize a5/A5: "<</CNPageSizeName(a5)/PageSize[420 595]/ImagingBBox null>>setpagedevice" *PageSize a4/A4: "<</CNPageSizeName(a4)/PageSize[595 842]/ImagingBBox null>>setpagedevice" *PageSize a4.bl/A4 210x297mm borderless: "<</CNPageSizeName(A4.bl)/PageSize[595 842]/ImagingBBox null>>setpagedevice" . . . *CloseUI: *PageSize *OpenUI *PageRegion: PickOne *DefaultPageRegion: a4 *PageRegion a5/A5: "<</CNPageSizeName(a5)/PageSize[420 595]/ImagingBBox null>>setpagedevice" *PageRegion a4/A4: "<</CNPageSizeName(a4)/PageSize[595 842]/ImagingBBox null>>setpagedevice" *PageRegion a4.bl/A4 210.0x297.0mm borderless: "<</CNPageSizeName(A4.bl)/PageSize[595 842]/ImagingBBox null>>setpagedevice" . . . *CloseUI: *PageRegion *DefaultImageableArea: a4 *ImageableArea a5: "9.64 14.17 409.89 586.77" *ImageableArea a4: "9.64 14.17 585.64 833.39" *ImageableArea A4.bl: "0.0 0.0 595.00 842.00" . . . *ImageableArea panorama: "9.64 14.17 242.65 711.50" *DefaultPaperDimension: a4 *PaperDimension a5: "420 595" *PaperDimension a4: "595 842" *PaperDimension A4.bl: "595 842" . . . *PaperDimension panorama: "252 720"
Analog lässt sich für alle Papierformate ein randloser Druck einrichten.
Der Randlose Druck ist nicht ganz problemlos (wahrscheinlich auch der Grund warum Canon ihn nicht aktiviert). Z.B. wird leicht über den Rand gedruckt und er ist auch nicht sehr genau.
Korrektur von Fehler "invalid printer model name"
Error: invalid printer model name
in diesem Fall sollte man evtl. die Berechtigungen folgendermaßen anpassen:
sudo chmod 755 /usr/lib/bjlib
Korrektur von Fehler "pstocanonbj failed"
Bereit: /usr/lib/cups/filter/pstocanonbj failed
in diesem Fall kann die Installation neuerer bjfilter-common-Treiber helfen. Von der besagten Canon-Treiber-Seite
das Paket bjfilter-common-2.50-3.i386.rpm bzw. cnijfilter-common-2.70-1.i386.rpm herunterladen und per
sudo alien --scripts bjfilter-common-2.50-3.i386.rpm sudo dpkg -i --force-all bjfilter-common_2.50-4_i386.deb
umwandeln und installieren [3]. Die Option --force-all sichert, dass die alten Treiber überschrieben werden.
Korrektur von Fehler "pstocanonij"
Unterbrochen: Filter "pstocanonij" for printer "iP3300-Ver.2.70" not available: No such file or directory
in diesem Fall handelt es sich um einen bug (und zwar ein Tippfehler) im Treiber-Paket, lässt sich hiermit korrigieren:
cd /usr/lib/cups/filter/ sudo ln -s pstocanonbj pstocanonij
Bzw. cnijfilter-common-2.80-1.i386.deb installieren.
sudo dpkg -i --force-all cnijfilter-common_2.80-1.i386.deb
Mit "bjcupsmon" (ältere Modelle) bzw. "cngpijmon" (neuere Modelle) kann man einen CUPS-Statusmonitor starten, welcher u.a. den Tintenstand anzeigt. Damit die Anzeige funktioniert muss "Canon Status Readback", also ein bi-direktionaler Anschluss ausgewählt werden. Aus diesem Grund funktioniert die Tintenstandsanzeige auch nicht an Routern mit USB-Anschluss oder Printservern, diese sind überwiegend uni-direktional.
Auch mit libinklevel
(ab 0.70) lässt sich der Tintenstand abfragen. Für libinklevel gibt es verschiedene Frontends: Kommandozeile (ink), GNOME (inkblot) und KDE (QInk, unter Karmic nicht in den Paketquellen) als fertige deb-Pakete in den Ubuntu-Quellen.
Damit "inkblot" auch wirklich den Drucker richtig erkennt, muss der Nutzer zu der Gruppe "lp" hinzugefügt werden.
Dazu ruft man "System -> Systemverwaltung -> Benutzer und Gruppen" auf und drückt auf den Schlüsselbund zur Freigabe. Anschließend wählt man "Gruppen verwalten" und sucht in der Liste die Gruppen "lp" und öffnet die "Eigenschaften" der Gruppe. Nun macht man einfach den Haken beim jeweiligen Benutzer an und bestätigt. Nach einer Neuanmeldung sollte "inkblot" nun den Drucker erkennen.
Mittels "printuipixus***", bzw. "cifip***" (***= Druckername, z.B. 550i für den Canon i550) im Terminal erhält man zusätzliche Einstellungsseiten u.a. zur Druckkopfreinigung, Druckkopfjustierung, Seitenskalierung, Randlosen Druck ...). Leider sind die Möglichkeiten von "printuipixus/cifip" etwas beschränkt, es werden Root-Rechte benötigt, die Zusammenarbeit mit CUPS ist nicht gegeben, die Datei muss manuell übergeben werden. Anwendungsbeispiel:
cifip4200 --gui --media plain --papersize a4 sample.bmp > /dev/usb/lp0
Wer in GIMP etc. Farbprofile für die Canon-Drucker verwenden möchte, muss die ICC/ICM-Dateien leider von einer Windows-Installation kopieren. Die Farbprofile befinden sich dort üblicherweise im Verzeichnis /WINDOWS/system32/spool/drivers/color. Die entsprechende(n) Datei(en) dann nach /usr/share/color/icc kopieren, damit sie automatisch gefunden werden.
Einige Drucker (z.B. Canon Pixma MX700) lassen sich via Netzwerk betreiben. Hierzu bedarf es der Installation des CUPS Bubble-Jet Netzwerkprotokolls. Nähere Information und Treiber finden sich hier: Canon BJNP Cups Treiber.
Auch wenn der Drucker mit einer dynamischen Netzwerkadresse (via DHCP) funktioniert, ist es klug diesem eine feste IP Adresse zu verpassen.
Nach folgender Anleitung konnte der Drucker LBP5000 von Canon unter Ubuntu 9.04 eingerichtet werden.
Zur Erstellung des Treibers wurde das Archiv CAPTDRV180.tar.gz verwendet. Auf der Web-Seite von Canon Treiberdownload-LBP5000
sind weitere Drucker angeführt, die mit diesem Treiber funktionieren sollten.
Nach dem Entpacken steht der Ordner CANON_UK zur Verfügung. Im Unterordner /Driver/Debian sind die Pakete zur Treiberinstallation vorhanden. Begonnen wird mit dem Paket *common*.deb. Bei diesem Paket gibt es ein Abhängigkeitsproblem. Das wird im Anschluss wie von der Paketinstallation empfohlen in einem Terminalfenster mit
sudo apt-get install -f
aufgelöst.
Danach das Paket *cndrvcups*.deb installieren.
Cups neu starten (Wichtig!):
sudo /etc/init.d/cups restart
Drucker im Druckspooler registrieren:
Basisbefehl:
sudo /usr/sbin/lpadmin -p [printer name] -m [PPD file name] -v ccp:/var/ccpd/fifo0 -E
Hier wird nun der Drucker als "LBP5000" registriert:
sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
Drucker in der ccpd-Daemon-Setupdatei registrieren:
Basisbefehl
sudo /usr/sbin/ccpdadmin -p [Printer Name] -o [Printer Device Path]
Hier wird der Drucker "LBP5000" in der ccpd-Daemon-Setupdatei registriert:
sudo /usr/sbin/ccpdadmin -p LBP5000 -o /dev/usb/lp0
Basisbefehl
sudo /usr/sbin/ccpdadmin -p [Printer Name] -o net:[IP address]
Als "IP address" muss die IP-Addresse der Netzwerkkarte vom Drucker eingetragen werden.
Hier wird der Drucker "LBP5000" mit der IP-Adresse 10.0.0.146 in der ccpd-Daemon-Setupdatei registriert:
sudo /usr/sbin/ccpdadmin -p LBP5000 -o net:10.0.0.146
ccpd-Daemon starten:
sudo /etc/init.d/ccpd start
Ab nun steht der Drucker Canon LBP-5000 als „LBP5000“ zur Verfügung.
Mit dem Aufruf von
captstatusui -P LBP5000
wird der Statusmonitor gestartet.
Achtung: Der ccpd-Daemon muss vor jeder ersten Verwendung des Druckers nach Systemstart neu gestartet werden!
Da der Dienst "ccpd" immer mit Root-Rechten gestartet werden muss, muss noch eine Freigabe der/des Benutzer(s) erfolgen. Dazu die Datei /etc/sudoers in einem edfitor mit Root-Rechten öffnen und am Ende folgenden Eintrag hinzufügen, wobei "benutzer" durch den Benutzernamen des freizugebenden Benutzers, der "ccpd" als root (ohne Passwort) starten dürfen soll, zu ersetzen ist:
# all users that may start ccpd as root benutzer ALL=NOPASSWD: /etc/init.d/ccpd start
Datei speichern und beenden.
Das Fenster "System -> Einstellungen -> Startprogramme" öffnen. Mit der Schaltfläche "Hinzufügen" wird ein neuer Dienst hinzugefügt. Bei Name wurde "Druckerdaemon LBP5000" eingetragen. Bei Befehl ist Folgendes einzutragen:
sudo /etc/init.d/ccpd start
Nach "Hinzufügen" ist der Dienst bei den Startprogrammen zu finden. Nochmals wird die Schaltfläche "Hinzufügen" benutzt, um den Statusmonitor des Druckers zu starten. Bei Name wurde "Statusmonitor LBP5000" eingetragen. Bei Befehl wird Folgendes eingetragen:
sh -c "sleep 30; /usr/bin/captstatusui -P LBP5000"
Sleep ist erforderlich, da das System Zeit braucht, um zu initialisieren. Wenn "ccpd" noch nicht komplett fertig ist, kann der Statusmonitor nicht gestartet werden. Nach Hinzufügen ist der Dienst ebenfalls bei den Startprogrammen zu finden.
Nach "Hinzufügen" und Schließen des Fensters Startprogramme werden die beiden Dienste ab dem nächsten Systemstart automatisch gestartet.
Wenn die Netzwerkkarte bei Systemstart nicht richtig eingerichtet werden kann (z.B.: keine IP Lease von Router), kann der ccpd-Daemon nicht ordnungsgemäß initialisiert werden und der Statusmonitor startet ebenfalls nicht. Abhilfe: Nach ordnungsgemäßer IP-Vergabe entweder Systemneustart oder manuell im Terminal oder man legt sich einen „Starter“ am Desktop an, der bei Bedarf "ccpd" startet und danach den Statusmonitor.
Der Farblaserdrucker LBP5000 kann nun verwendet werden, es sind keine weiteren Schritte zur Installation notwendig.
Diese Revision wurde am 27. August 2010 um 11:14 Uhr
von rarup erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Hardware, Drucker
2004 – 2010 ubuntuusers.de • Einige Rechte vorbehalten