Scanner USB en réseau avec Raspberry Pi sous Arch Linux ARM

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 travaille au branchement de fils électriques.

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.