De même que pour une imprimante USB, il est facile de mettre en réseau un (vieux) scanner USB. L’avantage est de pouvoir scanner des documents depuis n’importe quelle machine connectée au réseau local, qu’elle tourne sous Windows, sous une distribution basée sur Linux ou même sous Android (pour récupérer un scan depuis un smartphone ou une tablette, par exemple), sans se préoccuper des cables à brancher, déplacer et rebrancher…

Une opératrice ignorant la possibilité de mettre en réseau un scanner USB sue sang et eau pour le connecter à la bonne machine.
Source : Bibliothèque du Congrès des États-Unis – Working with the electric wiring at Douglas Aircraft Company, Long Beach, Calif. (LOC).
Pour mémoire et à toutes fins utiles, voici comment j’ai procédé dans la configuration suivante :
- Scanner : EPSON, modèle Perfection 2580 Photo (il s’agit d’un scanner USB à plat),
- Raspberry Pi modèle B rev. 2 connecté au réseau local en Ethernet et animé par Arch Linux ARM.
Le principe est le suivant :
- Le scanner est connecté à la carte Raspberry Pi et piloté par sane.
- La carte Raspberry Pi joue le rôle de serveur.
- Les autres postes du réseau se connectent à la carte et pilotent le scanner au moyen d’un client sane.
Côté serveur : installation du scanner sur la carte Raspberry Pi
Installation de base du scanner
On branche le cable USB du scanner sur l’un des ports USB de la carte Raspberry Pi. Pour vérifier sa prise en charge :
# lsusb
Mon scanner est un Epson Perfection 2580 Photo.
Installation de sane et de xinetd :
# pacman -S sane xinetd
Téléchargement du binaire du pilote propriétaire fourni par le fabricant. Dans mon cas, il se trouve ici : Epson Drivers and Download. Il faut récupérer le paquet .rpm :
iscan-plugin-gt-f500-1.0.0-1.c2.i386.rpm
et l’ouvrir avec un gestionnaire d’archives, naviguer dans l’arborescence vers /usr/share/iscan/ dont on extrait esfw41.bin – c’est le binaire qui nous intéresse.
Créer le répertoire :
/usr/share/sane/snapscan/
et y placer le binaire.
Ouvrir le fichier de configuration /etc/sane.d/snapscan.conf et indiquer après firmware le chemin vers le binaire.
firmware /usr/share/sane/snapscan/
Configuration de xinetd et activation du partage en réseau
Créer le fichier :
/etc/xinetd.d/sane
et y ajouter les lignes suivantes :
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = nobody
group = scanner
server = /usr/bin/saned
disable = no
}
Ajouter l’utilisateur nobody au groupe scanner :
# usermod -a -G scanner nobody
Ajouter la ligne suivante à /etc/services
sane-port 6566/tcp
Il faut activer le module réseau de sane pour que le scanner puisse être utilisé par les machines connectées au réseau local. Pour cela, on indique les plages d’adresses IP autorisées à utiliser le scanner en réseau dans /etc/sane.d/saned.conf .
Pour finir, démarrer le démon xinetd :
# systemctl start xinetd
Pour qu’il se lance automatiquement à chaque redémarrage de la carte Raspberry Pi :
# systemctl enable xinetd
Configuration des clients
Pour qu’une machine puisse accéder au scanner via le réseau, il faut qu’elle dispose d’un client sane.
Pour les machines tournant sous Linux : xsane
Installer xsane ne pose pas de problème particulier.
Dans /etc/sane.d/net.conf, indiquer l’adresse IP de la machine à laquelle le scanner est connecté.
Pour les machines tournant sous Windows : SaneTwain
J’utilise pour ma part SaneTwain.
Pour les machines tournant sous Android : SaneDroid
Gratuit et disponible sur le Google Play Store, SaneDroid permet de lancer un scan depuis un terminal mobile comme un smartphone ou une tablette.
Sources :
ArchWiki : Sane
https://wiki.archlinux.org/index.php/sane
Documentation Ubuntu francophone : Scanner Epson – Cas particuliers avec Snapscan
http://doc.ubuntu-fr.org/scanner_epson#methode_3cas_particuliers_avec_snapscan
Documentation Ubuntu francophone : Utiliser un scanner en réseau
http://doc.ubuntu-fr.org/tutoriel/utiliser_un_scanner_en_reseau