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:installer_pilote_canon_lbp [Le 20/06/2014, 15:41] murex Retrait remarque obsolète |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>matériel imprimante 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 suivi le tutoriel d'**[[:installer_canon_lbp|installation du pilote dédié à leur imprimante Canon]] série Lasershot** ((nommée LBP-xxxx, où xxxx est le numéro d'identification de votre imprimante)), 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 des informations complémentaires à 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 [[:installer_canon_lbp|installé le pilote]] correspondant à 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, correspondant à votre imprimante : <code>ls /usr/share/cups/model/ | grep CNCUPS</code> Pour la plupart des modèles, vous trouverez 2 fichiers correspondants à votre imprimante: //CNCUPSxxxxCAPTK.ppd// et //CNCUPSxxxxCAPTJ.ppd//.\\ La documentation Canon recommande le //CNCUPSxxxxCAPTK.ppd//.\\ Si après avoir suivi ce tutoriel votre imprimante ne fonctionne pas, essayez avec le fichier //CNCUPSxxxxCAPTJ.ppd//. | ||
- | |||
- | ===== Pour les versions Ubuntu 64 bits : 14.04 LTS et 13.10 ==== | ||
- | Pour son fonctionnement, le driver Canon CAPT nécessite la gestion des bibliothèques 32bits pour les systèmes 64bits. \\ | ||
- | Actuellement, ce driver utilise le paquet //ia32-libs// pour cette gestion. Ce paquet a notamment pour rôle d'installer l'ensemble des bibliothèques 32 bits pour les systèmes 64bits. | ||
- | |||
- | Depuis [[:12.04]], Ubuntu utilise une autre technique qui ne repose plus sur //ia32-libs// et les bibliothèques s'installent différemment. \\ | ||
- | Comme mentionné au [[#Pour la versions Ubuntu 64 bits : 12.04 LTS|paragraphe 3]], avec [[:12.04]] il est encore possible d'installer l'ancien //ia32-libs// car les dépendances sont encore assurées. | ||
- | |||
- | Avec [[:13.10]] et [[:14.04]] certaines dépendances et/ou bibliothèques installées par //ia32-libs// sont supprimées (lib32asound2 ...) et d'autres ont changé de version, ce qui rend pratiquement impossible l'installation de cet ancien paquet //ia32-libs// avec 14.04 et 13.10 en 64bits. | ||
- | |||
- | Pour cette raison, il ne semble pas possible de faire fonctionner les imprimantes utilisant le driver CAPT sous 14.04 et 13.10 en 64bits. \\ | ||
- | En attendant que Canon sorte une nouvelle version du driver qui prendra en charge cette évolution de Debian/Ubuntu (?), le plus simple peut consister à utiliser 12.04 LTS ou une version plus récente d'Ubuntu **en 32 bits**. | ||
- | |||
- | FIXME | ||
- | |||
- | ===== Pour la versions Ubuntu 64 bits : 12.04 LTS ==== | ||
- | Avec les versions 64bits, il faut installer le paquet //ia32-libs//. Il fournit les bibliothèques 32bits pour les systèmes 64bits. Elles sont indispensables au fonctionnement du pilote Canon. \\ | ||
- | Depuis [[:12.04]], la gestion des bibliothèques 32bits pour les systèmes 64bits a changé dans Ubuntu. Le paquet //ia32-libs//, fourni dans les dépôts correspondants, n'est plus compatible avec le pilote Canon.\\ Il faut donc __installer manuellement une version antérieure du paquet //ia32-libs//__.\\ Cette opération peut paraître complexe, aussi lisez et suivez attentivement les opérations qui vont suivre. \\ | ||
- | |||
- | - **[[:tutoriel:comment_installer_un_paquet|installez]] au préalable les dépendances** liées au paquet //ia32-libs// : **[[apt>lib32asound2,lib32ffi6,lib32bz2-1.0,lib32gcc1,lib32stdc++6,lib32z1,lib32ncurses5,lib32ncursesw5,libc6-i386]]** \\ \\ | ||
- | - Téléchargez puis **[[:tutoriel:comment_installer_un_paquet|installez]] une version antérieure du paquet //ia32.libs//**: **[[http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu//pool/universe/i/ia32-libs/ia32-libs_20090808ubuntu26_amd64.deb|ia32-libs]]** \\ \\ Ces deux étapes peuvent être résumées dans un [[:terminal]] en saisissant par exemple les commandes suivantes :<code>sudo apt-get update</code> <code>sudo apt-get install lib32asound2 lib32ffi6 lib32bz2-1.0 lib32gcc1 lib32stdc++6 lib32z1 lib32ncurses5 lib32ncursesw5 libc6-i386</code> <code>wget http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu//pool/universe/i/ia32-libs/ia32-libs_20090808ubuntu26_amd64.deb</code> <code>sudo dpkg -i ia32-libs_20090808ubuntu26_amd64.deb</code> \\ | ||
- | - Maintenant que ce paquet est installé, il faut **[[:apt-get#bloquer_la_mise_a_jour_d_un_paquet|bloquer cette version]]** pour qu'elle ne soit pas automatiquement remplacée lors de la prochaine mise à jour de votre système. Si vous avez installé le [[:synaptic|Gestionnaire de paquets Synaptic]], utilisez-le pour bloquer la version du paquet //ia32-libs// que vous venez d'installer. \\ \\ Sinon, vous pouvez taper la commande suivante dans un terminal : <code>echo "ia32-libs hold" | sudo dpkg --set-selections</code> Pour vérifier que le paquet n'a plus le statut //install// mais //hold// : <code>dpkg --get-selections | grep ia32-libs</code> doit vous retourner : <file>ia32-libs hold</file> | ||
- | |||
- | <note>Si vous utilisez la méthode ci-dessus (ligne de commande), à l’ouverture du [[:gestionnaire_de_mises_a_jour|Gestionnaire de mises à jour]], le paquet //ia32-libs// apparaîtra dans la liste des mises à jour, mais comme il est bloqué (hold) vous ne pourrez pas le sélectionner.</note> | ||
- | |||
- | ===== Installation de l'imprimante, toutes versions 32 et 64bits===== | ||
- | |||
- | 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. | ||
- | |||
- | |||
- | ==== Installation de l'imprimante dans CUPS ==== | ||
- | |||
- | Taper la commande suivante dans un terminal : | ||
- | |||
- | <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://localhost:59787 -E%%''\\ | ||
- | * -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://localhost:59787 -E</code> | ||
- | |||
- | <note important>Le nom du fichier .ppd doit être exact. Attention donc à bien en respecter la casse((minuscule/majuscule)) | ||
- | </note> | ||
- | |||
- | Si cette méthode ne fonctionne pas, vous pouvez toujours utiliser l'ancienne procédure qui consistait à :\\ | ||
- | - Vérifier l'existence ou créer les dossiers et fichiers **/var/ccpd**, **/var/captmon** et **/var/ccpd/fifo0** : <code>sudo mkdir /var/ccpd | ||
- | sudo mkdir /var/captmon | ||
- | sudo mkfifo /var/ccpd/fifo0 | ||
- | sudo chown -R lp:lp /var/ccpd/</code> | ||
- | - Installer l'imprimante dans CUPS avec la commande suivante :\\ (exemple pour une LBP5000) <code>sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E</code> | ||
- | |||
- | |||
- | ==== Enregistrer l'imprimante dans le démon ccpd ==== | ||
- | |||
- | Taper la commande suivante dans un terminal : | ||
- | |||
- | <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 : Vérifier dans le répertoire ///dev/usb// le nom exact (lp0; lp1; lp2 ...) | ||
- | * **Valeur de [device] pour une connexion en usb sur /dev/usb/lp0 :** | ||
- | * [device] sera remplacé par : // /dev/usb/lp0 // | ||
- | * Exemple pour une LBP5000 : <code>sudo /usr/sbin/ccpdadmin -p LBP5000 -o /dev/usb/lp0</code>\\ Exemple de retour de cette commande pour une LBP5000 : <file> 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 | ||
- | ---------------------------------------------------------------------------- | ||
- | [0] : LBP5000 : ccp : //localhost:59787 : /dev/usb/lp0 : New!! </file> | ||
- | * **Valeur de [device] pour une connexion en réseau :** | ||
- | * net:[adresse IP] | ||
- | * Exemple pour une LBP5000 : <code>sudo /usr/sbin/ccpdadmin -p LBP-5000 -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 : | ||
- | <code>sudo service ccpd status</code> | ||
- | |||
- | vous devriez avoir en retour quelque chose du type : | ||
- | <file>Canon Printer Daemon for CUPS: ccpd: 8956 8954</file> | ||
- | |||
- | |||
- | <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 LBP5000 par ce que vous aviez indiqué précédemment) : | ||
- | <file> | ||
- | <Printer LBP5000> | ||
- | DevicePath /dev/usb/lp0 | ||
- | </Printer> | ||
- | |||
- | </file> | ||
- | Redémarrer le démon ccpd et vérifier de nouveau son statut | ||
- | <code> | ||
- | sudo service ccpd restart | ||
- | sudo service ccpd status</code> | ||
- | </note> | ||
- | |||
- | A ce stade, l'imprimante devrait-être opérationnelle et vous pouvez paramétrez le système pour que le démon ccpd [[#Automatiser la détection de l'imprimante|se lance correctement en fonction de l'allumage de l'imprimante]].\\ | ||
- | |||
- | |||
- | ==== 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. \\ | ||
- | Ceci demande deux conditions : | ||
- | - Que le démon ccpd soit lancé ou relancé à chaque mise en service de l'imprimante. | ||
- | - Que le service [[:CUPS]] soit actif lors du démarrage du démon ccpd. | ||
- | |||
- | ===Lancer ou relancer ccpd à chaque mise en service de l'imprimante :=== | ||
- | |||
- | Ceci 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*", SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="04a9", RUN+="/etc/init.d/ccpd start" | ||
- | KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/etc/init.d/ccpd stop" | ||
- | </file> | ||
- | Terminez en enregistrant ce fichier.\\ | ||
- | [[:UDEV]] détectera automatiquement cette nouvelle règle, il n'est donc pas nécessaire de le relancer. | ||
- | |||
- | |||
- | \\ La détection automatique des imprimantes, définie dans le fichier système : ///lib/udev/rules.d/70-printers.rules//, contrarie la règle udev que [[#Lancer ou relancer ccpd à chaque mise en service de l'imprimante|vous venez de créer]]. \\ [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier : ///lib/udev/rules.d/70-printers.rules// et commentez ((ajoutez un dièse (#) au début)) toutes les lignes :\\ (Exemple pour le fichier de [[:12.04]]) | ||
- | <file># Low-level USB device add trigger | ||
- | #ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p" | ||
- | # usblp device add trigger (needed when usblp is already loaded) | ||
- | #ACTION=="add", KERNEL=="lp*", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p" | ||
- | |||
- | # Low-level USB device remove trigger | ||
- | #ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"</file> | ||
- | |||
- | <note important>Attention, le fichier //70-printers.rules// est un fichier système susceptible d'être modifié lors de prochaines mises à jour. Pensez à vérifier l'état de ce fichier si votre imprimante cesse de fonctionner...</note>\\ | ||
- | |||
- | |||
- | === CUPS actif lors du démarrage du démon ccpd :=== | ||
- | |||
- | Si le démon ccpd est lancé avant CUPS, il plantera à la première demande d’impression sans qu’aucun message d’erreur n’apparaisse. Il va alors prendre 100 % du CPU et ne pourra être stoppé que par la commande “kill -9”. | ||
- | |||
- | Cette situation peut se produire si l’imprimante est allumée et branchée : | ||
- | * __avant que le PC ne soit démarré :__ La séquence de démarrage d'Ubuntu, lance [[:UDEV]] avant [[:CUPS]]. Donc, la règle UDEV que nous venons de créer va détecter l’imprimante et lancera ccpd avant CUPS. | ||
- | * __lors d’une mise à jour de [[:CUPS]] :__ Ce service est stoppé puis, relancé alors que ccpd reste actif. | ||
- | |||
- | Pour pallier à ces problèmes particuliers vous devez générer un job [[:Upstart]], en plus de la règle UDEV créée précédemment. | ||
- | Il redémarrera ccpd pour garantir son fonctionnement correct si l’imprimante est détectée sur le bus USB.\\ \\ | ||
- | |||
- | [[: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 5 | ||
- | /etc/init.d/ccpd start | ||
- | fi | ||
- | end script</file> | ||
- | |||
- | Terminez en enregistrant ce fichier. Le job [[:Upstart]] est prêt à fonctionner.\\ | ||
- | |||
- | |||
- | ===== 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 : | ||
- | <file> | ||
- | 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 : //localhost:59787 : /dev/usb/lp0 : | ||
- | </file> | ||
- | 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'[[#Installation de l'imprimante dans CUPS|installation dans cups]].\\ | ||
- | La commande doit vous ouvrir la fenêtre du //Canon Statusmonitor// ((Le //Canon Statusmonitor// donne accès à certaines fonctionnalités avancées de l'imprimante telles que : nombres pages imprimées, niveaux toners, calibrage, nettoyage ou encore mise en veille)) avec un message "**Ready to print**".\\ | ||
- | Si toutefois la commande retourne le message "**capstatusui Socket Error**", 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émarrez l'ordinateur. | ||
- | |||
- | ==== 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> | ||
- | |||
- | ==== 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 : | ||
- | <file> | ||
- | 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 | ||
- | ------------------------------------------------------ | ||
- | </file> | ||
- | |||
- | ===== Sources ===== | ||
- | |||
- | * Documentation Canon fournie avec le pilote d'installation | ||
- | * la page man de lpadmin | ||
- | * (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]] |