Histoire d'un combat contre l'obsolescence
Posté le 11. Mai 2025 • 5 minutes • 890 mots • Autres langues: English
J’utilise des systèmes d’exploitations 🐧 Linux et c’est un régal au quotidien. C’est toujours fluide, performant, moderne et ça me permet aussi de conserver mon matériel beaucoup plus longtemps. Cependant, j’ai pour la première fois été confronté à l’obsolescence logicielle d’un scanner sous Ubuntu.
J’ai fait le choix il y a une bonne dizaine d’année, d’abandonner les monstrueuses imprimante-scanner qui pour moi sont le reflet parfait de l’obsolescence programmée et du déchet électronique. Jeter une imprimante-scanner lorsque seule l’une des deux fonctions est HS était pour moi un non-sens. À l’instar de mon couple machine à café et moulin à café séparé, j’ai donc décidé d’acheter une toute petite imprimante laser noir et blanc et un scanner mobile Brother DS-620.
Ce scanner fonctionne parfaitement, il est rapide, fiable, se range facilement, bref, c’est un excellent outil. Malheureusement, c’est un matériel 100% propriétaire Brother, bien que le constructeur avait tout de même fait l’effort de fournir un pilote pour Linux. C’est pour cela que je l’avais acheté. Le pilote date de 2015 et je vous le remets ici, si jamais il disparaissait un jour du site de Brother.
Pour scanner sous environnement Linux, l’OS utilise généralement SANE(Scanner Access Now Easy) qui est une API pour standardiser l’accès aux matériels de numérisation. La librairie associée la plus répandue à ma connaissance est libsane. Le site est dans son jus de l’époque, 1996 !
Cette librairie va permettre de séparer l’interface utilisateur (frontend) de l’intérface matérielle (backend). On pourra donc utiliser n’importe quel logiciel de numérisation. Ma préférence étant le logiciel intégré à Gnome : Simple Scan .
Comme je le disais, Brother est un des rares constructeurs qui fait l’effort de fournir des pilotes propriétaires pour Linux. Le petit package .deb
, fourni par le constructeur en 2013 permet à SANE de communiquer correctement avec le scanner. Le paquet va installer les pilotes propriétaires, afin que libsane puisse communiquer avec le backend correctement. Cela passe également par l’ajout des règles udev
pour ces 4 types de scanner : DS-620, DS-720D, DS820W et DS-920DW
Malheureusement, depuis Ubuntu 22.04 déjà, j’avais un problème de dépendance pour utiliser mon scanner ☹️
Mon scanner n’était plus détecté et voici l’erreur que j’avais lors de l’installation du package .deb
Brother :
Note : sélection de « libsane-dsseries » au lieu de « ./libsane-dsseries_1.0.5-1_amd64.deb »
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation :
Les paquets suivants contiennent des dépendances non satisfaites :
libsane-dsseries : Dépend: libsane (>= 1.0.17) mais il n'est pas installable
Il semble que le paquet libsane
soit désormais remplacé par libsane-common
au sein de la distribution Ubuntu. La dépendance est donc rompue.
Vous avez à présent au moins deux options pour faire fonctionner votre scanner, c’est ce que je vais développer ici.
Installer le paquet en mode forcé
sudo dpkg -i --force-all Téléchargements/libsane-dsseries_1.0.5-1_amd64.deb
En installant le paquet de cette manière, le scanner est de nouveau détecté et fonctionnel. Le désavantage de cette méthode est que cela casse vos dépendances et par conséquence votre système de mise à jour vous alertera. Bref, ce n’est pas pérenne.
Créer un fake package
Je ne suis pas le seul dans le monde à avoir rencontré ce souci, j’ai lu sur de nombreux forums des gens qui cherchaient une solution, mais je n’en ai vu aucune de pleinement fonctionnelle. Les solution à base de lien symbolique libscan > libscan-common
ou autres tweak via udev ne sont jamais fonctionnels ou durables.
J’ai passé un peu de temps pour trouver cette solution qui est selon moi la meilleure : la création d’un faux package pour satisfaire la dépendance du pilote Brother.
Installez d’abord equivs
qui est l’outil qui permet de builder un package.
sudo apt update
sudo apt install equivs
Placez-vous dans un dossier qui va vous servir de creuset pour la construction de votre paquet :
mkdir -p ~/fake-libsane && cd ~/fake-libsane
Générez le squelette de votre paquet avec :
equivs-control libsane
Modifiez ensuite le fichier libsane
qui a été généré. C’est complètement libre surtout que c’est un fake package dans notre cas. Ce qui compte, c’est surtout le numéro de la version de libsane qui doit bien correspondre à la dépendance que nous ciblons. Mon fichier ressemble donc à :
Section: misc
Priority: optional
Standards-Version: 3.9.2
Package: libsane
Provides: libsane
Version: 1.0.17
Maintainer: r4ven
Architecture: all
Description: Fake libsane package to satisfy my Brother DS-620 driver dependencies. This fake package exists to satisfy the dependency required by Brother's proprietary scanner driver on Ubuntu + 20.04
Toujours depuis le même dossier, il ne vous reste plus qu’à builder :
equivs-build libsane
Le build va générer le package : libsane_1.0.17_all.deb
Installez-le avec :
sudo dpk -i libsane_1.0.17_all.deb
Rebranchez votre scanner et vérifiez qu’il est bien détecté en lançant votre logiciel de scan ou via la commande scanimage -L
Vous pouvez même, si vous le souhaitez, verrouiller les mises à jour de paquet
libscan
via la commande sudo apt-mark hold libsane
Bravo ! Votre scanner est donc toujours utilisable, vous n’avez plus besoin de le remplacer, la planète vous remercie et votre portefeuille aussi.
💡 Vous pouvez utiliser cette méthode avec d’autres scanner plus anciens 💡