Notre lycée local vient de faire l’acquisition d’une imprimante de bureau Canon Maxify GX7050. Comme cela arrive, on ne m’a pas trop demandé mon avis, et du moment que le carton d’emballage du périphérique arborait la mention « compatible Linux », tout semblait réglé. C’est vrai que l’imprimante est supportée sous Linux par le constructeur dans la mesure où une poule est capable de voler et un cheval de nager. On arrive à la faire fonctionner correctement, mais la procédure de configuration n’est pas tout à fait triviale.
Configuration réseau
Dans le réseau de l’école, l’imprimante est censée desservir les quatre postes du secrétariat. Je me sers de l’écran de configuration intégré à l’imprimante pour la rattacher au réseau Wi-Fi de l’école, et je lui attribue une adresse IP fixe 192.168.10.247
dans la configuration Dnsmasq de notre proxy local, avec un nom d’hôte correspondant canon-admin
.
L’ergonomie de l’interface de configuration de l’imprimante a visiblement été conçue par les Shadoks, mais on finit par obtenir ce qu’on veut avec une bonne dose d’obstination.
Pare-feu
Je pourrais très bien ouvrir le port 631 en TCP et en UDP pour IPP (Internet Printing Protocol) et ensuite me mettre à la recherche de tous les ports non documentés utilisés par l’application ScanGear fournie par Canon pour le Scanner en utilisant Wireshark. Au lieu de cela, je ne vais pas m’embêter et ajouter l’imprimante à la zone de confiance de FirewallD :
# firewall-cmd --permanent --zone=trusted --add-source=192.168.10.247 # firewall-cmd --reload
Téléchargement
Je me rends sur la page dédiée à notre imprimante sur le site du constructeur. Je clique sur Drivers > View your operating system, et je me retrouve confronté à une mauvaise surprise. Le menu déroulant des systèmes d’exploitation propose des pilotes pour Windows, macOS et ChromeOS. Aucune trace de Linux.
Je déroule alors la section Individual Drivers de la page, et je finis par trouver les paquets relatifs à Linux proposés au format .deb
et .rpm
:
- IJ Printer Driver Ver. 6.20 for Linux
- ScanGear MP Ver. 4.20 for Linux
Je choisis le format rpm Package archive
sur le site, je suis la procédure de téléchargement inutilement compliquée, et je me retrouve avec deux archives compressées :
$ ls -lh total 1,9M -rw-rw-r--. 1 nkovacs nkovacs 1,5M 16 oct. 10:44 cnijfilter2-6.20-1-rpm.tar.gz -rw-rw-r--. 1 nkovacs nkovacs 348K 16 oct. 10:44 scangearmp2-4.20-1-rpm.tar.gz
Je décompresse les deux archives et j’examine sommairement le contenu des répertoires nouvellement créés :
$ tar -xzf cnijfilter2-6.20-1-rpm.tar.gz $ tar -xzf scangearmp2-4.20-1-rpm.tar.gz $ ls -lh total 1,9M drwxrwxr-x. 5 nkovacs nkovacs 4,0K 20 févr. 2021 cnijfilter2-6.20-1-rpm -rw-rw-r--. 1 nkovacs nkovacs 1,5M 16 oct. 10:44 cnijfilter2-6.20-1-rpm.tar.gz drwxrwxr-x. 5 nkovacs nkovacs 4,0K 18 nov. 2020 scangearmp2-4.20-1-rpm -rw-rw-r--. 1 nkovacs nkovacs 348K 16 oct. 10:44 scangearmp2-4.20-1-rpm.tar.gz $ ls cnijfilter2-6.20-1-rpm documents install.sh packages resources $ ls scangearmp2-4.20-1-rpm documents install.sh packages resources
Installer le pilote d’impression
Le répertoire cnijfilter2-6.20-1-rpm
contient certes un script install.sh
, mais nous allons éviter de l’utiliser, pour deux raisons :
- L’installation avec un script shell fait partie des mauvaises pratiques à proscrire.
- De toute façon, le script
install.sh
ne fonctionne pas (j’ai testé pour vous).
# cd cnijfilter2-6.20-1-rpm/packages/ # ls -lh total 1.7M -rw-rw-r--. 1 nkovacs nkovacs 394K Feb 20 2021 cnijfilter2-6.20-1.aarch64.rpm -rw-rw-r--. 1 nkovacs nkovacs 465K Feb 20 2021 cnijfilter2-6.20-1.i386.rpm -rw-rw-r--. 1 nkovacs nkovacs 395K Feb 20 2021 cnijfilter2-6.20-1.mips64el.rpm -rw-rw-r--. 1 nkovacs nkovacs 471K Feb 20 2021 cnijfilter2-6.20-1.x86_64.rpm # rpm -ivh --test cnijfilter2-6.20-1.x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] # rpm -ivh cnijfilter2-6.20-1.x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:cnijfilter2-6.20-1 ################################# [100%]
Configurer l’imprimante
Je vérifie si le serveur d’impression CUPS tourne :
# systemctl is-active cups active
Je lance Firefox et j’ouvre l’interface d’administration de CUPS à l’adresse http://localhost:631
dans la section Administration :
Je clique sur Ajouter une imprimante et je m’identifie en tant que root
en renseignant le mot de passe correspondant :
Dans la section Imprimantes réseau, je sélectionne Internet Printing Protocol et je clique sur Continuer :
J’utilise l’URI socket://canon-admin
pour me connecter à l’imprimante :
Je définis le nom et l’emplacement de l’imprimante :
Je sélectionne la marque Canon et je clique sur Continuer :
Dans la longue liste de pilotes, je sélectionne Canon GX7000 series et je clique sur Ajouter une imprimante :
Pour finir, j’ouvre la page de l’imprimante dans l’interface de CUPS et j’imprime une page de test :
Utiliser le scanner avec ScanGear
Le scanner de l’imprimante ne fonctionne pas avec les applications de numérisation classiques du monde du libre comme Simple Scan ou Skanlite. En revanche, on arrive à le faire fonctionner avec l’application ScanGear fournie par le constructeur. On va donc l’installer :
# cd scangearmp2-4.20-1-rpm/packages/ # ls -lh total 332K -rw-r--r--. 1 nkovacs nkovacs 163K Nov 18 2020 scangearmp2-4.20-1.i386.rpm -rw-r--r--. 1 nkovacs nkovacs 167K Nov 18 2020 scangearmp2-4.20-1.x86_64.rpm # rpm -ivh --test scangearmp2-4.20-1.x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] # rpm -ivh scangearmp2-4.20-1.x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:scangearmp2-4.20-1 ################################# [100%]
Le paquet fournit notamment un binaire /usr/local/bin/scangearmp2
:
# rpm -ql scangearmp2
/etc/udev/rules.d/80-canon_mfp2.rules
/usr/lib64/bjlib/canon_mfp2.conf
/usr/lib64/bjlib/canon_mfp2_net.ini
/usr/lib64/libcncpmslld2.so.3.0.0
/usr/lib64/libcncpnet2.so.1.2.4
/usr/lib64/libcncpnet20.so.1.0.0
/usr/lib64/libcncpnet30.so.1.0.0
/usr/local/bin/scangearmp2
/usr/local/share/locale/de/LC_MESSAGES/scangearmp2.mo
/usr/local/share/locale/fr/LC_MESSAGES/scangearmp2.mo
/usr/local/share/locale/ja/LC_MESSAGES/scangearmp2.mo
/usr/local/share/locale/zh/LC_MESSAGES/scangearmp2.mo
/usr/local/share/scangearmp2/scangearmp2.glade
/usr/share/doc/scangearmp2-4.20
/usr/share/doc/scangearmp2-4.20/LICENSE-scangearmp-4.20EN.txt
/usr/share/doc/scangearmp2-4.20/LICENSE-scangearmp-4.20FR.txt
/usr/share/doc/scangearmp2-4.20/LICENSE-scangearmp-4.20JP.txt
/usr/share/doc/scangearmp2-4.20/LICENSE-scangearmp-4.20SC.txt
On notera l’absence d’une entrée de menu pour l’application. Je la lance donc à la main depuis un terminal :
$ scangearmp2
La fenêtre de sélection des scanners s’affiche :
L’application a probablement été codée par un développeur est-allemand dans les années 1980 :
Une fois que j’ai vérifié qu’elle fonctionne correctement, je lui confectionne une entrée de menu « maison » en éditant un fichier /usr/share/applications/scangearmp2.desktop
comme ceci :
[Desktop Entry] Exec=scangearmp2 Icon=org.gnome.SimpleScan Terminal=false Type=Application StartupNotify=true GenericName=ScanGear Name=Scanner Tool (Canon) Name[de]=Scannersoftware (Canon) Name[fr]=Acquisition d'images (Canon) Categories=Graphics;
Je mets à jour la base de données des entrées de menu :
# update-desktop-database
Et le tour est joué :
PS 12 décembre 2023 : le pilote de l’imprimante souffre d’un bug qui fait que l’impression finit par remplir le disque dur. Voici la solution.
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
3 commentaires
Guillaume · 8 décembre 2023 à 10 h 01 min
Désolé, vraiment pour t’avoir fait galérer autant, dans le monde informaticommercial on incite à acheter, c’est écrit « clé en main, tout fonctionne », mais en réalité ….! Mais du coup fier de toi car tu as réussi l’impossible, et voir je suis même très content que nous soyons à l’origine de cette page ! j’espère qu’elle aidera beaucoup de monde, en tous cas oui on se rend bien compte que c’était une imprimante tout public mais avec mention « ingénieur NASA systèmes embarqués avec dons de traduction novlangue-linux-français »! Bien joué Nico !!!!!
Jonathan · 31 octobre 2024 à 15 h 17 min
Question bête, mais si on t’avait demandé ton avis, tu aurais recommandé quoi comme imprimante ?
Il y a des marques d’imprimantes plus conseillées que d’autre pour les systèmes Linux ?
kikinovak · 31 octobre 2024 à 16 h 48 min
Les imprimantes sont une plaie. Mais d’un simple point de vue des pilotes, je dirais les HP. La configuration avec HPLIP est tellement plus simple.