Ceci est une ancienne révision du document !



Installer le pilote d'imprimantes Canon CAPT.

Consulter la liste des imprimantes Canon pour savoir si votre imprimante est supportée par ce pilote propriétaire1) fourni par Canon.

Le pilote Canon CAPT se présente sous la forme d'un fichier unique de type archive au format tar.gz.
Cette archive d'environ 64 Mo nommée : Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz est à télécharger ici.

Extraction de l'archive

Méthode graphique

Les fichiers téléchargés sous Ubuntu se trouvent par défaut dans le dossier Téléchargements du compte utilisateur en cours.
Accédez à ce dossier en utilisant votre gestionnaire de fichiers habituel pour y extraire l'archive2) Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz, libérant ainsi un dossier :
« Linux_CAPT_PrinterDriver_V260_uk_EN ».

Méthode en ligne de commande

Pour résumer les étapes précédentes et leur exécution en ligne de commande dans un terminal :

  • Se positionner dans le dossier Téléchargements de votre compte utilisateur :
    cd ~/Téléchargements
  • Décompresser l'archive :
    tar xvzf Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz
  • Aller au dossier Linux_CAPT_PrinterDriver_V260_uk_EN :
    cd ./Linux_CAPT_PrinterDriver_V260_uk_EN
Pensez à l'auto-complétion : Saisissez le début du mot Linux puis appuyez sur la touche de tabulation.

Le dossier Linux_CAPT_PrinterDriver_V260_uk_EN inclut les sous-dossiers :

Si vous ne savez pas si vous utilisez la version 32bits ou 64bits d'Ubuntu vous pouvez consulter le paragraphe : Mon Ubuntu est-il en 32 bits ou en 64 bits ?

Le pilote Canon CAPT nécessite l'installation du paquet : libglade2-0
Pour l'installer, vous pouvez aussi taper dans un terminal :

sudo apt-get install libglade2-0
Vérifier que l'imprimante est allumée et connectée à l'ordinateur.

Installation du pilote pour 32 bits

Depuis le dossier Linux_CAPT_PrinterDriver_V260_uk_EN, naviguez jusqu'au chemin 32-bit_Driver.

Dans ce dernier, se trouve un dossier Debian qui contient les deux pilotes mis sous forme de paquet :

  • cndrvcups-common_2.60-1_i386.deb
  • cndrvcups-capt_2.60-1_i386.deb

Méthode graphique

Pour installer les pilotes, depuis votre gestionnaire de fichiers, il suffira généralement de faire un double-clic sur le paquet cndrvcups-common_2.60-1_i386.deb et de suivre les instructions de votre gestionnaire de paquets.

Vous ferez ensuite un double-clic sur le paquet cndrvcups-capt_2.60-1_i386.deb afin de finaliser l'installation du pilote.

Méthode en ligne de commande

  1. Depuis le dossier où l'archive a été décompressée, il faut aller dans le dossier ./Linux_CAPT_PrinterDriver_V260_uk_EN/32-bit_Driver/Debian.
    Si vous êtes déjà dans le bon dossier, passez au point 2, sinon entrez la commande suivante dans un terminal :
    cd ./Linux_CAPT_PrinterDriver_V260_uk_EN/32-bit_Driver/Debian
  2. Une fois dans le dossier Debian, installez les deux paquets :
    sudo dpkg -i cndrvcups-common_2.60-1_i386.deb cndrvcups-capt_2.60-1_i386.deb


Installation du pilote pour 64 bits

Depuis le dossier Linux_CAPT_PrinterDriver_V260_uk_EN, naviguez jusqu'au chemin 64-bit_Driver.

Dans ce dernier, se trouve un dossier Debian qui contient les deux pilotes mis sous forme de paquet :

  • cndrvcups-common_2.60-1_amd64.deb
  • cndrvcups-capt_2.60-1_amd64.deb

Méthode graphique

