Numériser en réseau

Grâce au projet « Sane », il est tout à fait possible de partager un scanner entre un serveur et plusieurs clients, aussi bien sous Windows que sur Linux.
Avant d’aller plus loin, je vous recommande d’aller consulter sur le site du projet « Sane » pour savoir si votre scanner est supporté et quels sont les paramètres particuliers qu’il vous faudrait appliquer :

Moteur de Recherche Projet Sane
Liste complète des scanner supportés

Si votre scanner est supporté, vous pouvez continuez, sinon vous pouvez passer au tutoriel suivant.

IMPORTANT : la procédure suivante traîte de l’installation et le partage d’un scanner en USB

  1. Installation de Sane sur le serveur

Avant de pouvoir configurer votre scanner et le partager, il va falloir installer le programme Sane sur votre serveur, vous vous en doutez, la commande est la suivante :

apt-get install sane

Installer Sane sur le serveur demandera d’installer de nombreux autres paquets dont il dépend, validez et attendez patiemment que le programme s’installe (suivant la rapidité de votre serveur et de votre connexion Internet, cela peut durer un certain temps).

Installer également le paquet « libsane-extras », ce n’est pas indispensable, mais ça peut vous simplifier la tâche. Vous pouvez installer « sane » et « libsane-extras » par la même commande en saisissant la commande :

apt-get install sane libsane-extras

 

  1. Installer le scanner sur le serveur
  • Détection du scanner

La première étape est de s’assurer que Sane détecte votre scanner pour cela :

sane-find-scanner

Si Sane voit votre scanner, cela devrait vous donner un résultat similaire à celui-ci :

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.
  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.
found USB scanner (vendor=0x04a5 [Color], product=0x2060 [ FlatbedScanner 13]) at libusb:005:004
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.
  # Not checking for parallel port scanners.
  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

On peut voir que Sane à trouver un scanner USB dont le code fabricant est le 0x04a5et dont le code produit est le 0x2060 . Les autres informations ne nous serviront pas.

Maintenant que Sane a détecté votre scanner, continuez avec la commande suivante pour obtenir le backend du scanner :

scanimage –L

Ce qui devrait vous retourner un équivalent à ceci :

