{{tag>Xenial Trusty Precise tutoriel réseau matériel scanner }} ---- ====== 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 [[:tutoriel:installer_imprimante_epson#configuration_du_scanner_en_reseau_avec_iscan_ou_sane|suivante]]. ===== Pré-requis ===== * Votre [[:scanner]] fonctionne sur la machine sur laquelle il est connecté (sous Ubuntu ce que nous appellerons **serveur**). * Avoir les droits d'[[:sudo|administrateur système]]. * Avoir votre [[:pare-feu]] désactivé ou bien correctement configuré (normalement désactivé par défaut dans Ubuntu). ===== Installation du serveur ===== 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: * [[::tutoriel:comment_installer_un_paquet|Installez sur l’ordinateur serveur les paquets]] **[[apt>sane,sane-utils]]**; * Réglez **sane** pour qu'il se lance automatiquement, pour cela, [[:tutoriel:comment_modifier_un_fichier|éditez]] avec les [[:sudo|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, [[:tutoriel:comment_modifier_un_fichier|modifiez]] avec les [[:sudo|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 [[:tutoriel:console_ligne_de_commande|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 [[:tutoriel:console_ligne_de_commande|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 [[:tutoriel:utiliser_un_scanner_en_reseau#sur_le_client|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 === [[:tutoriel:comment_editer_un_fichier|Éditez]] avec les [[:sudo|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_shell|commande]] suivante : cat /etc/services|grep san Cette [[:commande_shell|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''. - Déterminer le nom du scanner avec la [[:commande_shell|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**; - [[:tutoriel:comment_modifier_un_fichier|Créez le fichier]] **/etc/sane.d/saned.users** avec les [[:sudo|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 [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>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** : - [[:tutoriel:comment_editer_un_fichier|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 } - [[:tutoriel:comment_editer_un_fichier|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; - Redémarrez le [[:services|service]] udev, dans un [[:terminal]], saisissez la [[:commande_shell|commande]] suivante :sudo /etc/init.d/udev restart - Pour finir, redémarrez le [[:services|service]] **xinetd** en tapant dans un [[:terminal]] la [[:commande_shell|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. ===== Sur le client ===== Le client est la machine qui se connectera sur le scanner distant. ==== Sur un client Linux ==== Commencer par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>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é === [[:tutoriel:comment_editer_un_fichier|É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 [[http://sanetwain.ozuzo.net/|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 »((Sous Windows XP, il est situé dans « C:\WINDOWS\system32\drivers\etc\ ».)). 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 »). ===== Résolutions de problèmes ===== Si votre scanner n'est toujours par accessible sur le réseau: - 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, [[:tutoriel:comment_modifier_un_fichier|éditez le fichier]] **/etc/sane.d/net.conf** avec les [[:sudo|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. - Essayez d'imposer un nom d'utilisateur et un mot de passe conformément à ce qui est décrit [[#Imposer un mot de passe aux utilisateurs|ici]]. - 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, - 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 - 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 ===== Scanner avec sortie réseau ===== 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 [[:tutoriel:comment_modifier_un_fichier|ajoutez dans le fichier]] **/etc/sane.d/xerox_mfp.conf** avec les [[:sudo|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 : [[utilisateurs:yeffries]],[[utilisateurs:tshirtman]], [[:utilisateurs:Fabien26]], [[:utilisateurs:Ner0lph]], [[:utilisateurs:stephaneguedon]], [[:utilisateurs:claudiux]], [[:utilisateurs:andso]], [[:utilisateurs:Olivier V]], [[:utilisateurs:mario_26]], [[:utilisateurs:lousticator]], [[:utilisateurs:l_africain|L'Africain]]//