Ceci est une ancienne révision du document !



Installer et tester une imprimante Canon en ligne de commande

Cette page utilisant uniquement la console est destinée à ceux qui, après avoir installé les drivers pour leur imprimante Canon, ne veulent ou, ne peuvent pas suivre la méthode d'installation d'une imprimante à partir de pilotes pré-installés qui est une technique en mode graphique.
N'oubliez pas que la documentation fournie dans l'archive d'installation de votre pilote vous donnera toutefois plus d'informations que cette page.

Si vous n'êtes pas familier avec le vocabulaire utilisé ou si vous désirez avoir une vision d'ensemble de l'impression sous Ubuntu, consultez la page « Comprendre l'impression sous Ubuntu ».
  • Maitriser un minimum le terminal.
  • Avoir installé les drivers correspondant à votre imprimante d'après la liste des imprimantes Canon ;
  • Avoir redémarré votre ordinateur ou à minima le daemon ccpd 1) et le service cups ; FIXME faut-il avoir vraiment redémarré ccpd? → si oui à remettre dans doc en cours canon_capt
  • Avoir allumé votre imprimante ;
  • Connaitre le nom du fichier ppd2) du pilote :
    ls /usr/share/cups/model/ | grep CNCUPS
  • Avoir vérifié l'existence ou créer les dossiers et fichiers :
    • /var/ccpd
    • /var/captmon
    • /var/ccpd/fifo0
      sudo mkdir /var/ccpd
      sudo mkdir /var/captmon
      sudo mkfifo /var/ccpd/fifo0

Commande d'installation

La commande suivante permettra d'installer l'imprimante dans cups:

