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 18/07/2011, 09:11] fabux script upstart pour automatisation |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>imprimante tutoriel canon}} | ||
- | ---- | ||
- | |||
- | ====== 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 **[[: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 ===== | ||
- | |||
- | * Maitriser un minimum le [[:terminal]]. | ||
- | * Avoir installé les drivers correspondant à votre imprimante d'après la [[:liste_imprimantes_canon|liste des imprimantes Canon]] ; | ||
- | * Avoir allumé votre imprimante ; | ||
- | * Avoir redémarré votre ordinateur | ||
- | * Connaitre 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> | ||
- | |||
- | ===== Installation 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 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 : | ||
- | <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écedemment) : | ||
- | <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 se lance en même temps que la machine :\\ | ||
- | FIXME Version? Dans un [[:terminal]] saisissez: | ||
- | <code>sudo update-rc.d ccpd defaults 90</code> | ||
- | 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]]**. | ||
- | |||
- | ===== 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: | ||
- | <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 à 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. | ||
- | <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 celà 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**. | ||
- | |||
- | ==== 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 : | ||
- | - Que le daemon ccpd soit lancé ou relancé à chaque mise en service de l'imprimante. | ||
- | - 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]]. | ||
- | |||
- | [[: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> | ||
- | Relancez le service [[:udev]] | ||
- | <code>sudo service udev restart</code>ou FIXME pour les versions plus récentes d'Ubuntu | ||
- | <code>sudo udevadm control --reload-rules</code> | ||
- | L'imprimante devrait désormais être disponible à chaque fois que vous en avez besoin, sans intervention. | ||
- | |||
- | <note>Si, tel qu'indiqué à la section [[#Validation de l'installation]], vous aviez automatisé le lancement de ccpd avec la commande | ||
- | <code>sudo update-rc.d ccpd defaults 90</code>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: | ||
- | <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". | ||
- | |||
- | 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. | ||
- | |||
- | [[: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 restart | ||
- | fi | ||
- | end script | ||
- | </file> | ||
- | 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 : | ||
- | <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]], murex |