it-swarm.com.de

Ich kann meinen Canon LBP-Drucker unter Ubuntu 14.04 nicht zum Laufen bringen

Ich habe den Linux CAPT-Treiber V2.60 von Canon heruntergeladen und beide .deb-Pakete installiert, die mit Ubuntu Software-Center im 64-Bit-Ordner aufgelistet wurden. Mein Canon Drucker wird immer noch nicht erkannt. Muss ich sonst noch etwas tun? Mein Drucker ist über USB angeschlossen.

Ubuntu wäre ein großartiger Ersatz für mein Büro, aber ohne Druckerunterstützung werde ich mich immer noch auf Windows verlassen.

enter image description here

16
empedokles

Der Canon CAPT-Druckertreiber ist Closed Source und die von Canon gelieferten Binärbibliotheken sind für i386 kompiliert. Wenn Sie also mit AMD64 arbeiten, müssen Sie zuerst multiarch aktivieren und einige Bibliotheken installieren:

# AMD64 only
dpkg --add-architecture i386
apt-get update
apt-get install libstdc++6:i386 libxml2:i386 zlib1g:i386 libpopt0:i386

Installieren Sie Tassen, wenn Sie sie noch nicht haben:

apt-get install cups

Laden Sie den Canon CAPT-Druckertreiber herunter und entpacken Sie ihn:

wget http://gdlp01.c-wss.com/gds/6/0100004596
tar -zxvf Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz/03/Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz

