Je vous avais proposé en oct. 2019 de convertir une imprimante USB Epson DX9400f (sortie en 2007) en imprimante WiFi avec un Raspberry Pi et CUPS. Comme l’imprimante dispose d’un scanner j’aurais aimé utiliser aussi le scanner à distance avec SANE.
J’ai classé cet article pour les utilisateurs avancés car il n’est pas toujours simple de comprendre pourquoi ça ne fonctionne pas… Je ne pourrai pas répondre aux demandes du genre “J’ai suivi le tuto à la lettre mais ça marche pô !” Les paramètres sont nombreux et je ne suis pas voyante…
Au sommaire :
Scanner à distance avec le Raspberry Pi
Un scanner trop distant
Pourquoi un scanner distant ? Parce que l’imprimante est dans la pièce à côté, connectée au Raspberry Pi et qu’elle imprime parfaitement. Jusque là tout va bien, un petit passage dans la pièce d’à côté, l’atelier couture de madame314 (c’est Sarah qui a trouvé ce nom 🙂 ) et je récupère mon impression. Et alors me direz vous ? Pour le scanner ?
Bin comme le scanner fait partie de l’imprimante, il n’est connecté qu’au Raspberry Pi… tout seul dans son coin. Comme je ne peux pas scanner à distance, je débranche l’imprimante du Raspberry Pi, je mets un PC portable à côté de l’imprimante et après je scanne.
C’est pas fini ! Maintenant que j’ai mon image scannée, il faut que je la passe sur le PC sur lequel je travaille (comme en ce moment, en écoutant Dire Straits). Alors là ça dépend de la taille de l’image, du temps qu’il fait et de l’humeur du moment. Parfois c’est un mail, des fois je pose l’image sur le NAS, ou pire, j’utilise une clé USB. De toute façon je sais que pour scanner à distance il faudra que j’aille jusqu’au scanner pour poser le document, mais au moins ça évitera les transferts d’image…
Principe du scan distant
Pour gérer le scanner côté Raspberry Pi, on va utiliser le serveur SANE. Il s’installe sans problème sur Raspbian. Sur le PC (oui je sais c’est un vieux PC 😆 ) j’installerai sanetwain qui date un peu mais qui fait le travail. et on va transférer l’image via le réseau de la box.
Installer SANE
Avant de commencer, faites une mise à jour de votre système
1 2 |
sudo apt-get update sudo apt-get upgrade |
On peut maintenant installer SANE.
1 |
sudo apt-get install sane |
Et voir s’il trouve un scanner connecté
1 2 3 4 5 6 7 8 9 10 11 12 |
pi@ServeurImprimante:~ $ sudo sane-find-scanner # 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. could not fetch string descriptor: Pipe error could not fetch string descriptor: Pipe error found USB scanner (vendor=0x04b8, product=0x083a) at libusb:001:004 found USB scanner (vendor=0x0424, product=0xec00) at libusb:001:003 # 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. |
Apparemment oui il a trouvé 2 scanners ! bon, l’un doit être l’imprimante et l’autre le scanner…
Allez on continue avec scanimage -L qui va faire un scan (vide) avec les paramètres par défaut et créer une image sur la carte micro SD, nommée image.pnm. Pour la convertir il existe des outils en ligne comme Convertio. PNM est connu comme Portable-PixMap (wikipedia) et date des années 1980.
1 2 |
pi@ServeurImprimante:~ $ sudo scanimage -L device `epson2:libusb:001:004' is a Epson CX9400Fax flatbed scanner |
Mais surtout il nous retourne des informations sur le scanner comme vous pouvez le voir.
On peut continuer en faisant un « vrai » scan cette fois
1 |
scanimage > image_test_scanner.pnm |
Si tout ce passe bien il ne doit pas y avoir de message d’horreur, mais l’image est créée cette fois et elle n’est pas vide.
1 |
On peut maintenant configurer SANE pour qu'il fonctionne sur le Raspberry Pi : |
1 |
sudo nano /etc/default/saned |
Modifiez si besoin le contenu pour obtenir ceci :
1 2 3 4 |
# Set to yes to start saned RUN=yes> # Set to the user saned should run as RUN_AS_USER=saned |
Puis ensuite ouvrez saned.conf :
1 |
>sudo nano /etc/sane.d/saned.conf |
Et modifiez le fichier pour avoir
1 2 |
#scan-client.somedomain.firm 192.168.1.0/24 |
Ici on indique le réseau autorisé à scanner. Pour la LiveBox c’est 192.168.1.0, vous adapterez en fonction de votre propre réseau local.
Il reste à autoriser le scan. souvenez vous tout à l’heure scanimage nous a retourné 001:004 pour le scanner, sur le bus USB. C’est le fichier 004 du bus USB 001. Regardons qui est le propriétaire de ce fichier
1 2 3 4 5 6 |
pi@ServeurImprimante:~ $ ls -l /dev/bus/usb/001 total 0 crw-rw-r-- 1 root root 189, 0 avril 21 16:14 001 crw-rw-r-- 1 root root 189, 1 avril 20 18:51 002 crw-rw-r-- 1 root root 189, 2 avril 20 18:51 003 crw-rw-r--+ 1 root lp 189, 3 avril 21 16:39 004 |
le scanner (004) appartient à root et au groupe lp. On va ajouter le démon saned au groupe lp pour lui donner les autorisations nécessaires
1 |
sudo adduser saned lp |
On redémarre le démon :
1 |
sudo service saned restart |
Là j’ai eu quelques soucis, le système me disait que c’était masqué (bin oui en plein confinement c’est normal…). Après quelques recherches, j’ai trouvé la solution sur kbpdfstudio.
Tapez les lignes suivantes pour démarrer saned
1 |
sudo systemctl start saned.socket |
Demandez au système de le démarrer automatiquement lors du lancement
1 |
sudo systemctl enable saned.socket |
Vérifiez si le démon fonctionne avec cette commande
1 |
sudo systemctl status saned.socket |
Maintenant si vous redémarrez le Raspberry Pi vous devriez pouvoir scanner !
Installer sanetwain
Là on passe sur le PC Windows 10. Il faut télécharger le fichier zip de sanetwain.
Dans le dossier vous trouverez SaneTwain.ds et ScanImage.exe. Laissez bien ces deux fichiers ensemble pour que ça fonctionne. Ouvrez le fichier ScanImage.exe, autorisez le système à exécuter le fichier.
La fenêtre SaneTwain s’ouvre.
Cliquez sur les outils (clé et tournevis) pour paramétrer le serveur SANE sur le Raspberry Pi. On rentre son adresse et le nom d’utilisateur. Cochez la case Récupérer les périphériques au démarrage, pour que SaneTwain se reconnecte automatiquement.
Vous pouvez ensuite régler le mode (j’ai choisi le scan en couleur) et la résolution.
Cochez sur la loupe pour lancer une prévisualisation. La ligne d’état en haut de la fenêtre vous informe de ce qui se passe.
Après un moment d’attente (le temps que le scanner balaye l’image) vous obtenez une prévisualisation. Vous pouvez scanner la totalité de l’image ou sélectionner une partie.
Pour scanner et créer un fichier sur le PC, cliquez sur le scanner. Une fenêtre s’ouvre qui vous permet de choisir le nom et l’emplacement de l’image qui va être créée.
Ici j’ai scanné le logo Raspberry Pi en 300 ppp. La qualité est correcte, on voit les points de l’impression papier.
Pour la suite vous avez la doc, il y a de nombreuses options pour modifier les courbes, changer un certain nombre de paramètres… je vous laisse vous amuser avec tout ça.
Conclusion
Déjà merci à j2c qui est souvent intervenu dans les commentaires et qui m’a remis sur la piste d’un ensemble SANE qui fonctionne… Il suffira de dézipper et de lancer l’utilitaire pour se connecter au Raspberry Pi et scanner à distance.
Sources
- http://www.sane-project.org/
- https://sanetwain.ozuzo.net/
- http://sanetwain.ozuzo.net/downloads/sanetwain137.zip
- https://perhonen.fr/blog/2012/09/partager-un-scanner-via-sane-544
How to solve “Failed to start saned.service: Unit saned.service is masked” on Ubuntu
Wouaaaw !
Super.
Un scanner distant qui marche. Avec en prime un super article 😉
Génial, merci ! Je vais commencer par la partie impression ceci dit.
Merci ! 👍
bon amusement 🙂
Bonjour,
Juste un détail, si ce n’est pour le fun, pourquoi ne pas configurer un scan2mail sur le copieur tout simplement ?
bonjour
c’est une vielle multifonction uniquement en USB
comme je suis sur le même réseau j’aime autant gérer le préview et le scan en direct…
quand le scanner était connecté à mon PC j’utilisais une interface twain, ça ne change pas trop mes habitudes…
Quand j’ai besoin de demander le sel à ma femme quand on est à table. Je ne prend pas le téléphone pour appeler ma voisine qui venir soner chez nous pour demander à ma femme de me passer le sel; (c’est l’exemple que je donne à ma femme quand elle me sort des solutions « facile » à base de cloud…)
Quand j’ai besoin de scanner un document, je préfère le chemin le plus direct.
Et sinon pour faire encore plus simple
Certain multifonction grand public, n’ont tout simplement pas cette fonction 😉
C’est le cas du MFP HP que j’ai récupéré dans la rue il y a quelques années .. et qui me servait de scanner réseau.
Certain scanner n’ont pas de connectivité réseau;
même pas le scan to folder ?
Le scan to folder est intéressant.
Je l’ai configuré sur mon dernier MFP termonucléaire qui fait le café.
Sur le précédent, il ne l’avait pas;
On se démerdait avec l’interface web intégrée du MFP. Qui était moisi.. mais ça dépannait;
Pour ceux qui ont un scaner à plat USB; Cet article va vraiment être utile.
ça permet de leur donner une seconde vie; Car à l’air du tout connecté où on demande systématiquement à Claude si on a le droit d’aller pisser… les objets non connectés sont souvent remisés au placard. (quand ce n’est pas à la déchetterie)
scan2folder il me semble qu’il faut que le scanner soit sur le réseau aussi…
après c’est peut être possible avec SANE mais ça me va comme ça
je ne veux pas faire une usine à gaz, juste scanner qques documents par semaine 🙂
Salut, merci pour l’update il me fallait la partie scan. Peux tu préciser les prérequis cpu ram pour faire imprimante plus scanner ?
bonjour
ici j’ai recyclé un vieux Pi3 tout ce qu il y a de plus normal
Simple Scan sur Raspbian est pas mal non plus!
Bonjour
Merci pour ce tuto.
J’ai cependant un souci avec cette solution, sanetwain ne fonctionne pas chez moi. Pour moi, c’est lié au fait que je suis sur un poste sous windows 10 64 bit.
Quelqu’un connaîtrait il un autre logiciel pour scanner depuis depuis windows 10 64bit sans lancer la commande sous SSH ?
Bonjour
je ne pense pas que ce soit lié à Win10 64bits, c’est un Win10 64bits que j’utilise également…
Sur mon poste dès que je lance le programme scanImage.exe de sanetwain j’ai une erreur : « Erreur lors de l’établissement de la connexion »
Et si je tente de fermer le programme ,j’ai une autre erreur qui m’empêche de fermer l’application « Access violation at address 004056A0 in module ‘scanImage.exe’ Read of address 00000004 ».
La seule solution pour fermer l’application est de tuer la tache depuis le gestionnaire des taches.
Peut être est ce lié au 16 Go que mon poste dispose qui n’est pas géré dans l’application ?
Idem. Quelqu’un a solutionné ce pb?
Pour l’instant, j’ai pas trouvé.
Du coups, j’ai mis en place une page web pour lancer le scan et soit mettre le fichier sur le partage soit l’envoyer par mail.
Et ensuite, j’ai développé une application mobile pour y avoir accès depuis les différents téléphone et tablette de la maison.
Trouvé: chez moi c’était une erreur dans la plage d’adresse IP dans le fichier saned.conf
merci 🙂
Ca ouvre des possibilités.
Voici un exemple:
– problématique: ma femme est encore domiciliée officiellement chez sa mère, mais habite avec moi dans un autre pays (vive l’Europe!). Et elle y reçoit de temps en temps des courriers administratifs.
– solution: j’ai une vieille imprimante HP C4380 de 2007 qui a le wifi (et que j’avais acheté d’occaz pour pas grand chose). Je l’ai mise chez ma belle-mère (agée), imprimante connectée en wifi à son réseau, dont le routeur a la fonction serveur VPN (FRITZ!Box). Du coup quand ma femme reçoit du courrier chez sa mère, ma belle-mère m’appelle, elle allume l’imprimante et met la feuille à scanner et je me connecte à son réseau via VPN et je scanne le document à distance depuis mon laptop avec le logiciel Simple Scan sous Ubuntu.
Il faut juste se coordonner un peu par téléphone ou par visio pour changer les pages à scanner. Mais finalement c’est très pratique car ma belle-mère n’a pas l’aisance que j’ai avec les outis informatiques, elle est simplement équipée d’une tablette qu’elle utilise basiquement (et scanner-> pdf puis envoyer un mail avec le bon fichier en pièce-jointe est encore hors de sa portée).
merci pour ce retour d’expérience, Tof 😉
Bonjour,
Super article. Ca fonctionne impec chez moi avec un client sous ubuntu. Par contre, existe t il un client fonctionnel sous OSX ? Twainsane ne fonctionne qu’en ligne de commande sur OSX 10.14 (pas très WAF…). Ou peut être une interface web a installer sur le RPI qui fait serveur SANE ?
Merci
Bonjour David
je n’ai aucun appareil de chez apple
désolé de ne pouvoir vous aider
peut être un lecteur ?
cdt
françois
Trop fort !
En une semaine, et avec un Pi ZéroW, j’ai réussi à mettre sur mon réseau local mon ancienne imprimante multifonction ; ça imprime , ça scanne, depuis partout chez moi 😀
MERCI
Merci pour le retour Nicolas
Avec plaisir, C’est fait pour ça !