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.
Prérequis
- 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 et le service cups ;
- Avoir allumé votre imprimante ;
- Connaitre le nom du fichier ppd1) du pilote :
ls /usr/share/cups/model/ | grep CNCUPS
- Avoir vérifié l'existence des fichiers
/var/ccpd
,/var/captmon
et/var/ccpd/fifo0
ou les créer
sudo mkdir /var/ccpd sudo mkdir /var/captmon sudo mkfifo /var/ccpd/fifo0 sudo chmod 777 /var/ccpd/fifo0

Attention donc à la valeur donnée au chmod qui est à confirmer.
Installation de l'imprimante
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;
- -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
Dans la doc Canon il est indiqué
ccp://localhost:59687
- -E : active l'imprimante déterminée et autorise les demandes d'impression sur ce périphérique.
exemple pour une LBP-1120 :
sudo /usr/sbin/lpadmin -p LBP-1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
En utilisant le nom d'imprimante LBP-1120, la procédure décrite ici fonctionne très bien, ce qui ne semble pas être le cas avec LBP1120.
: Il semblerait que le nom de l'imprimante soit arbitraire: on pourrait mettre pour l'option -p "
mon-imprimante
", seul le nom du fichier .ppd3) doit être exact.
Validation de l'installation
La commande suivante permettra d'installer l'imprimante dans le dæmon ccpd 4) :
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 6.06 LTS [device] sera remplacé par «
/dev/usblp0
» - sous Ubuntu 8.04 LTS et ultérieur [device] sera remplacé par «
/dev/usb/lp0
» («
/dev/usblp0
» devrait également fonctionner car il pointe de fait vers «/dev/usb/lp0
») - exemple:
sudo /usr/sbin/ccpdadmin -p LBP-1120 -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/ccpd restart sudo /etc/init.d/cups restart
méthode amenée à être remplacée par "service restart"
Paramètrez enfin le système pour que le dæmon ccpd 5) se lance en même temps que la machine :
sudo update-rc.d ccpd defaults 20
Vérification de l'installation
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.
Astuces
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 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 6) et le service cups
sudo killall captfilter sudo /etc/init.d/ccpd restart && sudo /etc/init.d/cupsys restart
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 7)peut être automatisée en utilisant udev.
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 un fichier "99-usb-lp0.rules" 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 detection (branchement, allumage) lancera la commande /etc/lp0-on # Les paramètres de l'imprimante ont été détectés par : # udevadm info -a -p $(udevadm info -q path -n /dev/usb/lp0) #
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 8) et le service cups comme décrit plus avant.
N'oubliez pas de rendre le fichier "lp0-on" executable
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 ----------------------------------------------------------------------------
Sources
- Documentation fournie avec le driver d'installation
- la page man de lpadmin
- Pour Ubuntu 9.04 et 9.10 : https://help.ubuntu.com/community/CanonCaptDrv190
Contributeurs: fabux