Po około godzinie walki z nowo zakupioną drukarką Canon LBP-2900 i z przeświadczeniem że będzie działać, 3xpingwin na LinuxPrinting.Org okazało się że nie jest tak pięknie jak miało być. Google oczywiście przekazało parę informacji ale za Polskę Ludową nie chciało działać... i wtedy.... :)
Konfiguracja kernela i potrzebne pakiety
Jak to zwykle bywa robiąc "własne jajko" człowiek zapomina o istotnych rzeczach :) W kernelu zaznaczyć trzeba
USB Printer support. No chyba że używacie jajka dystrybucyjnego to pewnie jest zaznaczone. Dodatkowo potrzebne nam będą zainstalowane cupsy oraz alien do przekonwertowania rpm na deb ( lub rpm do zainstalowanie ich bezpośrednio - i tak właśnie zrobiłem). Można je zainstalować klepiąc
USB Printer support. No chyba że używacie jajka dystrybucyjnego to pewnie jest zaznaczone. Dodatkowo potrzebne nam będą zainstalowane cupsy oraz alien do przekonwertowania rpm na deb ( lub rpm do zainstalowanie ich bezpośrednio - i tak właśnie zrobiłem). Można je zainstalować klepiąc
# apt-get install cupsys rpm alien
Opcje jakie należy zaznaczyć w jajku:
Device Drivers -->
USB support -->
< * > USB Printer support
Oprogramowanie
Oprogramowanie potrzebne znaleźć można na:
Instalacja
Wykonujemy su na roota
$ su -
Zassysamy oprogramowanie
# wget http://software.canon-europe.com/files/soft23675/software/Driver.tar.gz
Rozpakowujemy archiwum
tar -zxvf Driver.tar.gz
Przechodzimy do katalogu
cd Driver/
Konwertujemy rpm do deb
# alien -c cndrvcups-capt-1.30-1.i386.rpm
# alien -c cndrvcups-common-1.30-1.i386.rpm
Instalujemy deb lub rpm
# dpkg -i cndrvcups-capt_1.30-1.i386.deb cndrvcups-common_1.30-1.i386.deb
lub
# rpm -i --nodeps cndrvcups-capt-1.30-1.i386.rpm
# rpm -i --nodeps cndrvcups-common-1.30-1.i386.rpm
!! parametr --nodeps został dodany z powodu że paczki pluły się o zależności, których nie miałem (wy pewnie tez ich nie macie :) więc trzeba go dodać żeby wymusić instalacje
Aby załadować nowe sterowniki musimy najpierw wyłączyć cupsys
# /etc/init.d/cupsys stop
Upewniamy się że cupsy są wyłączone
# ps aux | grep cups
Jeżeli okaże się że nadal działają to je killujemy
# killall cupsd
Tworzymy potrzebną strukturę katalogów ( u mnie zrobiła sie sama )
# mkdir /var/ccpd
# mkdir /var/captmon
Następnie tworzymy kolejkę
# mkfifo /var/ccpd/fifo0
Dajemy dostęp wszystkim do kolejki
# chmod 777 /var/ccpd/fifo0
Zmieniamy prawa do /usr/share/cups/model na bardziej dostępne
# chmod -R a+rX /usr/share/cups/model
Startujemy cupsy
# /etc/init.d/cupsys start
Rejestrujemy kolejkę dla drukarki
# lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
Może się zdarzyć że system nie będzie mógł znaleźć pliku ppd wiec robimy symlinka
# cd /usr/share/ppd/
# ln -s /usr/share/cups/model/CNCUPSLBP2900CAPTK.ppd
!!!! Rejestrujemy drukarkę w serwerze ccpd
# ccpdadmin -p LBP2900 -o /dev/usb/lp0
W każdym opisie było to nieszczęsne usblp0 natomiast w debianie (u mnie SID) jest /dev/usb/lp0
Zmieniamy plik /etc/init.d/ccpd na taki
############## Listing pliku
#!/bin/sh
# # ccpd startup script for Canon Printer Daemon for CUPS
# # Modified for Debian GNU/Linux
# by Raphael Doursenaud .
DAEMON=/usr/sbin/ccpd LOCKFILE=/var/lock/subsys/ccpd PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=ccpd DESC="Canon Printer Daemon for CUPS" test -f $DAEMON || exit 0 case $1 in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet --exec $DAEMON echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo --exec $DAEMON echo "." ;; status) echo "$DESC: $NAME:" `pidof $NAME` ;; restart) echo -n "Restarting $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo --exec $DAEMON sleep 1 start-stop-daemon --start --quiet --exec $DAEMON echo "." ;; *) echo "Usage: ccpd {start|stop|status}" exit 1 ;; esac exit 0
Nadajemy potrzebne prawa
# chmod a+x /etc/init.d/ccpd
Sprawiamy aby daemon ccpd startował przy starcie systemu
# update-rc.d ccpd defaults 20
Przewalamy system
# reboot
Przy starcie systemu sprawdzamy czy cups i ccpd wstają
Sprawdzamy czy nasza drukareczka działa
$ captstatusui -P LBP2900
Naszym oczom pojawi się okienko. Jeżeli widnieje w nim zapis "ready to print" to znaczy że możemy już drukować. :)
Prawdopodobnie opis zadziała także na inne LBP. Nie miałem jak sprawdzić, należy jednak pamiętać o plikach ppd przy rejestracji kolejki i drukarki. Pliki ppd maja nazewnictwa CNCUPSLBP[ model drukarki]CAPT[J lub K].ppd