device `snapscan:libusb:005:004' is a Acer FlatbedScanner13 flatbed scanner

Donc nous savons maintenant que le scanner utilise le backend « snapscan »

  • Modification des fichiers de configuration
  • Afin de s’assurer que Sane fonctionnera correctement, nous devons éditer les fichiers de configuration de Sane :
  • Editez le fichier /etc/sane.d/dll.conf et vérifier que la ligne comportant le nom du backend de votre scanner n’est pas commenté (caractère # en début de ligne). Si c’est le cas, dé-commentez la ligne et sauvegarder les modifications
  • Editez maintenant le fichier de configurationcorrespondant à votrebackend : poursnapscan =>
     nano /etc/sane.d/snapscan.conf
    

    pour Epson :

    nano /etc/sane.d/epson.conf
    

    etc..

  • Vérifier que le fichier comporte une ligne correspondant à :

usb ID_Fabricant ID_Produit

Dans notre exemple ce serait :

usb 0x04a5 0x2060

Si cette ligne n’y figure pas, ajoutez là puis sauvegarder.

  • Il est maintenant temps de redémarrer le service saned est de vérifier si votre scanner fonctionne :
service saned restart

Si vous obtenez la réponse « saned disabled; edit /etc/default/saned » effectuez la modification suivante :

dpkg-reconfigure sane-utils

Et validez saned en tant que serveur

  • Executez la commande
    scanimage
    

A ce stade, il y’a au moins deux cas de figure :

  • Si votre scanner commence à travailler et que vous obtenez une série de caractère incompréhensible, c’est que votre scanner fonctionne, faites Ctrl+C et passez à l’étape 4.
  • Si vous obtenez une réponse similaire à ça, c’est que votre scanner à besoin d’un firmware pour fonctionner
[snapscan] download_firmware: No firmware entry found in config file snapscan.conf
  1. Installation d’un firmware

Il vous faut dans un premier temps récupérer le firmware pour votre scanner et l’installer dans un répertoire sur le serveur – par habitude, je place le firmware dans le répertoire « /usr/share/sane/snapscan », bien entendu, vous pouvez le placer ou vous voulez et adaptez en fonction de votre backend

  • Une des méthodes consiste à récupérer les driver Windows de votre scanner et de récupérer le fichier .bin correspondant dans les fichiers d’installations – probablement compressés dans un fichier .cab que l’on peut ouvrir avec (entres autres) le logiciel WinRAR. Une fois le firmware décompresser, transférer le sur le serveur à l’aide du logiciel WinSCP (logiciel similaire à Putty, mais permettant avant tout de transférer des fichiers à l’aide d’une interface graphique. Le transfert est basé sur le protocole SSH.

WinSCP peut être téléchargé ici : Page de téléchargement de WinSCP

  • Autre solutions, si vous trouvez le firmware sur Internet,  est d’utiliser la commande wget pour télécharger directement le firmware sur le serveur.

Exécuter les commandes suivantes (à adapter à votre cas) :

cd /usr/share/sane
mkdir snapscan
cd snapscan
wget URL_du_firmware

 

Quelles que soit la méthode utilisée, il faudra rendre le firmware exécutable avant d’aller plus loin

chmod 775 nom_de_votre_firmware.bin
  • Editez maintenant le fichier /etc/sane.d/backend.conf et modifiez la ligne « firmware » en rajoutant ou modifiant le chemin et le nom de votre firmware :
Firmware /usr/share/sane/snapscan/u96v121.BIN

Et redémarrer le service sane :

service saned restart

Refaites un essai avec scanimage ; votre scanner devrait normalement démarrer.

 

  1. Mise en réseau du scanner

Maintenant que votre scanner fonctionne sur votre serveur, on va faire en sorte que les clients puissent s’y connecter.

  • Editer le fichier /etc/sane.d/saned.conf et ajouter les adresses IP des postes autorisés à s’y connecter.

Note : Si vous voulez que tout les postes de votre réseau s’y connecte, vous pouvez spécifier une plage de réseau, mais attention, saned ne supportent que la notation de plage avec le masque de réseau exprimé en bits, du style yyy.yyy.yyy.0/24 et non pas yyy.yyy.yyy.0/255.255.255.0

Sauvegardez les modifications.

  • Installer le paquet « xinetd »
apt-get install xinetd
  • Une fois installé, créez le fichier /etc/xinetd.d/sane-port et insérez-y les lignes suivantes :
service sane-port
{
        id              = saned-stream
        socket_type     = stream
        server          = /usr/sbin/saned
        protocol        = tcp
        user            = saned
        group           = saned
        wait            = no
}

Sauvegardez les modifications.

  • Créez maintenant le fichier /etc/udev/rules.d/40-scanner-permissions.rules et insérez-y les lignes suivantes :
# usb scanner
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE:="0666", GROUP:="saned", OWNER:="saned"
SUBSYSTEM=="usb_device",MODE:="0666"

Sauvegardez les modifications et redémarrez xinetd

service xinetd restart
  1. Installation du scanner sur les postes Clients
  • Clients Linux :

Il suffit d’installer le paquet « xsane »

apt-get install xsane

Et de modifier le fichier /etc/sane.d/net.conf pour y ajouter l’adresse IP de votre serveur.

Votre client devrait pouvoir se connecter au serveur.

  • Clients Windows :
  • Méthode 1 « Sanetwain »

Sanetwain est un client Sane pour windows, il fonctionne parfaitement, à un détail prés :
Si votre scanner est connecté en USB, son port changera d’un allumage à l’autre, hors sanetwain n’est pas capable d’assurer le suivi automatiquement. De ce fait, si certains des utilisateurs sont réfractaires au fait de modifier certains paramètres pour pouvoir se servir du scanner, je vous conseillerai donc d’appliquer la méthode n°2.

Téléchargez  SaneTwain 1.29 et décompresser l’archive.
Copiez le fichier « SaneTwain.ds » dans le répertoire C:\WINDOWS\twain_32
Exécutez maintenant ScanImage.exe
SaneTwain vous demandera l’adresse du serveur lors de son premier démarrage, remplissez là et conserver coché la case « Get list of devices on Startup »

sanetwaincfg

Validez et vous verrez apparaitre la fenêtre principale de SaneTwain.

  • Méthode 2 « XSane-Win32 » (Recommandé)

Pour commencer, téléchargez Xsane Win32 et décompressez l’archive.
Copiez le répertoire Sane à la racine de votre disque dur.
Editez le fichier c:\ sane\etc\sane.d\net.conf avec le Bloc-notes Windows et modifiez l’adresse IP du serveur situé à la fin du fichier par l’adresse de votre serveur.

Note : Le caractère de retour à la ligne étant différent entre windows et Linux, ne faites pas d’autres modifications dans le fichier, vous risqueriez de rencontrer des dysfonctionnements

Vous pouvez maintenant exécuter le programme c:\sane\bin\xsane.exe

Gawindx
Gawindx

Gawindx

Passionné de l'outil informatique dès mon plus jeune âge (j'ai commencé sur un MO5), je mets mes compétences au service de la communauté. Je "flirte" avec Linux depuis 2005 et j'ai complétement basculé dans le libre depuis plus de 3 ans.