Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

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 allumé votre imprimante ;
  • Avoir redémarré votre ordinateur
  • Connaitre le nom du fichier ppd1) 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 casse2)

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 .

Démarrez ensuite le dæmon ccpd

sudo service ccpd start

puis vérifiez son bon fonctionnement par

sudo service ccpd status

qui devrait vous répondre quelque chose comme

Canon Printer Daemon for CUPS: ccpd: 8956 8954
Si vous ne voyez qu'un seul nombre à la fin de la ligne, éditez avec les droits d'administration le fichier /etc/ccpd.conf et ajoutez ceci (remplacez LBP810 par ce que vous aviez indiqué précedemment) :
<Printer  LBP810>
DevicePath  /dev/usb/lp0
</Printer>

avant de redémarrer le dæmon ccpd et vérifier de nouveau son status

sudo service ccpd restart
sudo service ccpd status

Paramétrez enfin le système pour que le dæmon ccpd se lance en même temps que la machine :
FIXME Version? Dans un terminal saisissez:

sudo update-rc.d ccpd defaults 90

Selon votre version d'Ubuntu cette commande ne donnera pas le résultat escompté, reportez-vous dans ce cas à la section 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

Les commandes suivantes permettent de redémarrer le service cups puis le dæmon ccpd

sudo service cups restart
sudo service ccpd restart

Selon votre version d'Ubuntu, il s'agira de remplacer cups par cupsys.

Automatiser la détection de l'imprimante

Une fois correctement installée, pour que l'imprimante fonctionne d'une façon transparente pour l'utilisateur, il faut automatiser la gestion du daemon ccpd ce qui demande deux conditions :

  1. Que le daemon ccpd soit lancé ou relancé à chaque mise en service de l'imprimante.
  2. Que le daemon ccpd soit lancé après CUPS, pourqu'il démarre correctement.

Lancer ou relancer ccpd à chque mise en service 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.

Ouvrez ou créez avec les droits d'administration le fichier /etc/udev/rules.d/85-canon-capt.rules et ajoutez ces lignes:

KERNEL=="lp*", SUBSYSTEM=="usb", ACTION=="add", SYSFS{idVendor}=="04a9", 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

ou FIXME pour les versions plus récentes d'Ubuntu

sudo udevadm control --reload-rules

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

Si, tel qu'indiqué à la section Validation de l'installation, vous aviez automatisé le lancement de ccpd avec la commande
sudo update-rc.d ccpd defaults 90

il est nécessaire d'annuler cette action pour ne pas interférer avec la nouvelle régle udev.

FIXME Versions ? Dans un terminal saisissez:

sudo update-rc.d -f ccpd remove

Lancer ccpd après CUPS

Dans l'ordre de la séquence de démarrage d'Ubuntu, UDEV est lancé avant CUPS.
Donc, si l'imprimante est allumée et branchée avant le démarrage du PC, la régle UDEV que nous venons de créer va détecter l'imprimante et lancera ccpd avant CUPS.
Dans ce cas, le démarrage incorrect de ccpd va le faire planter à la première demande d'impression sans qu'aucun message d'erreur n'apparaisse.
De plus ccpd va prendre 100% du CPU et il ne peut être stoppé qu'avec une commande "kill -9".

Actuellement, une des possibilités pour pallier à ce problème particulier, est de générer un job Upstart en plus de la règle UDEV créée précédemment.
Dans la séquence de démarrage, il détectera la présence ou non de l'imprimante sur le bus USB. et redémarrera ccpd si nécessaire pour garantir son lancement correct.

Créez avec les droits d'administration un fichier /etc/init/ccpd-restart.conf pour y insérer ceci:

# ccpd-restart - Relance ccpd si l'imprimante est allumée avant le PC.
# 
description    "restart daemon ccpd for Canon printer LBP-serie"

start on started cups
stop on runlevel [016]

script
    if [ -e /dev/usb/lp* ]; then
        /etc/init.d/ccpd restart
    fi
end script

Enregistrez ce fichier.

Avec la règle UDEV et le job Upstart ainsi créés, il ne sera plus nécessaire de s'occuper du daemon ccpd, quel que soit le moment où l'imprimante est allumée/éteinte.
Elle sera toujours opérationnelle pour imprimer.

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 
 ------------------------------------------------------

Contributeurs: fabux, murex


2)
minuscule/majuscule
  • tutoriel/comment_installer_pilote_canon_en_ligne_de_commande.1310973069.txt.gz
  • Dernière modification: Le 15/12/2011, 15:21
  • (modification externe)