{"id":2461,"date":"2014-12-17T11:32:55","date_gmt":"2014-12-17T09:32:55","guid":{"rendered":"https:\/\/www.azurs.net\/carnet\/?p=2461"},"modified":"2025-10-22T11:46:24","modified_gmt":"2025-10-22T09:46:24","slug":"scanner-usb-en-reseau-avec-raspberry-pi-sous-arch-linux-arm","status":"publish","type":"post","link":"https:\/\/www.azurs.net\/carnet\/2014\/12\/scanner-usb-en-reseau-avec-raspberry-pi-sous-arch-linux-arm\/","title":{"rendered":"Scanner USB en r\u00e9seau avec Raspberry Pi sous Arch Linux ARM"},"content":{"rendered":"<p>De m\u00eame que pour une <a href=\"https:\/\/www.azurs.net\/carnet\/2013\/09\/raspberry-pi-serveur-impression-imprimante-hp-laserjet-p1006\/\" title=\"Serveur d\u2019impression CUPS sur Raspberry Pi et imprimante HP LaserJet P1006\">imprimante USB<\/a>, il est facile de mettre en r\u00e9seau un (vieux) scanner USB. L&rsquo;avantage est de pouvoir scanner des documents depuis n&rsquo;importe quelle machine connect\u00e9e au r\u00e9seau local, qu&rsquo;elle tourne sous Windows, sous une distribution bas\u00e9e sur Linux ou m\u00eame sous Android (pour r\u00e9cup\u00e9rer un scan depuis un smartphone ou une tablette, par exemple), sans se pr\u00e9occuper des cables \u00e0 brancher, d\u00e9placer et rebrancher&#8230;<\/p>\n<figure id=\"attachment_2603\" aria-describedby=\"caption-attachment-2603\" style=\"width: 625px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2014\/12\/operatrice-branchant-des-fils-electriques-750x604.jpg\" alt=\"Une op\u00e9ratrice travaille au branchement de fils \u00e9lectriques.\" width=\"625\" height=\"503\" class=\"size-large wp-image-2603\" srcset=\"https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2014\/12\/operatrice-branchant-des-fils-electriques-750x604.jpg 750w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2014\/12\/operatrice-branchant-des-fils-electriques-300x241.jpg 300w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2014\/12\/operatrice-branchant-des-fils-electriques-624x503.jpg 624w, https:\/\/www.azurs.net\/carnet\/wp-content\/uploads\/2014\/12\/operatrice-branchant-des-fils-electriques.jpg 1024w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><figcaption id=\"caption-attachment-2603\" class=\"wp-caption-text\">Une op\u00e9ratrice ignorant la possibilit\u00e9 de mettre en r\u00e9seau un scanner USB sue sang et eau pour le connecter \u00e0 la bonne machine.<br \/>Source : Biblioth\u00e8que du Congr\u00e8s des \u00c9tats-Unis &#8211; <a href=\"http:\/\/loc.gov\/pictures\/resource\/fsac.1a35327\/\">Working with the electric wiring at Douglas Aircraft Company, Long Beach, Calif. (LOC).<\/a><\/figcaption><\/figure>\n<p>Pour m\u00e9moire et \u00e0 toutes fins utiles, voici comment j&rsquo;ai proc\u00e9d\u00e9 dans la configuration suivante :<\/p>\n<ul>\n<li>Scanner : EPSON, mod\u00e8le Perfection 2580 Photo (il s&rsquo;agit d&rsquo;un scanner USB \u00e0 plat),<\/li>\n<li>Raspberry Pi mod\u00e8le B rev. 2 connect\u00e9 au r\u00e9seau local en Ethernet et anim\u00e9 par Arch Linux ARM.<\/li>\n<\/ul>\n<p>Le principe est le suivant :<\/p>\n<ul>\n<li>Le scanner est connect\u00e9 \u00e0 la carte Raspberry Pi et pilot\u00e9 par sane.<\/li>\n<li>La carte Raspberry Pi joue le r\u00f4le de serveur.<\/li>\n<li>Les autres postes du r\u00e9seau se connectent \u00e0 la carte et pilotent le scanner au moyen d&rsquo;un client sane.<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h2>C\u00f4t\u00e9 serveur : installation du scanner sur la carte Raspberry Pi<\/h2>\n<h3>Installation de base du scanner<\/h3>\n<p>On branche le cable USB du scanner sur l&rsquo;un des ports USB de la carte Raspberry Pi. Pour v\u00e9rifier sa prise en charge :<br \/>\n<code># lsusb<\/code><br \/>\nMon scanner est un <em>Epson Perfection 2580 Photo<\/em>.<br \/>\nInstallation de sane et de xinetd :<br \/>\n<code># pacman -S sane xinetd<\/code><br \/>\nT\u00e9l\u00e9chargement du binaire du pilote propri\u00e9taire fourni par le fabricant. Dans mon cas, il se trouve ici : <a href=\"http:\/\/download.ebz.epson.net\/dsc\/du\/02\/DriverDownloadInfo.do?LG2=FR&#038;CN2=&#038;DSCMI=15854&#038;DSCCHK=7488eaf56192a685c1614419038bec9daf680ce6\">Epson Drivers and Download<\/a>. Il faut r\u00e9cup\u00e9rer le paquet .rpm :<br \/>\n<code>iscan-plugin-gt-f500-1.0.0-1.c2.i386.rpm<\/code><br \/>\net l&rsquo;ouvrir avec un gestionnaire d&rsquo;archives, naviguer dans l&rsquo;arborescence vers \/usr\/share\/iscan\/ dont on extrait <strong>esfw41.bin<\/strong> &#8211; c&rsquo;est le binaire qui nous int\u00e9resse.<br \/>\nCr\u00e9er le r\u00e9pertoire :<br \/>\n<code>\/usr\/share\/sane\/snapscan\/<\/code><br \/>\net y placer le binaire.<br \/>\nOuvrir le fichier de configuration \/etc\/sane.d\/snapscan.conf et indiquer apr\u00e8s <em>firmware<\/em> le chemin vers le binaire.<br \/>\n<code>firmware \/usr\/share\/sane\/snapscan\/<\/code><\/p>\n<h3>Configuration de xinetd et activation du partage en r\u00e9seau<\/h3>\n<p>Cr\u00e9er le fichier :<br \/>\n\/etc\/xinetd.d\/sane<br \/>\net y ajouter les lignes suivantes :<br \/>\n<code>service sane-port<br \/>\n{<br \/>\n   port        = 6566<br \/>\n   socket_type = stream<br \/>\n   wait        = no<br \/>\n   user        = nobody<br \/>\n   group       = scanner<br \/>\n   server      = \/usr\/bin\/saned<br \/>\n   disable     = no<br \/>\n}<\/code><br \/>\nAjouter l&rsquo;utilisateur <i>nobody<\/i> au groupe <i>scanner<\/i> :<br \/>\n<code># usermod -a -G scanner nobody<\/code><br \/>\nAjouter la ligne suivante \u00e0 \/etc\/services<br \/>\n<code>sane-port 6566\/tcp<\/code><br \/>\nIl faut activer le module r\u00e9seau de sane pour que le scanner puisse \u00eatre utilis\u00e9 par les machines connect\u00e9es au r\u00e9seau local. Pour cela, on indique les plages d&rsquo;adresses IP autoris\u00e9es \u00e0 utiliser le scanner en r\u00e9seau dans \/etc\/sane.d\/saned.conf .<br \/>\nPour finir, d\u00e9marrer le d\u00e9mon xinetd :<br \/>\n<code># systemctl start xinetd<\/code><br \/>\nPour qu&rsquo;il se lance automatiquement \u00e0 chaque red\u00e9marrage de la carte Raspberry Pi :<br \/>\n<code># systemctl enable xinetd<\/code><\/p>\n<h2>Configuration des clients<\/h2>\n<p>Pour qu&rsquo;une machine puisse acc\u00e9der au scanner via le r\u00e9seau, il faut qu&rsquo;elle dispose d&rsquo;un client sane.<\/p>\n<h3>Pour les machines tournant sous Linux : xsane<\/h3>\n<p>Installer xsane ne pose pas de probl\u00e8me particulier.<br \/>\nDans \/etc\/sane.d\/net.conf, indiquer l&rsquo;adresse IP de la machine \u00e0 laquelle le scanner est connect\u00e9.<\/p>\n<h3>Pour les machines tournant sous Windows : SaneTwain<\/h3>\n<p>J&rsquo;utilise pour ma part <a href=\"http:\/\/sanetwain.ozuzo.net\/\">SaneTwain<\/a>.<\/p>\n<h3>Pour les machines tournant sous Android : SaneDroid<\/h3>\n<p>Gratuit et disponible sur le Google Play Store, <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sane.droid&#038;hl=fr_FR\">SaneDroid<\/a> permet de lancer un scan depuis un terminal mobile comme un smartphone ou une tablette.<\/p>\n<p>Sources :<br \/>\nArchWiki : Sane<br \/>\n<a href=\"https:\/\/wiki.archlinux.org\/index.php\/sane\">https:\/\/wiki.archlinux.org\/index.php\/sane<\/a><br \/>\nDocumentation Ubuntu francophone : Scanner Epson &#8211; Cas particuliers avec Snapscan<br \/>\n<a href=\"http:\/\/doc.ubuntu-fr.org\/scanner_epson#methode_3cas_particuliers_avec_snapscan\">http:\/\/doc.ubuntu-fr.org\/scanner_epson#methode_3cas_particuliers_avec_snapscan<\/a><br \/>\nDocumentation Ubuntu francophone : Utiliser un scanner en r\u00e9seau<br \/>\n<a href=\"http:\/\/doc.ubuntu-fr.org\/tutoriel\/utiliser_un_scanner_en_reseau\">http:\/\/doc.ubuntu-fr.org\/tutoriel\/utiliser_un_scanner_en_reseau<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Explique comment transformer un scanner USB en scanner en r\u00e9seau en utilisant la carte Raspberry Pi sous Arch Linux ARM.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[395],"tags":[249,246,305,433,304],"class_list":["post-2461","post","type-post","status-publish","format-standard","hentry","category-bidouillages","tag-archlinux","tag-raspberry-pi-2","tag-reseau","tag-scanner","tag-serveur"],"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/2461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/comments?post=2461"}],"version-history":[{"count":12,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/2461\/revisions"}],"predecessor-version":[{"id":2614,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/2461\/revisions\/2614"}],"wp:attachment":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/media?parent=2461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/categories?post=2461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/tags?post=2461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}