Installieren Sie je nach Architektur einen 32-Bit- oder 64-Bit-Treiber:

  • 32-Bit

    dpkg -i Linux_CAPT_PrinterDriver_V260_uk_EN/32-bit_Driver/Debian/*.deb
    
  • 64-Bit

    dpkg -i Linux_CAPT_PrinterDriver_V260_uk_EN/64-bit_Driver/Debian/*.deb
    

Suchen Sie nun in /usr/share/cups/model nach den PPD-Dateien, die die Drucker beschreiben, und wählen Sie die aus, die Ihrem Drucker entspricht (oder diesem am nächsten kommt):

# grep -H ModelName /usr/share/cups/model/*.ppd | less
...
/usr/share/cups/model/CNCUPSLBP6018CAPTS.ppd:*ModelName: "Canon LBP6000/LBP6018 CAPT (US)"

In diesem Fall haben wir CNCUPSLBP6018CAPTS.ppd gewählt, das zum Modell LBP6000 passt.

Drucker hinzufügen:

# lpadmin -p LBP6000 -m CNCUPSLBP6018CAPTS.ppd -v ccp://localhost:59687
# lpadmin -p LBP6000 -E
# ccpdadmin -p LBP6000 -o /dev/usb/lp0

Konfigurieren Sie Ihr System so, dass der Canon ccpd-Daemon automatisch gestartet wird:

# update-rc.d ccpd defaults

Probleme

Es gibt verschiedene Probleme mit dem Canon-Druckertreiber:

  • Es wurde für Debian gebaut und die letzte unterstützte Ubuntu-Version war 12.04. Es funktioniert jedoch in 14.04.

  • Es enthält Binärbibliotheken für geschlossene Quellen, die für 32-Bit-i386 erstellt wurden und daher nicht nativ auf AMD64 ausgeführt werden können (auch nicht im 64-Bit-Paket).

  • captstatusui enthält einen unbegrenzten Aufruf von strcpy in cnsktmodule.c, der auf einigen Systemen mit dem Fehler aborted *** buffer overflow detected *** fehlschlägt

  • Der Canon-Druckertreiber ist eigentlich ein separater Daemon, der über einen lokalen oder Netzwerk-Socket mit Cups kommuniziert. Er lässt einen offenen Netzwerk-Port auf Ihrem System und ich bezweifle, dass der Canon-Code jemals auf Sicherheitslücken überprüft wurde

  • Der Drucker kann zweimal in Bechern angezeigt werden (einmal für automatisch erkannten USB-Drucker, einmal als Canon CCPD-Daemon), aber der "USB" -Drucker funktioniert nicht, wenn Sie versuchen, darauf zu drucken. Wenn in den Druckereinstellungen Ihr Drucker als USB-Drucker konfiguriert ist, müssen Sie ihn manuell deaktivieren (Rechtsklick, Deaktivieren).

  • Canon verwendet eine eigene proprietäre Software und ein eigenes Protokoll für die Kommunikation mit dem Drucker. Aus diesem Grund wird der Drucker nicht in Tassen integriert, wird nicht automatisch erkannt und erfordert die manuelle Installation eines Treibers. Es ist zu erwarten, dass ein Drucker automatisch erkannt wird und funktioniert, aber dies ist mit Canon LBP nicht möglich. Mein nächster Drucker wird ein Drucker sein, der nur mit Open-Source-Treibern funktioniert, wahrscheinlich ein Netzwerkdrucker, der den Standard PCL - Printer Command Language unterstützt, wie z. B. Brother HL-2250DN = (billiger Duplex-Netzwerkdrucker, früher der meistverkaufte Laserdrucker von Amazon) oder von HP Linux empfohlener Drucker der mit der Open-Source-Software HPLIP funktioniert.

  • Die Build-Skripte für den Quellcode sind alt und ein bisschen chaotisch. Aufgrund der Integration von Closed-Source-i386-Binärbibliotheken und der mangelnden Unterstützung für Multiarch in den Build-Skripten wäre es sehr schwierig, eine voll funktionsfähige 64-Bit-Version zu kompilieren. Das Kompilieren einer 32-Bit-Version auf einem 32-Bit-System ist möglich, sobald Sie die verschiedenen Fehler im Build-System behoben haben.


Problem: ccpd hängt

Manchmal bleibt ccpd hängen und in der Warteschlange steht nur "Verarbeitung seit ..."

Versuchen Sie einen manuellen Neustart:

pkill -9 -x ccpd
pkill -9 -x captmoncnabc
/etc/init.d/ccpd start
/etc/init.d/ccpd status

Problem: ccpd funktioniert nicht - nur ein ccpd-Prozess wird nach dem Systemstart ausgeführt

Für den normalen Betrieb sollten zwei ccpd-Prozesse in einem System ausgeführt werden. Der ccpd-Daemon hängt davon ab, ob der cups-Daemon ausgeführt wird, bevor der zweite Prozess ausgelöst wird. Sie können das Problem mit der folgenden Methode umgehen:

  1. Aktivieren Sie das Skript cups init (Standardeinstellung update-rc.d cups).

  2. Weisen Sie das Skript ccpd init an, nach dem Befehl cups init (update-rc.d ccpd default 99) ausgeführt zu werden, oder fügen Sie in das Skript /etc/rc.local "sleep 10 && /etc/init.d/ccpd start" ein.

Wenn Sie UDEV-Regeln und Startskript verwenden möchten, beachten Sie, dass UDEV-Regeln vor dem CUPS-Init-Skript ausgeführt werden. Daher kann es hilfreich sein, das ccpd-Init-Skript neu zu starten und dann einfach zu starten. Beispielsweise können Sie die folgende Zeichenfolge in "/etc/rc.local" einfügen:

sleep 10 && /etc/init.d/ccpd restart

(Lösung aus buntu-Wiki )


Melden von Fehlern und Problemen an den Canon-Support

Canon hat eine offizielle E-Mail-Adresse für die Meldung von Fehlern und Problemen mit dem Treiber:

[email protected]

Aus Quelle erstellen

Wenn Sie versucht sind, das Erstellen und Installieren von der Quelle aus zu versuchen, befolgen Sie diese Anweisungen (das Arch-Erstellungsskript kann ebenfalls hilfreich sein):

Sudo apt-get install build-essential automake libtool libgtk2.0-dev libglade2-dev libcups2-dev

wget http://gdlp01.c-wss.com/gds/6/0100004596/03/Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
tar -zxvf Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
cd Linux_CAPT_PrinterDriver_V260_uk_EN/Src/

# do cndrvcups-common
Sudo apt-get install build-essential automake libtool libgtk2.0-dev libglade2-dev libcups2-dev
rm -rf cndrvcups-common-2.60-1/
tar -zxvf cndrvcups-common-2.60-1.tar.gz
cd cndrvcups-common-2.60-1/
sed -i -e 's/-lcups/-lcups -lgmodule-2.0/' cngplp/src/Makefile.am
dpkg-buildpackage -b -uc
cd ..
Sudo apt-get install cups
Sudo dpkg -i cndrvcups-common_2.60-1_AMD64.deb

# do cndrvcups-capt
rm -rf cndrvcups-capt-2.60-1/
tar -zxvf cndrvcups-capt-2.60-1.tar.gz
cd cndrvcups-capt-2.60-1/
export echo=echo
sed -i -e 's/dh_shlibdeps/dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info/' debian/rules
sed -i -e 's/eval cmds=\"$old_archive_cmds/echo/' cngplp/ltmain.sh
sed -i -e 's:uimain.h":uimain.h"\n#include <cups/ppd.h>:' statusui/src/ppapdata.c
sed -i -e 's/cnsktmodule.la/cnsktmodule.la -lpthread/' statusui/src/Makefile.am
debian/rules configure
sed -i -e 's/RANLIB=/#RANLIB=/' cngplp/libtool
debian/rules build
fakeroot debian/rules install
fakeroot debian/rules binary-Arch
cd ..
Sudo dpkg -i cndrvcups-capt_2.60-1_AMD64.deb

Ich füge dies nur als Notiz für jeden hinzu, der dazu geneigt ist, diesem Weg zu folgen. Die meisten Leute sollten nicht versuchen, dies von der Quelle zu bauen. Selbst auf einem AMD64-System enthält das resultierende Paket die geschlossenen i386-Bibliotheken.

13
bain