Ceci est une ancienne révision du document !



BROUILLON Comment 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.

Pour les versions Ubuntu 64 bits

Sur les systèmes 64bits, le pilote Canon CAPT utilise le paquet ia32-libs pour la gestion des bibliothèques 32bits qui sont nécessaires à son fonctionnement. Ce paquet a notamment pour rôle d'installer l'ensemble des bibliothèques 32bits pour les systèmes 64bits.

Depuis 12.04, Ubuntu utilise une autre technique2) qui ne repose plus sur le paquet ia32-libs, et les bibliothèques s'installent différemment. De plus, 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.
Ceci rend pratiquement impossible l'installation d'un paquet ia32-libs avec 13.10 et 104.04 (en 64bits).
Cela reste encore possible avec 12.04 64bits, moyennant quelques opérations préalables.

Pour cette raison, il ne semble pas possible de faire fonctionner les imprimantes utilisant le pilote CAPT sous 14.04 et 13.10 (en 64bits).

En attendant que Canon publie une nouvelle version du driver qui prendrait en charge cette évolution de Debian/Ubuntu, le plus simple peut consister à utiliser une version d'Ubuntu en 32bits
ou 12.04 en 64bits
.

FIXME

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'archive3) 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 :

  • 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 ?
  • Doc : Contient les informations légales relatives à l'utilisation et à l'installation du pilote.

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 (12.04)

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

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 ppd6) 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.

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 la version Ubuntu 64 bits : 12.04 LTS

Depuis 12.04, la gestion des bibliothèques 32bits pour les systèmes 64bits a changé dans Ubuntu. Le paquet ia32-libs, encore fourni dans les dépôts correspondants, n'est plus compatible avec le pilote Canon.
Cependant il est encore possible avec 12.04, d'installer manuellement une version antérieure du paquet ia32-libs qui sera compatible avec le pilote CAPT.
Cette opération peut paraître complexe, aussi lisez et suivez attentivement les opérations qui vont suivre.

  1. Téléchargez puis installez une version antérieure du paquet ia32.libs: ia32-libs

    Ces deux étapes peuvent être résumées dans un terminal en saisissant les commandes suivantes :
    sudo apt-get update
    sudo apt-get install lib32asound2 lib32ffi6 lib32bz2-1.0 lib32gcc1 lib32stdc++6 lib32z1 lib32ncurses5 lib32ncursesw5 libc6-i386
    wget http://fr.archive.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu26.1_amd64.deb
    sudo dpkg -i ia32-libs_2.7ubuntu26.1_amd64.deb


  2. Maintenant que ce paquet est installé, il faut 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 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 :
    echo "ia32-libs hold" | sudo dpkg --set-selections

    Pour vérifier que le paquet n'a plus le statut install mais hold :

    dpkg --get-selections | grep ia32-libs

    doit vous retourner :

    ia32-libs   	hold
Si vous utilisez la méthode ci-dessus (ligne de commande), à l’ouverture du 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.

Pour les versions d'Ubuntu 32 bits et 12.04 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 ccpd7) 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 casse8)

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] est le nom que vous avez choisi lors de l'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 …)
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 :

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 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         = 39787
 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 Statusmonitor9) avec le message "Ready to print".

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.

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 commentez10) 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)
multiarch
3)
sous nautilus il s'agira d'un clic droit sur l'archive et de choisir « Extraire ici »
4)
il y a également les paquets au format RPM 32-bits
5)
il y a également les paquets au format RPM 64-bits
7)
démon spécifique à Canon pour la gestion de l'imprimante
8)
minuscule/majuscule
9)
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
10)
ajoutez un dièse (#) au début
  • utilisateurs/murex/brouillons/correctif_02.1404910442.txt.gz
  • Dernière modification: Le 09/07/2014, 14:54
  • par murex