2021-04-03
md
Numérisation avec l'imprimante multifonction Brother DCP-7040 dans Mint 20.1 ou Ubuntu 20.04
<-Installation de Ubuntu 18.04.1 - Imprimante multifonction Brother DCP-7040
<-Installing the DCP-7040 Scanner in Ubuntu 17.10

Décidemment, chaque nouvelle version d'Ubuntu apporte un nouvel obstacle qui rend la numérisation avec l'imprimante Brother DCP-7040 impossible si l'on ne trouve pas un correctif. Je me suis buté à ce problème lors du passage de Ubuntu 14.04 vers 16.04. Et puis la même solution qui fonctionnait dans la version 17.1 n'était plus suffisante quand j'ai passé à Ubuntu 18.04.3. Et voilà qu'il y a un problème additionnel avec Mint 20.1 basé sur la version 20.04 d'Ubuntu.

Table des matières

  1. Imprimante multifonction Brother DCP-7040
  2. Obtenier les pilotes pour le scanneur
  3. Installer les pilotes pour le scanneur
  4. Correctif
    1. Ajout de liens symboliques
    2. Ajout d'une règle udev
    3. Installation d'une bibliothèque
  5. Reférence

Imprimante multifonction Brother DCP-7040 toc

Le système d'impression CUPS est déjà installé.

michel@hp:~$ sudo apt-cache policy cups cups: Installé : 2.3.1-9ubuntu1.1 Candidat : 2.3.1-9ubuntu1.1

Comme auparavant, l'imprimante est prise gérée sans qu'il soit nécessaire d'installer un pilote. Il suffit de brancher l'imprimante à l'ordinateur avec un câble USB et de la mettre en marche.

Avec l'utilitaire Imprimantes, on peut voir que l'imprimante est déjà sélectionnée comme imprimante par défaut. En cliquant deux fois sur son icône, pour éventuellement modifier les propriétés de l'imprimante. On peut aussi imprimer une page de test pour vérifier que tout fonctionne.

Obtenir les pilotes pour le scanneur toc

Si comme moi, vous avez cette imprimante depuis des années, vous avez probablement le pilote du scanneur: brscan3-0.2.13-1.amd64.deb (ou brscan3-0.2.13-1.i386.deb pour les systèmes de 32 bits). Dans ce cas, passez à l'étape suivante, sinon, voici le site Web du fabricant d'où l'on peut obtenir le pilote du scanneur : Téléchargements et pilotes pour dcp7040.

N'oubliez pas de sélectionner Linux (deb) and d'activer le bouton OK

Cliquer sur le bouton Fermer et, à l'écran suivant, choisissez la langue désirée. J'ai choisi l'anglais.

Descendre jusqu'à la rubrique Scanner Drivers et puis cliquer sur Scanner driver 32bit (deb package) ou Scanner driver 64bit (deb package) selon le système.

Il faut à nouveau choisir une langue; j'ai cliqué sur English. Immédiatement, la page suivante avec la licence est affichée.

Il faut cliquer sur Accepter le CLUF et télécharger, mais seulement après un examen minutieux de la licence n'est-ce-pas ?

Enfin, s'affiche des instructions dont j'ai fait fi, comme d'habitude.

Installer les pilotes pour le scanneur toc

Sans doute on peut installer le pilote avec dpkg tel que suggéré ci-dessus. Il faut lancer un terminal et ne pas oublier que l'utilitaire ne fonctionne qu'avec des privilèges d'un administrateur et il faut ajuster le sentier vers le paquet si nécessaire.

michel@hp:~$ sudo dpkg -i --force-all Téléchargements/brscan3-0.2.13-1.amd64.deb

On peut faire autrement avec l'utilitaire GDebi.

J'ai sélectionné Ouvrir avec Installateur de paquets GDebi depuis le menu contextuel obtenu en cliquant avec le bouton droit de la souris sur le paquet.

Cliquer sur le bouton Installer le paquet. Aucune erreur n'est rapportée et sane-find-scanner repère le DCP-7040, mais malheureusement scanimage ne trouve pas le périphérique.