Pour installer les pilotes, depuis votre gestionnaire de fichiers, il suffira généralement de faire un double-clic sur le paquet cndrvcups-common_2.60-1_amd64.deb et de suivre les instructions de votre gestionnaire de paquets.

Vous ferez ensuite un double-clic sur le paquet cndrvcups-capt_2.60-1_amd64.deb afin de finaliser l'installation du pilote.

Méthode en ligne de commande

  1. Depuis le dossier où l'archive a été décompressée, il faut aller dans le dossier ./Linux_CAPT_PrinterDriver_V260_uk_EN/64-bit_Driver/Debian.
    Si vous êtes déjà dans le bon dossier, passez au point 2, sinon entrez la commande suivante dans un terminal :
    cd ./Linux_CAPT_PrinterDriver_V260_uk_EN/64-bit_Driver/Debian
  2. Une fois dans le dossier Debian, installez les deux paquets :
    sudo dpkg -i cndrvcups-common_2.60-1_amd64.deb cndrvcups-capt_2.60-1_amd64.deb


Pour les versions Ubuntu 64 bits : 12.04 LTS et suivantes

Le pilote CAPT nécessite aussi l'installation des paquets 32bits suivants : libatk1.0-0:i386,libcairo2:i386,libgtk2.0-0:i386,libpango1.0-0:i386,libstdc++6:i386,libxml2:i386,libpopt0:i386

Pour les installer, vous pouvez aussi taper dans un terminal :

sudo apt-get install libatk1.0-0:i386 libcairo2:i386 libgtk2.0-0:i386 libpango1.0-0:i386 libstdc++6:i386 libxml2:i386 libpopt0:i386

Accepter l'installation des dépendances complémentaires proposées.

Il faut maintenant installer l'imprimante pour qu’elle puisse fonctionner.
Cette partie utilise le terminal.
N'oubliez pas que la documentation, fournie dans l'archive d'installation du pilote, peut vous donner des informations complémentaires à 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.

Pré-requis

Connaître le nom du fichier ppd5) du pilote, correspondant à votre imprimante.
Tapez cette commande dans un terminal pour obtenir la liste des fichiers ppd disponibles :

ls /usr/share/cups/model/ | grep CNCUPS

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.
Vous trouverez également ici la liste des fichiers PPD pour votre imprimante.

Relancer CUPS

Pour que l'installation du pilote CAPT soit prise en compte par CUPS, entrer les commandes suivantes dans un terminal :

sudo service cups stop
sudo service cups start


Pour les versions Ubuntu 32 bits et 64 bits

Elle se passe en trois étapes :

  1. Installer la nouvelle imprimante dans CUPS en indiquant quel pilote utiliser,
  2. Indiquer au démon ccpd6) cette imprimante,
  3. Démarrer le démon ccpd.

Installation de l'imprimante dans CUPS

Taper la commande suivante dans un terminal :

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 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 : 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://localhost:59787 -E
Le nom du fichier .ppd doit être exact. Attention donc à bien en respecter la casse7).

Si cette méthode ne fonctionne pas, vous pouvez toujours utiliser l'ancienne procédure qui consistait à :

  1. Vérifier l'existence ou créer les dossiers et fichiers /var/ccpd, /var/captmon et /var/ccpd/fifo0 :
    sudo mkdir /var/ccpd
    sudo mkdir /var/captmon
    sudo mkfifo /var/ccpd/fifo0
    sudo chown -R lp:lp /var/ccpd/
  2. Installer l'imprimante dans CUPS avec la commande suivante :
    (exemple pour une LBP5000)
    sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E


Enregistrer l'imprimante dans le démon ccpd

Taper la commande suivante dans un terminal :

