Utiliser un scanner en réseau

Cette documentation détaille la méthode d'installation d'un scanner relié à un serveur en réseau. La dernière rubrique traite du cas d'un scanner avec sortie réseau. On propose l'utilisation du logiciel xSane qui est une interface graphique pour scanner.

Pour certaines marques il faudra encore se reporter à la documentation spécifique pour permettre le partage du scanner. Pour les Epson par exemple voir la page suivante.
  • Votre scanner fonctionne sur la machine sur laquelle il est connecté (sous Ubuntu ce que nous appellerons serveur).
  • Avoir les droits d'administrateur système.
  • Avoir votre pare-feu désactivé ou bien correctement configuré (normalement désactivé par défaut dans Ubuntu).

Le serveur est la machine sur laquelle le scanner est connecté. Il est préférable d'avoir une ip statique sur ce dernier.

Configuration simple

Dans cette configuration, l'ordinateur qui sert de serveur, est équipé d'un scanner connecté par USB ou port parallèle:

  • Réglez sane pour qu'il se lance automatiquement, pour cela, éditez avec les droits d'administration le fichier /etc/default/saned comme suit :
    # Set to yes to start saned                                                     
    RUN=yes
  • Réglez le sous-réseau qui sera en mesure d'identifier le scanner. Pour cela, modifiez avec les droits d'administration le fichier /etc/sane.d/saned.conf pour partager l'imprimante sur votre réseau, en enlevant le # devant cette ligne, ou en l'ajoutant :
    192.168.0.1/24

    Adaptez l'IP (les premiers chiffres de la ligne) si besoin, selon votre plage d'adresses utilisées dans votre réseau. (/24 signifie de partager avec tout le monde dans xxx.xxx.xxx.0 à 255). Si vous avez attribué une IP statique à votre serveur, il vous suffit d'ajouter l'adresse à la fin du fichier;

  • Il vous reste à redémarrer saned avec cette commande:
    sudo service saned restart

    Sous Precise vous devrez également lancer cette commande:

    sudo update-rc.d saned defaults

Configuration de l'utilisateur

Dans certains cas, les autorisations doivent être réglées pour que l'utilisateur saned soit inséré dans le groupe lp. Pour cela ouvrez un terminal et entrez cette commande :

sudo adduser saned lp

Ajoutez également l'utilisateur courant du serveur au groupe saned :

sudo adduser $USER saned

Pour vérifier que l'utilisateur a les autorisations nécessaires pour accéder au périphérique scanner, exécutez les commandes suivantes :

sudo -s
su -s /bin/bash saned
scanimage -L

Par conséquent, vous devriez voir un périphérique identifié, par exemple :

device `hpaio:/usb/Officejet_6600?serial=CN1CF190F405RN' is a Hewlett-Packard Officejet_6600 all-in-one

Vous pouvez maintenant passer à la configuration du client.

Configuration avancée

Aussi valable pour ceux chez qui la configuration simple ne fonctionne pas.

Ces manipulation sont à effectuer toujours sur le serveur.

Faites les opérations de la Configuration simple, puis passez au étapes suivantes.

Module du scanner

Éditez avec les droits d'administrateur le fichier /etc/sane.d/dll.conf et vérifiez que le module du scanner est présent. Par exemple pour un scanner Canon de la série Pixma, la ligne pixma est bien présente par défaut (le nom du module peut être connu grâce au retour de la commande scanimage -L).

Nom du port utilisé

Il est vital de déterminer quel est le nom du port logiciel qui va être utilisé. En effet, ce nom peut changer suivant les cas. Pour cela, dans un terminal, saisissez la commande suivante :

cat /etc/services|grep san

Cette commande vous renverra toutes les lignes du fichier de définition des services contenant "san". Normalement la ligne de saned est dedans. Elle doit normalement correspondre au numero 6566.

sane-port     6566/tcp        sane saned      # SANE network scanner daemon

En particulier, vérifier qu'elle commence bien par sane-port, et non pas par sane.

Imposer un mot de passe aux utilisateurs

Cette méthode est facultative. Elle vous sera utile si vous souhaitez imposer un mot de passe aux utilisateurs qui peuvent se connecter.

Le scanner doit être connecté et sous tension quand vous exécutez scanimage.
  1. Déterminer le nom du scanner avec la commande suivante :
    scanimage -L

    Qui vous renvoie :

    device `pixma:04A91709_B10A23' is a CANON Canon PIXMA MP150 multi-function peripheral

    Le nom du scanner est un pixma;

  2. Créez le fichier /etc/sane.d/saned.users avec les droits d'administrateur pour ne lister que les utilisateurs autorisés à se connecter et leur affecter un mot de passe, il faut donc créer pour chaque utilisateur une ligne du type :
    NOMDUTILISATEUR:MOTDEPASSE:SCANNER

    où SCANNER est le nom du scanner qui a été donné par la commande précédente.

Configuration et lancement du service

