Raven - Blog
11. Mai 2025

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 💡

Follow me

Subscribe to my RSS feed !