sudo /usr/sbin/ccpdadmin -p [nom de l'imprimante] -o [device]

où :

  • [Nom de l'imprimante] : nom que vous avez choisi lors de l'installation dans cups
  • [device] : emplacement du fichier du périphérique : Vérifier dans le répertoire /dev/usb le nom exact (lp0; lp1; lp2 …)
L'imprimante doit être allumée et connectée car le fichier /dev/usb/lpxx est créé automatiquement à chaque connexion de l'imprimante.
  • Valeur de [device] pour une connexion en usb sur /dev/usb/lp0 :
    • [device] sera remplacé par : /dev/usb/lp0
    • Exemple pour une LBP5000 :
      sudo /usr/sbin/ccpdadmin -p LBP5000 -o /dev/usb/lp0


      Exemple de retour de cette commande pour une LBP5000 :

       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!! 
  • Valeur de [device] pour une connexion en réseau :
    • net : [adresse IP]
    • Exemple pour une LBP5000 :
      sudo /usr/sbin/ccpdadmin -p LBP-5000 -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émarrer le démon ccpd

Tapez la commande suivante :

sudo service ccpd start


Vérifications de l'installation

1) Taper dans un terminal la commande suivante pour vérifier le fonctionnement du démon ccpd :

sudo service ccpd status

vous devriez avoir en retour quelque chose du type :

/usr/sbin/ccpd: 4115 4114
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 LBP5000 et /dev/usb/lp0 par ce que vous avez indiqué précédemment) :
<Printer LBP5000>
DevicePath /dev/usb/lp0
</Printer>

Redémarrer le démon ccpd et vérifier de nouveau son statut :

sudo service ccpd restart
sudo service ccpd status

2) Tapez dans un terminal la commande suivante pour vérifier l'enregistrement dans le démon ccpd :

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         = 59787
 Entry Num  :Spooler   :Backend  :   FIFO path       : Device Path  : Status
 -------------------------------------------------------------------
   [0]    :LBP-XXX     : ccp    : //localhost:59787 : /dev/usb/lp0  :

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.

3) Taper dans un terminal la commande suivante pour vérifiez l'état 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 ouvrir la fenêtre du Canon Statusmonitor8) avec le message "Ready to print (ou sleeping)".

Si toutefois la commande retourne le message "capstatusui Socket Error", vous pouvez essayer de redémarrer le démon ccpd et le service d'impression avec les commandes suivantes :
sudo service ccpd stop
sudo service cups restart
sudo service ccpd start

Si cela ne suffit pas, laissez l'imprimante allumée et connectée puis redémarrez l'ordinateur. Penser ensuite à lancer le démon ccpd.

Si ces vérifications sont positives, l'imprimante devrait-être opérationnelle.
Essayer d'imprimer un document à partir de l'application de votre choix. Si les impressions sortent correctement vous pouvez passer à l'étape suivante.

Tant que vous n'aurez pas réalisé la partie Automatiser la détection de l'imprimante, il faudra lancer le démon ccpd manuellement à chaque redémarrage de l'ordinateur.
sudo service ccpd start

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 :

  1. Que le démon ccpd soit lancé ou relancé à chaque mise en service de l'imprimante.
  2. 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.

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*", 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"

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 vous venez de créer.
Ouvrez avec les droits d'administration le fichier : /lib/udev/rules.d/70-printers.rules et commentez9) toutes les lignes :
(Exemple pour le fichier de 12.04)

# 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"
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…


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.

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 stop
		sleep 5
		/etc/init.d/ccpd start
    fi
end script

Terminez en enregistrant ce fichier. Le job Upstart est prêt à fonctionner.

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: murex, fabux, Antoine P


1)
Le code source des pilotes propriétaires n'est pas librement accessible et modifiable par les développeurs d'Ubuntu
2)
sous nautilus il s'agira d'un clic droit sur l'archive et de choisir « Extraire ici »
3)
il y a également les paquets au format RPM 32-bits
4)
il y a également les paquets au format RPM 64-bits
6)
démon spécifique à Canon pour la gestion de l'imprimante
7)
minuscule/majuscule
8)
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
9)
ajoutez un dièse (#) au début
  • imprimante_canon_capt2.1409138437.txt.gz
  • Dernière modification: Le 27/08/2014, 13:20
  • par murex