prérequis : sane configuré et opérationnel (cf. Sane)
Pour partager un scanner sur le réseau, nous allons utiliser le daemon saned disponible avec le paquet sane-utils
Nous allons modifier quelques fichiers de configuration :
contentons nous d’ajouter cette ligne pour nommer le port associé à saned
sane-port 6566/tcp # SANE network scanner daemon
Nous allons définir l’ensemble des postes ayant le droit d’accèder au scanner
#
# saned.conf
#
# The contents of the saned.conf file is a list of host names, IP
# addresses or IP subnets (CIDR notation) that are permitted to use local
# SANE devices. IPv6 addresses must be enclosed in brackets, and should
# always be specified in their compressed form.
#
# The hostname matching is not case-sensitive.
#
#scan-client.localdomain
xxx.xxx.xxx.xxx
127.0.0.1
#192.168.0.1/29
#[2001:7a8:185e::42:12]
#[2001:7a8:185e::42:12]/64
#
# NOTE: /etc/inetd.conf (or /etc/xinetd.conf) and
# /etc/services must also be properly configured to start
# the saned daemon as documented in saned(8), services(4)
# and inetd.conf(4) (or xinetd.conf(5)).
Nous indiquons ici quels sont les postes partageant un scanner
C’est la condition nécessaire et suffisante pour accéder à un scanner partagé (penser à installer les paquets sane sur le client)
# This is the net config file. Each line names a host to attach to.
# If you list "localhost" then your backends can be accessed either
# directly or through the ne?????4????A?t backend. Going through the net backend
# may be necessary to access devices that need special privileges.
localhost
xxx.xxx.xxx.xxx
Nous allons indiquer au système comment lancer saned en ajoutant la section suivante
#:SANED: Saned Services
sane-port stream tcp nowait saned.scanner usr/sbin/saned saned
voilà maintenant il ne nous reste plus qu’à lancer tout ça et tester :
user@machine:~$ sudo /etc/init.d/inetd restart
Restarting internet superserver: inetd.
user@machine:~$ scanimage -L
device `avision:libusb:001:003' is a Hewlett-Packard ScanJet 5300C flatbed scanner
device `net:localhost:avision:libusb:001:003' is a Hewlett-Packard ScanJet 5300C flatbed scanner
user@machine:~$
Nous voyons que notre scanner est accessible en local ou via l’interface réseau.Si ce n’est pas le cas, vérifiez les trois fichiers ci dessus ainsi que la configuration de votre firewall
. tout d’abord le scanner est un périphérique du système, et nous allons différencier trois types de scanner :
. nous avons donc notre périphérique de connecté, le noyau va lui associer un module (driver si vous y tenez) si le noyau n’y arrive pas nous allons l’aider un peu
. ce n’est pas fini, notre module connait maintenant le périphérique, sait le piloter, reste à lui apprendre à dialoguer avec lui. Il nous faut donc un linguiste et son dictionnaire (backend)
Vous trouverez la liste des scanners compatibles sur le site de sane
. une fois installés ces paquets, attaquons nous au paramétrage :
. supposons que tout se passe pour le mieux dans le meilleur des mondes :
.
# 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 SCSI driver for your SCSI adapter.
# Also you need support for SCSI Generic (sg) in your operating system.
# If using Linux, try "modprobe sg".
found USB scanner (vendor=0x03f0 [Hewlett Packard], product=0x0701 [Hewlett Packard ScanJet 5300C/5370C ]) 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.
# You may want to run this program as root to find all devices. Once you
# found the scanner devices, be sure to adjust access permissions as
user@machine:~$scanimage -L
device `avision:libusb:001:003' is a Hewlett-Packard ScanJet 5300C flatbed scanner
Dans ce cas notre scanner est configuré et prêt à l’emploi
Il arrive que quelques étapes suplémentaires soient nécessaires,
tout d’abord, veillez à ce que votre utilisateur appartienne au groupe scanner, que le device associé au scanner soit accessible par le groupe scanner.
le cas du HP5300C donné en exemple : j’usqu’au versions 2.6 des noyaux linux, il était nécessaire d’activer le support de hp53XXc dans le noyau (nécéssite une recompilation). Avec les dernières versions, il est pleinement supporté par la libusb, et d’ailleur l’option à été retirée du noyau. Je suppose que ce changement n’est pas lié à la version du noyau mais plutôt à l’évolution de sane et de la libusb. Je déconseillerais donc à l’avenir de compiler le module hpusbscsi (option hp53xxc)
le cas des scanners scsi, en supposant que toutes les options ad-hoc du noyau soient activées, il vous faudra commencer par décharger les modules sr_mod et sg de votre noyau