Vous devez ensuite installer le paquet xinetd qui gérera le serveur de scanner.
Pour avoir un autre utilisateur du scanner que root, il faut modifier d'une part les règles udev et d'autre part le service réseau xinet.d :

  1. Créer le fichier /etc/xinetd.d/sane-port et y ajouter les lignes suivantes :
    service sane-port
    {
            id              = saned-stream
            socket_type     = stream
            server          = /usr/sbin/saned
            protocol        = tcp
            user            = saned
            group           = saned
            wait            = no
    }
  2. Créer le fichier relatif au scanner USB /etc/udev/rules.d/40-scanner-permissions.rules. Dans ce fichier, ajoutez les lignes suivantes :
    # usb scanner
    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE:="0666", GROUP:="saned", OWNER:="saned"
    SUBSYSTEM=="usb_device",MODE:="0666"

    Il se peut que le fichier existe déjà ou qu'un fichier de nom légèrement différent contenant scanner existe déjà, dans les deux cas, il suffit de modifier ce fichier;

  3. Redémarrez le service udev, dans un terminal, saisissez la commande suivante :
    sudo /etc/init.d/udev restart
  4. Pour finir, redémarrez le service xinetd en tapant dans un terminal la commande:
    sudo /etc/init.d/xinetd restart

Réglage du pare-feu

Si vous utilisez ufw qui ne ferme pas les ports en entrée par défaut, cette étape est inutile.

Si avez par défaut fermé les ports en entrée au niveau du pare-feu sur le PC serveur, il faut veiller à ouvrir le port 6566 en entrée.

Le client est la machine qui se connectera sur le scanner distant.

Sur un client Linux

Commencer par installer le paquet xsane. xSane, est le logiciel qui vous permettra d'accéder au scanner distant. Vous pouvez également installer un autre logiciel de scanner (voir la page scanner).

Adresse IP du poste auquel le scanner est connecté

Éditez le fichier /etc/sane.d/net.conf et ajoutez après la ligne ## saned hosts l'adresse IP ou le nom du serveur, par exemple :

## saned hosts
192.168.0.111

On peut aussi préciser un temps maximal de tentative de connexion en décommentant la ligne :

connect_timeout = 60

Sur un client Windows®

Par défaut il n'est pas possible de se connecter à scanner réseau géré par Sane. Cependant un outil a été développé à cet effet : SaneTwain. Vous pouvez le télécharger à cette adresse.

Il va créer un dossier de programme classique. Installez-le. Dans la boite de dialogue qui va s'ouvrir, mettez l'adresse IP du serveur dans « hostname ».
Vous pouvez aussi mettre le nom du serveur, mais il faut pour cela que Windows connaisse cet alias. Il y a un fichier « hosts » pour cela, comme sous Linux. Cherchez-le avec la commande « Chercher un fichier »1).

Il faut s'assurer que le serveur ait bien dans son fichier « /etc/sane.d/saned.conf » l'adresse IP du client Windows ou son alias clairement identifié ! Il faut donc soit connaître l'adresse IP de Windows, soit se débrouiller pour que Linux la connaisse (avec une astuce sur votre DNS perso peut-être ou un alias dans le fichier « /etc/hosts »).

Si votre scanner n'est toujours par accessible sur le réseau:

  1. Commencez par tester si le scanner peut déjà être utilisé depuis le serveur. Le serveur jouera donc aussi le rôle de client. Pour cela, sur le serveur, éditez le fichier /etc/sane.d/net.conf avec les droits d'administrateur et :
    • Décommentez la ligne connect_timeout ce qui donne:
      connect_timeout = 60
    • Ajoutez à la fin :
      localhost

      Essayer de scanner en choisissant le scanner désigné par net. Si ça fonctionne, la configuration du serveur est sans doute bonne … c'est que l'ordinateur client n'arrive pas à se connecter.

  2. Essayez d'imposer un nom d'utilisateur et un mot de passe conformément à ce qui est décrit ici.
  3. Désactivez temporairement le pare feu en entrée si vous avez vous même fermé des ports (ce n'est pas le cas par défaut) ou au moins ouvrez le port 6566 en TCP sur le serveur,
  4. Testez xSane avec la commande (l'IP corespondant à celle de votre serveur):
    xsane [driver]:net:192.168.0.15

    Par exemple si votre scanner utilise le pilote [driver] epson2 avec l'adresse IP 192.168.0.15 la commande sera:

    xsane epson2:net:192.168.0.15
  5. Si vous n'avez toujours pas de résultat il vous reste a tester la connexion locale avec telnet en saisissant la commande suivante:
    sudo netstat -tulpn | egrep '(:6566|saned)' saned-test.log
        telnet localhost 6566

Le plus simple est de configurer son imprimante avec une adresse IP statique, notée 192.168.X.Y dans la suite et bien sûr avoir installé le pilote du scanner.

Ensuite ajoutez dans le fichier /etc/sane.d/xerox_mfp.conf avec les droits d'administrateur, la ligne:

 tcp 192.168.X.Y
Il est possible d'ajouter l'adresse IP statique de l'imprimante dans le fichier /etc/hosts. Exemple :
 192.168.X.Y    nom_de_l_imprimante 

Cette manipulation évite de mémoriser l'adresse IP, et est vraie pour n'importe quelle machine IP.


Contributeurs : yeffries,tshirtman, Fabien26, Ner0lph, stephaneguedon, claudiux, andso, Olivier V, mario_26, lousticator, L'Africain


1)
Sous Windows XP, il est situé dans « C:\WINDOWS\system32\drivers\etc\ ».
  • tutoriel/utiliser_un_scanner_en_reseau.txt
  • Dernière modification: Le 11/09/2022, 12:25
  • par moths-art