michel@hp:~$ sudo sane-find-scanner # sane-find-scanner will now attempt to detect your scanner. If the found USB scanner (vendor=0x0471 [ ], product=0x060c [BB+ Dongle(e.d)]) at libusb:003:004 found USB scanner (vendor=0x04f9, product=0x01e9) at libusb:003:009 found USB scanner (vendor=0x0a5c [Broadcom Corp], product=0x21f1 [BCM20702A0]) at libusb:003:006 michel@hp:~$ sudo scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).

Évidemment, toute tentative de numérisation avec le Numériseur de documents échoue.


Correctif toc

Les pilotes pour le scanneur n'a pas été mis à jour depuis 2015. Ses fichiers sont répartis dans des répertoires qui ne sont plus pris en charge par l'interface SANE qui gère le matériel de numérisation dans Linux. Auparavant, un nombre croissant de liens symboliques réglaient le problème. Puis il a fallu ajouter une règle udev. Maintenant il faut installer une bibliothèque nécessaire au fonctionnement du pilote de Brother qui n'est plus installé par défaut.

Il faut créer des liens symboliques vers les pilotes dans les répertoires utilisés par SANE depuis la version 17.10 d'Ubuntu.

michel@hp:~$ sudo ln -sfr /usr/lib64/libbr* /usr/lib/x86_64-linux-gnuw michel@hp:~$ sudo ln -sfr /usr/lib64/sane/libsane-brother* /usr/lib/x86_64-linux-gnu/sane

Ajout d'une règle udev toc

Une nouvelle règle pour le gestionnaire de périphériques udev doit être créée. Selon cette règle, un node (/dev/usb/lp0) appartenant au groupe scanner sera crée lorsqu'un périphérique USB avec 04F9 comme attribut idVendor est branché.

michel@hp:~$ sudo nano /etc/udev/rules.d/59-udev-local.rules

# Brother brscan devices ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="*", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes"

Installation d'une bibliothèque toc

Les pilotes de Brother utilisent la bibliothèque libusb-0.1 supplantée depuis au moins une douzaine d'années par l libusb-1.0. Même si l'ancienne bibliothèque n'est plus embarquée dans la plus récente version d'Ubuntu elle demeure disponible dans le référentiel d'où il faut la télécharger.

michel@hp:~$ apt install libusb-0.1-4

Avec ces trois étapes le scanneur peut être utilisé. Notons qu'il faudrait redémarrer le service udevd ce qui peut être fait avec l'utilitaire udevadm, mais je préfère redémarrer le système complètement.

Le fichier de configuration d'imprimantes réseau de Brother /usr/bin/brsaneconfig3 qui ne sert à rien avec le modèle DCP-7040 peut être effacé.

Référence toc

La référence pour ces correctifs est une page intitulée sane_Troubleshooting du Wiki d'aide de la communauté Ubuntu. La section The symlink and udev tricks explique comment les changements de répertoires devant contenir les pilotes tiers est la cause du problème. La section suivante, Known Workarounds / Brother contient les deux premières étapes du correctif. J'ai suivi un des conseils au tout début du Wiki quand ces deux démarches n'étaient plus suffisantes avec la dernière version d'Ubuntu.

michel@hp:~$ SANE_DEBUG_DLL=5 scanimage -L ... 21:19:10.781999] [dll] load: searching backend `brother3' in `/usr/lib/x86_64-linux-gnu/sane:/usr/lib/sane:/usr/lib64/sane' [21:19:10.782009] [dll] load: trying to load `/usr/lib/x86_64-linux- gnu/sane/libsane-brother3.so.1' [21:19:10.782038] [dll] load: dlopen()ing `/usr/lib/x86_64-linux- gnu/sane/libsane-brother3.so.1' [21:19:10.782247] [dll] load: dlopen() failed (libusb-0.1.so.4: cannot open shared object file: No such file or directory)

C'est ainsi que la nécessité d'installer l'ancienne bibliothèque libusb-0.1 est devenu évidente.

<-Installation de Ubuntu 18.04.1 - Imprimante multifonction Brother DCP-7040
<-Installing the DCP-7040 Scanner in Ubuntu 17.10