Install a Canon LBP-1120 printer on Ubuntu 6.06

L’installation d’imprimantes Canon sous Linux n’a jamais été drôle, et la LBP-1120 ne fait pas exception à la rêgle.

Jusqu’ici, il n’exitait qu’une seule solution, uriliser un driver réécrit pour une LBP-810 sous Linux, le CAPT 0.1 de Nicolas Boichat [la méthode pour utiliser CAPT 0.1 est décrite sur doc.ubuntu-fr.org et sur ubuntuforums.org]. Son fonctionnement était relatif (problèmes de pagination, d’impression sous Firefox, file d’attente à puger à la main,…).

Canon fournit désormais des drivers CAPT pour CUPS (Common UNIX Printing System). La dernière version est la 1.3 (04-04-2006). Notez que Canon ne fournit que le code source ou un package au format .rpm (pour Red Hat, donc).

Néanmoins, grâce aux efforts de Raphaël Doursenaud, qui a décrit la méthode pour CAPT 1.1 sur Debian, de Petar Vasić « abakus » qui a réécrit le tutorial pour CAPT 1.3 sur Ubuntu 5.10 (puis updaté pour 6.06), des petits malins de forums.ubuntu.fr qui ont bricolé sa méthode (notamment les pages LBP-2900 et LBP-3200), ainsi qu’à TNeo qui a mis à jour (en russe) le tuto avec les nouveaux noms des drivers Canon.

    Prérequis:

  • Il n’y a pas besoin de programmes supplémentaires, Ubuntu 6.06 comprend alien et cups, et vous n’avez pas besoin de vous servir de l’interface graphique Canon (pour laquelle il faudrait installer libgtk1.2).
  • Il n’y a qu’une imprimante CAPT installée, et elle est reliée à un port USB
    Toutes les commandes sont à entrer dans la console (Applications > Accessoires > Terminal)

  1. télécharger le fichier compressé comprenant le package rpm
    $ wget http://software.canon-europe.com/files/soft23675/software/Driver.tar.gz
  2. décompresser le fichier
    $ tar xvzf /chemin/de/mon/fichier/Driver.tar.gz
    On obtient deux fichiers, cndrvcups-capt-1.30-1.i386.rpm et cndrvcups-common-1.30-1.i386.rpm, dans un répertoire driver
  3. se placer dans le répertoire driver
    cd /chemin/de/mon/fichier/driver/
  4. exécutuer alien pour transformer les packages rpm en deb (donc utilisables sur une distribution basée sur Debian, comme l’est Ubuntu)
    $ sudo alien -c cndrvcups-capt-1.30-1.i386.rpm
    $ sudo alien -c cndrvcups-common-1.30-1.i386.rpm
  5. On obtient deux fichiers, cndrvcups-common_1.30-2_i386.deb et cndrvcups-capt_1.30-2_i386.deb

  6. installer les deux packages deb
    $ sudo dpkg -i cndrvcups-common_1.30-2_i386.deb cndrvcups-capt_1.30-2_i386.deb
  7. Arrêter et redémarrer cups
    $ sudo /etc/init.d/cupsys stop
    $ sudo /etc/init.d/cupsys start
  8. Créer les répertoires que dpkg n’a pas su créer (parce que les deb convertis depuis des rpm par alien ne sont pas parfaits…) [il semblerait que ces répertoires soient quand même créés, vérifier ou se contenter d’overkill]
    $ sudo mkdir /var/ccpd
    $ sudo mkdir /var/captmon
    $ sudo mkfifo /var/ccpd/fifo0
  9. Donner les droits nécessaires à fifo0 (777 est bizarre, mais indiqué par Petar Vasic)
    $ sudo chmod 777 /var/ccpd/fifo0
  10. Enregistrer ppd dans le spooler
    $ sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
  11. Enregistrez l’imprimante dans le fichier de setup du daemon ccpd
    $ sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usblp0
    Attention usblp0 est spécifique à la 6.06. Les versions précédentes utilisaient usb/lp0
  12. Créer (ou remplacer) le script /etc/init.d/ccpd par le script créé par R. Dourseneaud (qui est compatible Debian) :
    $ mv /etc/init.d/ccpd ccpdold
    $ wget http://galeb.etf.bg.ac.yu/~vp030172d/ccpd.txt /etc/init.d/ccpd/ccpd
    $ sudo cmod 755 /etc/init.d/ccpd/ccpd
  13. Démarrer ccpd
    $ sudo /etc/init.d/ccpd start
  14. intégration du daemon d’impression ccpd au demarrage d’ubuntu (expliqué ici)
    $ sudo update-rc.d ccpd defaults 20
    (update-rc.d is the Debian utility to install and remove System-V style init script links)
  15. Autre méthode décrite ici:

      Indiquer à la machine de ne pas oublier de lancer ccpd après chaque reboot.

    • Ouvrir le fichier à modifier
      $ mv /etc/init.d/ccpd ccpdold
      $ sudo nano /etc/init.d/cupsys
    • Remplacer (à la main)
      modprobe ppdev 2>/dev/null || true # for ISO-1284 device name detection
      start-stop-daemon --start --quiet --oknodo --pidfile "$PIDFILE" --exec $DAEMON

      Par le texte
      modprobe ppdev 2>/dev/null || true # for ISO-1284 device name detection
      # Starting ccpd daemon
      /etc/init.d/ccpd start
      start-stop-daemon --start --quiet --oknodo --pidfile "$PIDFILE" --exec $DAEMON

      (Il faut ajouter deux lignes)
    • Fermer nano
      Ctrl + X puis O puis enter

  16. Tester
    $ sudo ccpdadmin
    On devrait obtenir l’affichage suivant:
    ==================================================
    ccpdadmin [-p Printer-name -o Printer-dev-path]
    ccpdadmin [-x Remove-Printer-name]

    CUPS_ConfigPath = /etc/cups/
    LOG Path = None
    UI Port = 39787

    Entry Num : Spooler : Backend : FIFO path : Device Path : Status
    ----------------------------------------------------------------------------
    [0] : LBP1120 : ccp : /var/ccpd/fifo0 : /dev/usblp0 :
    ==================================================

  17. Imprimer quelque chose
  18. Ca devrait marcher (pour moi, ça marche!)