sudo /usr/sbin/lpadmin -p [nom de l'imprimante] -m [fichier ppd] -v [uri périphérique] -E

où :

  • -p [nom de l'imprimante]: modèle de l'imprimante;
  • -m [fichier ppd]: nom du fichier .ppd du pilote (cf prérequis pour connaitre son nom) ;
  • -v [uri périphérique]: définit l'attribut device-uri de la file d'attente de l'imprimante.

Ici on mettra ccp:/var/ccpd/fifo0

  • -E : active l'imprimante déterminée et autorise les demandes d'impression sur ce périphérique.

exemple pour une LBP5000 :

sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
Le nom du fichier .ppd doit être exact. Attention donc à bien en respecter la casse3)

FIXME Est-ce utile à ce stade d'indiqué que l'imprimante est visible ? si oui renvoyer vers doc préinstallés qui parle des autres versions.

Validation de l'installation

La commande suivante permettra d'installer l'imprimante dans le dæmon ccpd :

sudo /usr/sbin/ccpdadmin -p [nom de l'imprimante] -o [device]

où :

  • [Nom de l'imprimante] est le nom que vous avez choisi lors de l'installation dans cups
  • [device] est l'emplacement du fichier du périphérique :
    • Valeur de [device] pour une connexion en usb :
      • sous Ubuntu 8.04 LTS et ultérieur [device] sera remplacé par /dev/usb/lp0
      • exemple:
        sudo /usr/sbin/ccpdadmin -p LBP5000 -o /dev/usb/lp0
    • Valeur de [device] pour une connexion en réseau :
      • net:[adresse IP]
      • exemple:
        sudo /usr/sbin/ccpdadmin -p LBP-1120 -o net:192.168.0.20

Il peut-être nécessaire d'ajouter une ligne Allow From [adresse IP] dans les sections <Location /> et <Location /admin> du fichier /etc/cups/cupsd.conf .

Redémarrez ensuite le dæmon ccpd et le service cups

sudo /etc/init.d/cupsys restart
sudo /etc/init.d/ccpd restart

FIXME

  • invoke-rc.d ou service ou initctl (selon version) à tester à la place de cette écriture non conventionnelle (cf mes pages sur les services)
  • voir depuis quand ce n'est plus cupsys mais cups
  • voir si cette ordre est ok

Paramétrez enfin le système pour que le dæmon ccpd se lance en même temps que la machine :

sudo update-rc.d ccpd defaults 20

FIXME voir depuis quelle version ça ne marche plus. En attendant de compléter/remplacer cette ligne voir Automatiser la détection de l'imprimante

Si vous avez suivi toutes les étapes mais que votre imprimante ne veut rien imprimer depuis vos logiciels habituels, il peut-être utile de vérifier que l'installation c'est correctement déroulée.
Vérifiez que votre imprimante a bien été allumée et correctement connectée avant de démarrer l'ordinateur.

Dans un terminal saisissez

sudo ccpdadmin

la commande doit vous renvoyer:

Usage:
  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]    :LBP-XXX     :ccp    :/var/ccpd/fifo0 :/dev/usb/lp0  :

où LBP-XXX et /dev/usb/lp0 sont à adpater selon la manière dont vous avez installé votre imprimante dans le dæmon ccpd.
S'il y a une erreur, elle apparaîtra en fin de ligne.

Le fonctionnement du pilote Canon pour Linux n'étant pas parfait, il peut-être nécessaire de connaitre ces quelques astuces.

Connaitre le statut de l'imprimante

La commande suivante permet de connaitre le statut de l'imprimante.

captstatusui -P [nom de l'imprimante]

où [nom de l'imprimante] est le nom que vous avez donné lors de l'installation dans cups.
La commande doit vous ouvrir une fenêtre avec un message Ready to print.
Si toutefois l'imprimante n'avait pas été allumée et/ou connectée avant le démarrage de l'ordinateur, la commande retournera le message "capstatusui Socket Error".

Si cela arrive, vous pouvez essayer de redémarrer le service d'impression.
Si celà ne suffit pas, laissez l'imprimante allumée et connectée puis redémarrer l'ordinateur.

Redémarrer le service d'impression

La commande suivante permet de tuer le processus captfilter puis de redémarrer le dæmon ccpd et le service cups

sudo killall captfilter
sudo /etc/init.d/ccpd restart
sudo /etc/init.d/cupsys restart

FIXME

  • invoke-rc.d ou service ou initctl (selon version) à tester à la place de cette écriture non conventionnelle (cf mes pages sur les services)
  • voir depuis quand ce n'est plus cupsys mais cups
  • voir si cette ordre est ok

Automatiser la détection de l'imprimante

Il peut-arriver que votre imprimante ne soit pas ou plus détectée si vous l'éteignez après usage.
La relance du dæmon ccpd peut être automatisée en utilisant udev.

Méthode 1

Créez le fichier 85-Canon_ccpd_start_stop.rules en tant qu'administrateur dans le répertoire /etc/udev/rules.d (le nom "85-Canon_ccpd_start_stop.rules " est un exemple, mais le fichier doit impérativement être terminé par ".rules") et ajoutez ces lignes:

KERNEL=="lp*", SUBSYSTEM=="usb", ACTION=="add", RUN+="/etc/init.d/ccpd start"
KERNEL=="lp*", SUBSYSTEM=="usb", ACTION=="remove", RUN+="/etc/init.d/ccpd stop"

Relancez le service udev

sudo service udev restart

L'imprimante devrait désormais être disponible à chaque fois que vous en avez besoin, sans intervention.

Méthode 2

Cette méthode est quasi identique à la précédente mais passe par un script.
Imprimante allumée, détectez ses paramètres par la commande :

sudo udevadm info -a -p $(udevadm info -q path -n /dev/usb/lp0)

ce qui doit vous fournir les infos suivantes (à adapter selon votre cas) :

KERNEL=="lp0"
SUBSYSTEM=="usb"
DRIVER==""
ATTR{dev}=="180:0"

Créez le fichier 99-usb-lp0.rules en tant qu'administrateur dans le répertoire /etc/udev/rules.d (le nom "99-usb-lp0.rules" est un exemple, mais le fichier doit impérativement être terminé par ".rules") et reprendre ces paramètres sous la forme suivante (à adapter selon le résultat précédent):

BUS=="usb", KERNEL=="lp0", ATTR{dev}=="180:0", RUN+="/etc/lp0-on"

Chaque détection (branchement, allumage) lancera la commande /etc/lp0-on .
Créez un fichier "lp0-on" dans le répertoire /etc contenant

#!/bin/sh
#
# script lancé par udev s'executant à détection de l'imprimante CANON
# pour éviter le message d'avertissement (dans syslog)
# si le protocole "bonjour" remplace le protocole natif AVAHI
$AVAHI_COMPAT_NOWARN=1
killall captfilter
/etc/init.d/ccpd restart
env AVAHI_COMPAT_NOWARN=1 /etc/init.d/cupsys restart

ce script relancera le dæmon ccpd et le service cups comme décrit plus avant.
N'oubliez pas de rendre le fichier "lp0-on" exécutable

sudo chmod 0755 /etc/lp0-on

Relancez enfin le service udev

sudo /etc/init.d/udev restart

L'imprimante devrait désormais être disponible à chaque fois que vous en avez besoin, sans intervention.

Retirer une imprimante

En cas d'erreur de manipulation, il peut être utile d'avoir à retirer une imprimante installée de manière erronée.
Dans un terminal, on saisira :

sudo /usr/sbin/ccpdadmin -x [nom de l'imprimante]

où [nom de l'imprimante] est le nom que vous avez donné lors de l'installation dans cups.

Lorsque aucune imprimante n'est installée, la commande :

sudo /usr/sbin/ccpdadmin 

donnera un résultat de ce type :

Usage: 
  ccpdadmin [-p Printer-name -o Printer-dev-path]
  ccpdadmin [-x Remove-Printer-name]
 CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787
Entry Num  :Spooler  :Backend  :FIFO path  :Device Path  :Status 
 ------------------------------------------------------

1)
Canon Printer Daemon for CUPS
3)
minuscule/majuscule
  • utilisateurs/fabux/brouillons/installation_canon_console.1302634048.txt.gz
  • Dernière modification: Le 18/04/2011, 14:42
  • (modification externe)