Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:comment_installer_pilote_canon_en_ligne_de_commande [Le 26/11/2011, 15:20] murex |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>imprimante tutoriel canon}} | ||
- | ---- | ||
- | |||
- | ====== Installer et tester une imprimante Canon LBPxxxx en ligne de commande ====== | ||
- | |||
- | Cette page utilisant uniquement le [[:terminal]] est destinée à ceux qui, après avoir installé les drivers pour leur imprimante **Canon LBPxxxx**, ne veulent ou, ne peuvent pas suivre la **[[:tutoriel:installer_imprimante_preinstalles|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. \\ \\ \\ | ||
- | <note>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 << **[[:impression_sous_ubuntu|Comprendre l'impression sous Ubuntu]]** >>.</note> | ||
- | |||
- | ===== Pré-requis ===== | ||
- | |||
- | * Maîtriser un minimum le [[:terminal]]; | ||
- | * Avoir installé les drivers correspondants à votre imprimante d'après la [[:liste_imprimantes_canon|liste des imprimantes Canon]]; | ||
- | * Avoir allumé votre imprimante; | ||
- | * Avoir redémarré votre ordinateur; | ||
- | * Connaître le nom du fichier ppd(([[http://fr.wikipedia.org/wiki/Printer_Postscript_Description|Printer Postscript Description]])) du pilote : <code>ls /usr/share/cups/model/ | grep CNCUPS</code> | ||
- | * Avoir vérifié l'existence ou créer les dossiers et fichiers : | ||
- | * **/var/ccpd** | ||
- | * **/var/captmon** | ||
- | * **/var/ccpd/fifo0**<code>sudo mkdir /var/ccpd | ||
- | sudo mkdir /var/captmon | ||
- | sudo mkfifo /var/ccpd/fifo0</code> \\ | ||
- | |||
- | * Pour les versions **Ubuntu 64bits** installer le paquet ia32-libs: **[[apt>ia32-libs]]** | ||
- | |||
- | ===== Préalable pour la version 11.10 uniquement ===== | ||
- | La version de [[:CUPS]] livrée avec [[:11.10]] n'utilise plus le module usblp(([[https://bugs.launchpad.net/ubuntu/+source/cups/+bug/842823|launchpad.net]])) pour communiquer avec les imprimantes USB. | ||
- | De ce fait ce module est "blacklisté" pour empêcher son chargement.\\ | ||
- | Actuellement les drivers Canon n’intègrent pas cette évolution. Il faut donc rétablir le chargement du module usblp.\\ \\ | ||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/modprobe.d/blacklist-cups-usblp.conf** et modifier //blacklist usblp// pour avoir ceci : | ||
- | <file># cups talks to the raw USB devices, so we need to blacklist usblp to avoid | ||
- | # grabbing them | ||
- | # blacklist usblp</file> | ||
- | Cette modification permettra au module usblp de créer le répertoire : ///dev/usb/lp0// à l'apparition de l'imprimante sur le bus USB.\\ | ||
- | |||
- | <note tip>Malgré cette modification si l'imprimante est allumée **avant** que le PC ne démarre/redémarre, il peut arriver que le répertoire : ///dev/usb/lp0// ne soit pas automatiquement créé, malgré le chargement correct du module usblp.\\ Dans ce cas même si l'imprimante a été bien installée, elle ne pourra pas imprimer.\\ \\ | ||
- | __Une solution simple consistera alors à débrancher et rebrancher la prise USB de l'imprimante.__\\ | ||
- | Cette action forcera la création du répertoire ///dev/usb/lp0// qui a été "ratée" lors de la séquence de démarrage.\\ \\ | ||
- | Si cette prise USB est difficilement accessible, voici une autre possibilité pour que la création du répertoire ///dev/usb/lp0// ne soit pas "ratée" lors de la séquence de démarrage.\\ | ||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/modules** et modifier le pour y ajouter //usblp// comme ceci : | ||
- | <file># /etc/modules: kernel modules to load at boot time. | ||
- | # | ||
- | # This file contains the names of kernel modules that should be loaded | ||
- | # at boot time, one per line. Lines beginning with "#" are ignored. | ||
- | |||
- | usblp | ||
- | lp | ||
- | rtc | ||
- | </file> | ||
- | </note> | ||
- | |||
- | |||
- | Une fois ces opérations effectuées, il faut redémarrer l'ordinateur en laissant l'imprimante allumée. \\ | ||
- | Normalement le répertoire: ///dev/usb/lp0// a bien été créé. | ||
- | |||
- | |||
- | |||
- | ===== Installation de l'imprimante ===== | ||
- | |||
- | Elle se passe en trois étapes: | ||
- | - Installer la nouvelle imprimante dans [[:CUPS]] en indiquant quel pilote utiliser, | ||
- | - Indiquer au démon ccpd ((démon spécifique à Canon pour la gestion de l'imprimante)) cette imprimante, | ||
- | - Automatiser la reconnaissance de l'imprimante. | ||
- | |||
- | |||
- | ==== Commande d'installation ==== | ||
- | |||
- | La commande suivante permettra d'installer l'imprimante dans [[:CUPS]]: | ||
- | |||
- | <code>sudo /usr/sbin/lpadmin -p [nom de l'imprimante] -m [fichier ppd] -v [uri périphérique] -E</code> | ||
- | où : | ||
- | * -p [nom de l'imprimante]: modèle de l'imprimante; | ||
- | * -m [fichier ppd]: nom du fichier .ppd du pilote (cf [[#pré-requis]] pour connaître 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 : | ||
- | <code>sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E</code> | ||
- | |||
- | <note important>Le nom du fichier .ppd doit être exact. Attention donc à bien en respecter la casse((minuscule/majuscule)) | ||
- | </note> | ||
- | |||
- | ==== Validation de l'installation ==== | ||
- | |||
- | La commande suivante permettra d'installer l'imprimante dans le démon ccpd : | ||
- | |||
- | <code>sudo /usr/sbin/ccpdadmin -p [nom de l'imprimante] -o [device]</code> | ||
- | où : | ||
- | |||
- | * [Nom de l'imprimante] est le nom que vous avez choisi lors de l'[[#commande d'installation|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: <code>sudo /usr/sbin/ccpdadmin -p LBP5000 -o /dev/usb/lp0</code> | ||
- | * **Valeur de [device] pour une connexion en réseau :** | ||
- | * net:[adresse IP] | ||
- | * exemple: <code>sudo /usr/sbin/ccpdadmin -p LBP-1120 -o net:192.168.0.20</code> | ||
- | | ||
- | 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 | ||
- | |||
- | <code>sudo service ccpd start</code> | ||
- | puis vérifiez son bon fonctionnement par: | ||
- | <code>sudo service ccpd status</code> | ||
- | qui devrait vous répondre quelque chose comme: | ||
- | <code>Canon Printer Daemon for CUPS: ccpd: 8956 8954</code> | ||
- | <note tip>Si vous ne voyez qu'un seul nombre à la fin de la ligne, [[:tutoriel:comment_modifier_un_fichier|éditez avec les droits d'administration]] le fichier **/etc/ccpd.conf** et ajoutez ceci (remplacez LBP810 par ce que vous aviez indiqué précédemment) : | ||
- | <file> | ||
- | <Printer LBP810> | ||
- | DevicePath /dev/usb/lp0 | ||
- | </Printer> | ||
- | </file> | ||
- | avant de redémarrer le démon ccpd et vérifier de nouveau son status <code> | ||
- | sudo service ccpd restart | ||
- | sudo service ccpd status</code> | ||
- | </note> | ||
- | |||
- | Paramétrez enfin le système pour que le démon ccpd [[#Automatiser la détection de l'imprimante|se lance en même temps que la machine]].\\ | ||
- | |||
- | ==== 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 démon ccpd ce qui demande deux conditions : | ||
- | - Que le démon ccpd soit lancé ou relancé à chaque mise en service de l'imprimante. | ||
- | - Que le démon ccpd soit lancé après [[:CUPS]], pour qu’il démarre correctement. | ||
- | |||
- | ===Lancer ou relancer ccpd à chaque 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.\\ | ||
- | Afin de régler ce problème il faut [[#Redémarrer le service d'impression|relancer]] le démon ccpd, ce qui peut être automatisé en utilisant [[:udev]]. | ||
- | |||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez ou créez avec les droits d'administration]] le fichier **/etc/udev/rules.d/85-canon-capt.rules** et ajoutez ces lignes: | ||
- | <file> | ||
- | 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" | ||
- | </file> | ||
- | Terminez en enregistrant ce fichier. \\ | ||
- | Il est possible que vous soyez obligé de relancer le service [[:udev]], sur d'anciennes versions d'Ubuntu. | ||
- | <code>sudo service udev restart</code> | ||
- | Avec les versions plus récentes d'Ubuntu, [[:udev]] détecte automatiquement les changements. Il n'est donc plus nécessaire de le relancer. | ||
- | |||
- | <note>Sur d'anciennes versions d'Ubuntu il est possible que vous ayez automatisé le lancement de ccpd avec cette commande. \\ | ||
- | <code>sudo update-rc.d ccpd defaults 90</code>C'est notamment le cas si vous avez utilisé l'[[:installer_canon_lbp|installation automatisée utilisant un script BASH]].\\ | ||
- | Il sera alors nécessaire d'annuler cette action pour ne pas interférer avec la nouvelle règle udev en saisissant: | ||
- | <code>sudo update-rc.d -f ccpd remove</code></note> | ||
- | |||
- | ===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". | ||
- | |||
- | Pour pallier à ce problème particulier, vous devez 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. | ||
- | |||
- | [[:tutoriel:comment_modifier_un_fichier|Créez avec les droits d'administration]] un fichier **/etc/init/ccpd-restart.conf** pour y insérer ceci: | ||
- | <file> | ||
- | # 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 stop | ||
- | sleep 3 | ||
- | /etc/init.d/ccpd start | ||
- | fi | ||
- | end script</file> | ||
- | Terminez en enregistrant ce fichier. Le job [[:Upstart]] est prêt à fonctionner.\\ | ||
- | |||
- | <note important>Si vous utilisez [[:11.10]] **__et__** si vous avez modifié le fichier ///etc/modules// comme indiqué dans: [[#Préalable pour la version 11.10 uniquement]], utilisez ceci pour [[:tutoriel:comment_modifier_un_fichier|Créez avec les droits d'administration]] le fichier **/etc/init/ccpd-restart.conf**\\ | ||
- | <file># ccpd-restart.conf = Relance ccpd si l'imprimante est allumée avant le PC. | ||
- | # Copier dans: /etc/init/ | ||
- | # Pour Ubuntu 11.10 uniquement : | ||
- | # - Retirer usblp blacklist dans: /etc/modpobe.d/blacklist-cups-usblp.conf | ||
- | # - Ajouter usblp dans: /etc/modules | ||
- | |||
- | description "stop puis start ccpd démon car la commande: ccpd restart n'est pas fiable" | ||
- | |||
- | start on (started module-init-tools and started cups) | ||
- | stop on runlevel [016] | ||
- | |||
- | script | ||
- | if [ -e /dev/usb/lp* ]; then | ||
- | /etc/init.d/ccpd stop | ||
- | sleep 3 | ||
- | /etc/init.d/ccpd start | ||
- | fi | ||
- | end script | ||
- | </file> | ||
- | Si vous n'avez pas souhaité modifier le fichier ///etc/modules//, alors créez le fichier **/etc/init/ccpd-restart.conf** comme indiqué précédemment. | ||
- | </note> | ||
- | Avec la règle [[:UDEV]] et le job [[:Upstart]] ainsi créés, il ne sera plus nécessaire de s'occuper du démon ccpd, quel que soit le moment où l'imprimante est allumée/éteinte. \\ L'imprimante devrait désormais être disponible à chaque fois que vous en avez besoin, sans intervention. \\ \\ | ||
- | <note tip>L'utilisation d'[[:Upstart]] est conforme au processus d'évolution d'Ubuntu puisqu'à terme il remplacera [[:script_sysv|système V]] pour gérer la séquence de démarrage. \\ Si toutefois vous préférez utiliser un [[:script_sysv|script système V]] à la place du job [[:Upstart]] proposé, il vous faudra [[:tutoriel:comment_modifier_un_fichier|créer avec les droits d'administration]] un fichier **/etc/init.d/ccpd-restart** pour y insérer ceci: | ||
- | <file> | ||
- | #!/bin/sh | ||
- | ### BEGIN INIT INFO | ||
- | # Provides: Restart ccpd | ||
- | # Required-Start: $local_fs $remote_fs $syslog | ||
- | # Required-Stop: $remote_fs $syslog | ||
- | # Default-Start: 2 3 4 5 | ||
- | # Default-Stop: 0 1 6 | ||
- | # Description: Restart Canon Printer Daemon for CUPS | ||
- | ### END INIT INFO | ||
- | |||
- | if [ -e /dev/usb/lp* ]; then | ||
- | /etc/init.d/ccpd stop | ||
- | sleep 3 | ||
- | /etc/init.d/ccpd start | ||
- | fi | ||
- | exit 0 | ||
- | </file> puis donner des droits d'exécution à ce fichier:<code>sudo chmod a+x /etc/init.d/ccpd-restart </code> et enregistrer ce script dans les différents runlevel: | ||
- | <code>sudo update-rc.d ccpd-restart defaults 90</code> | ||
- | \\ | ||
- | |||
- | __**Nota:**__\\ | ||
- | Si vous utilisez la version Ubuntu [[:10.04]] ou antérieure, vous devez utiliser ce [[:script_sysv|script système V]].\\ | ||
- | Sur ces versions, [[:Upstart]] ne gère pas encore le démarrage de [[:CUPS]]. | ||
- | </note> | ||
- | ===== 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 s'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: | ||
- | <code>sudo ccpdadmin</code>la commande doit vous renvoyer: | ||
- | <code> | ||
- | 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 : | ||
- | </code> où LBP-XXX et /dev/usb/lp0 sont à adapter 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 connaître ces quelques astuces. | ||
- | |||
- | ==== Connaître le statut de l'imprimante ==== | ||
- | |||
- | La commande suivante permet de connaître le statut de l'imprimante. | ||
- | <code>captstatusui -P [nom de l'imprimante]</code> | ||
- | où [nom de l'imprimante] est le nom que vous avez donné lors de l'[[#commande d'installation|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**".\\ | ||
- | <note>Si cela arrive, vous pouvez essayer de [[#redémarrer le service d'impression]].\\ | ||
- | Si cela ne suffit pas, laissez l'imprimante allumée et connectée puis redémarrer l'ordinateur.</note> | ||
- | |||
- | ==== Redémarrer le service d'impression ==== | ||
- | |||
- | Les commandes suivantes permettent de redémarrer le service cups puis le démon ccpd | ||
- | <code>sudo service cups restart | ||
- | sudo service ccpd restart</code> | ||
- | Selon votre version d'Ubuntu, il s'agira de remplacer **cups** par **cupsys**. | ||
- | |||
- | ==== 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 : | ||
- | <code>sudo /usr/sbin/ccpdadmin -x [nom de l'imprimante]</code> | ||
- | où [nom de l'imprimante] est le nom que vous avez donné lors de l'[[#commande d'installation|installation dans cups]].\\ | ||
- | |||
- | Lorsque aucune imprimante n'est installée, la commande : | ||
- | <code>sudo /usr/sbin/ccpdadmin </code> | ||
- | |||
- | donnera un résultat de ce type : | ||
- | <code> | ||
- | 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 | ||
- | ------------------------------------------------------ | ||
- | </code> | ||
- | |||
- | ===== Sources ===== | ||
- | |||
- | * Documentation fournie avec le driver d'installation | ||
- | * la page man de lpadmin | ||
- | * (en) [[https://help.ubuntu.com/community/HardwareSupportComponentsPrinters/CanonPrinters/Canon_LBP_2900|Canon LBP 2900]] sur Ubuntu.com | ||
- | * (en)[[https://help.ubuntu.com/community/CanonCaptDrv190|Installation Capt 1.9 sur Ubuntu.com]] | ||
- | * (en) [[http://v0xel.wordpress.com/2006/05/23/canoon-lbp-1120-on-ubuntu-510-how-to|Canon lbp-1120 How to]] sur v0xel.wordpress.com | ||
- | * (en) [[http://ubuntuforums.org/showthread.php?t=1315665|Fil de discussion]] sur ubuntuforums.org | ||
- | |||
- | ---- | ||
- | //Contributeurs:// [[:utilisateurs:fabux]], [[:utilisateurs:murex]] |