Página linux

Configurar Canon LBP2900 para Linux 64 bits

Debian buster, Mint, Ubuntu


Hace tiempo realicé un tutorial de como instalar mi impresora canon LBP2900 en Debian 32 bits.
Después de tiempo de resistirme en pasar a 64 bits, me pasé con Debian 10 (buster).
Al intentar instalar mi impresora Canon LBP2900 en Debian 64 bits, me encontré que no funcionaba.
Lo curioso del tema es que en la versión de 32 bits funcionaba perfectamente.
Después de volverme loco con muchas pruebas, también descubrí que tampoco funcionaba en Ubuntu 64 bits.
Buscando y buscando, encontré esta página:
    https://riku.titanix.net/wordpress/canon-2900-working-on-linux/
El problema es que aunque los drivers son de 64 bits, utilizan librerías de 32 bits, esto no lo explican en ningún sitio.
Los pasos para instalar nuestra impresora Canon son los siguientes:

___________________________64bits____________________________________________________

Baja los driver  de 64 bits desde Canon:
    http://support-asia.canon-asia.com/contents/ASIA/EN/0100459601.html
 
tar -zxvf linux-capt-drv-v271-uken.tar.gz
cd linux-capt-drv-v271-uken/64-bit_Driver/Debian
sudo dpkg -i cndrvcups-common_3.21-1_amd64.deb
sudo dpkg -i cndrvcups-capt_2.71-1_amd64.deb

/usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59787
/usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0
/etc/init.d/ccpd start


Para Debian 10 (buster) , debido a un bug  , debemos editar /etc/init.d/ccpd y cambiar:
        #export PATH=$PATH:/usr/local/sbin:/usr/local/bin
por
        export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin/
Para Ubuntu y derivadas no hace falta lo anterior.

if ! [[ -d /var/ccpd ]]; then mkdir /var/ccpd; fi
if ! [[ -p /var/ccpd/fifo0 ]]; then mkdir /var/ccpd/fifo0; fi
chown -R lp:lp /var/ccpd


Añadir librerías de 32 bits que utilizan los driver cndrvcups de Canon de 64 bits.

dpkg --add-architecture i386
apt-get update
apt-get install libatk1.0-0:i386 libcairo2:i386 libgtk2.0-0:i386 libpango1.0-0:i386 libstdc++6:i386 libxml2:i386 libpopt0:i386

killall ccpd
systemctl restart cups
/etc/init.d/ccpd start


Si queremos que arranque el demonio al iniciarse el sistema.

Crear enlace simbólico.
ln -s /etc/init.d/ccpd /etc/rc3.d/S01ccpd

___________________________32bits____________________________________________________

Baja los driver  de 32 bits desde Canon:
    http://support-asia.canon-asia.com/contents/ASIA/EN/0100459601.html
 
tar -zxvf linux-capt-drv-v271-uken.tar.gz
cd linux-capt-drv-v271-uken/32-bit_Driver/Debian
sudo dpkg -i cndrvcups-common_3.21-1_i386.deb
sudo dpkg -i cndrvcups-capt_2.71-1_i386.deb

/usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59787
/usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0
/etc/init.d/ccpd start

if ! [[ -d /var/ccpd ]]; then mkdir /var/ccpd; fi
if ! [[ -p /var/ccpd/fifo0 ]]; then mkdir /var/ccpd/fifo0; fi
chown -R lp:lp /var/ccpd

killall ccpd
systemctl restart cups
/etc/init.d/ccpd start

Si queremos que arranque el demonio al iniciarse el sistema.

Crear enlace simbólico.
ln -s /etc/init.d/ccpd /etc/rc3.d/S01ccpd

_____________________________________________________________________________________

Existe una utilizad para confirma que todo ha ido bien:
        captstatusui -P LBP2900

Si nos sale el error :
    *** captstatusui Socket Error ***
significa que  el demonio ccpd no está lanzado.
Para lanzarlo  teclear:
        /etc/init.d/ccpd start
Ahora volvemos a lanzar la aplicación
        captstatusui -P LBP2900
y vemos que nos sale:

Puede que no salga un error de comunicaciones con la impresora.
Para eliminarlo solo tenemos que apagar y encender la impresora y nos aparecerá: Ready to Print , que nos indica que la impresora está lista para imprimir.


Reconozco que  que es bastante lioso, pero me ha llevado mucho tiempo hacerla funcionar.
Para colmo aparece una segunda impresora llamada  LBP2900-2, esta impresora no funciona ni tiene utilidad.


Saludos.
JUAN GALAZ


Bibliografía:

https://riku.titanix.net/wordpress/canon-2900-working-on-linux/
http://wiki.webevaluation.nl/canon_lbp3010