Non riesco a far funzionare la mia stampante LBP Canon con Ubuntu 14.04


17

Ho scaricato il driver Linux CAPT V2.60 da Canon e installato entrambi i pacchetti .deb, elencati nella cartella a 64 bit con Ubuntu Software-Center. La mia stampante Canon non verrà ancora riconosciuta. C'è qualcos'altro che devo fare? La mia stampante è collegata tramite USB.

Ubuntu sarebbe un ottimo sostituto per il mio ufficio, ma sfortunatamente senza il supporto della stampante continuerò a fare affidamento su Windows.

inserisci qui la descrizione dell'immagine


Non incolpare Ubuntu per la mancanza di supporto da Canon a Linux.
Rinzwind,

@Rinzwind Penso che Ubuntu avrebbe abbastanza potenza per parlare con Canon per ottenere un supporto migliore.
Empedokles

No, ti sbagli lì. Semplice: Canon come azienda vuole soldi. E Canonical non pagherà (è contro gli ideali dell'azienda). Tutto il supporto che vedi su Canon su Ubuntu proviene da un (!) Volontario (michael gruz su launchpad launchpad.net/~michael-gruz/+archive/canon-trunk ).
Rinzwind,

@Rinzwind Secondo le istruzioni ho aperto un terminale e fatto "sudo add-apt-repository ppa: michael-gruz / canon-trunk" e "sudo apt-get update". Qualunque altra cosa?
Empedokles

1
Che PPA è obsoleto, non supporta Ubuntu 14.04.
Bagnato

Risposte:


14

Il driver della stampante CAPT Canon è di tipo chiuso e le librerie binarie fornite da Canon sono compilate per i386. Quindi se sei su amd64 dovrai prima abilitare multiarch e installare alcune librerie:

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

Installa le tazze se non l'hai già:

apt-get install cups

Scarica e decomprime il driver della stampante Canon CAPT:

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

Installa il driver a 32 o 64 bit in base alla tua architettura:

  • 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
    

Ora cerca /usr/share/cups/modeli file ppd che descrivono le stampanti e scegli quello che corrisponde (o è il più vicino) alla tua stampante:

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

In questo caso abbiamo scelto CNCUPSLBP6018CAPTS.ppdquale modello LBP6000 corrisponde.

Aggiungi stampante:

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

E configura il tuo sistema per avviare automaticamente il demone ccpd Canon:

# update-rc.d ccpd defaults

I problemi

Esistono diversi problemi con il driver della stampante Canon:

  • È stato creato per Debian e l'ultima versione di Ubuntu supportata è stata la 12.04. Funziona però nel 14.04.

  • Include librerie binarie a codice chiuso costruite per i386 a 32 bit, quindi non possono essere eseguite nativamente su amd64 (anche nel pacchetto a 64 bit)

  • captstatusui include una chiamata illimitata a strcpyin cnsktmodule.c che non riesce con errori aborted *** buffer overflow detected ***su alcuni sistemi

  • Il driver della stampante Canon è in realtà un demone separato che comunica con le tazze su un socket locale o di rete: lascia una porta di rete aperta sul sistema e dubito che il codice Canon sia mai stato verificato per le vulnerabilità di sicurezza

  • La stampante può apparire due volte a tazze (una volta per la stampante USB rilevata automaticamente, una volta come demone Canon CCPD) ma la stampante "USB" non funzionerà se si tenta di stamparla. Nelle impostazioni della stampante, se vedi la tua stampante configurata come stampante USB, devi disabilitarla manualmente (tasto destro, disabilita)

  • Canon utilizza il proprio software e protocollo proprietari per comunicare con la stampante, motivo per cui non è integrato con le tazze, non viene rilevato automaticamente e richiede l'installazione manuale di un driver. È ragionevole aspettarsi che una stampante venga rilevata automaticamente e funzioni, ma ciò non è possibile con Canon LBP. La mia prossima stampante sarà una stampante che "funziona" solo con i driver open source, probabilmente una stampante di rete che supporta lo standard PCL - Printer Command Language Language , come Brother HL-2250DN (stampante di rete duplex economica, in precedenza la stampante laser più venduta di Amazon) o una stampante consigliata da HP Linux che funziona con il loro software HPLIP open source .

  • Gli script di compilazione per il codice sorgente sono vecchi e un po 'confusi. A causa dell'inclusione delle librerie binarie i386 di origine chiusa e della mancanza di supporto per multiarch negli script di compilazione, sarebbe molto difficile compilare una versione a 64 bit perfettamente funzionante. La compilazione di una versione a 32 bit, su un sistema a 32 bit, è possibile dopo aver risolto i vari bug nel sistema di generazione.


Problema: ccpd si blocca

A volte ccpd si blocca e la coda dice semplicemente "Elaborazione da ..."

Prova un riavvio manuale:

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

Problema: ccpd non funziona: solo un processo ccpd è in esecuzione dopo l'avvio del sistema

Per il normale funzionamento due processi ccpd dovrebbero essere in esecuzione in un sistema. Il demone ccpd dipende dall'esecuzione del daemon cups prima di eseguire il secondo processo. È possibile utilizzare il metodo seguente per risolvere il problema:

  1. Abilita lo script cups cups (valori predefiniti di cups-update-rc.d).

  2. Indica allo script ccpd init di essere eseguito dopo init cups (update-rc.d ccpd default 99), oppure aggiungi "sleep 10 && /etc/init.d/ccpd start" nello script /etc/rc.local.

Se si desidera utilizzare le regole UDEV e lo script di avvio, tenere presente che le regole UDEV vengono eseguite prima dello script init CUPS, quindi può essere utile riavviare lo script init ccpd piuttosto che semplicemente avviarlo. Ad esempio, puoi inserire la seguente stringa in "/etc/rc.local":

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

(Soluzione dal wiki di Ubuntu )


Segnalazione di bug e problemi al supporto Canon

Canon dispone di un indirizzo e-mail ufficiale per la segnalazione di eventuali bug e problemi con il driver:

sup-debian@list.canon.co.jp

Costruisci dalla fonte

Se sei tentato di provare a costruire e installare dal sorgente, segui queste istruzioni (lo script di compilazione di Arch potrebbe anche aiutarti):

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

Lo sto includendo solo come una nota per chiunque sia incline a seguire questo percorso. Molte persone non dovrebbero tentare di costruirlo dalla fonte. Anche su un sistema amd64, il pacchetto risultante includerà le librerie i386 chiuse.


Grazie. Cerco sempre anche l'efficienza energetica. Che dire di LaserJet Pro P1102? topten.ch/deutsch/buro/laserdrucker/…
empedokles

Secondo la pagina HPLIP P1102, la stampante è pienamente supportata su Ubuntu 14.04. Richiede un plug-in di origine chiusa scaricabile; forniscono software ( hp-setup) che eseguirà il download e lo configurerà.
Bagnato


1
Grazie per la risposta! A proposito, come sapevi che libstdc++6:i386 libxml2:i386 zlib1g:i386era richiesto? Le istruzioni hanno menzionato ia32-libs, che da allora è stato assente nelle versioni successive di Ubuntu, quindi mi chiedevo quale fosse la sostituzione.
Syockit,

1
@syockit Se lo esegui file canon/libcapt.soidentificherà le librerie Canon come "ELF 32-bit", quindi sappiamo che sono necessarie librerie dinamiche a 32 bit. Esegui ldd in questo modo ldd canon/libcapt.so: il linker stamperà tutte le librerie dinamiche richieste e mostrerà quelle che non sono state trovate. È quindi possibile utilizzare apt-file search libpthread.soper trovare il pacchetto in cui si trovano le librerie.
Guadagnare il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.