Translation(s): English - Français - Italiano


Condividere uno scanner USB o di rete attraverso una rete usando SANE.

h

Introduzione

       SCANNER                       SERVER                                       CLIENT
 +-----------------+       +------------------------+                +-----------------------------+
 |   Dispositivo   |       | libsane + sane-utils   |                | libsane                     |
 |    autonomo o   |  USB  |                        |  cavo/wireless |                             |
 |  multifunzione  |<----->| saned.conf: connessioni|<-------------->| dll.conf: decommentare net  |
 |   non di rete   |       |             permesse   |                | net.conf: indiriz.IP server |
 +-----------------+       +------------------------+                +-----------------------------+

Questa pagina è scritta principalmente per gli utenti con installata Debian 8 (jessie) o Debian 9 (stretch). Entrambe le distribuzioni hanno un sistema init (il primo processo lanciato durante l'avvio del computer che governa il suo successivo comportamento) basato su systemd. Su una macchina con uno scanner connesso ad una porta USB (il server), SANE con systemd può essere attivato via socket (controllare che il servizio sia abilitato). Il demone saned viene avviato quando viene ricevuta una richiesta sul server da un client e viene fermato quando la richiesta è stata soddisfatta. Ciò forma la base con cui uno scanner condiviso dal server serve un'immagine di un documento ad un'applicazione su un client.

Essenzialmente saned sul server e il backend net sul client vengono usati per convertire uno scanner non collegato alla rete o non abilitato all'uso della rete in uno di rete.

      SCANNER                                 CLIENT
+-----------------+                +--------------------------+
|   Dispositivo   |                |                          |
|    autonomo o   |  cavo/wireless | libsane                  |
|  multifunzione  |<-------------->| Pacchetti specifici per  |
| con uso di rete |                |           produttore     |       
+-----------------+                +--------------------------+

Ad uno scanner che è abilitato all'uso della rete con una connessione cablata o wireless (uno scanner di rete) si accede grazie all'aiuto del pacchetto libsane e una delle sue raccolte di backend. Consultare il manuale di un backend per informazioni sul fatto che supporti la scansione via rete. Ad esempio i backend epson2 e pixma lo fanno. libsane funziona con il backend non-SANE hpaio fornito da HP. Anche altri produttori forniscono mezzi per accedere ad uno scanner di rete, ma generalmente c'è una qualche parte del materiale offerto che non è libera perciò la configurazione dei loro dispositivi non viene trattata in questa pagina.

Condivisione di uno scanner connesso via USB

Configurazione del server

$ groups saned
saned : saned scanner

192.168.0.1/24

$ sudo systemctl enable saned.socket
Created symlink from /etc/systemd/system/sockets.target.wants/saned.socket to /lib/systemd/system/saned.socket.$ sudo systemctl start saned.socket
$ sudo systemctl status saned.socket

Una prima installazione di libsane ha il servizio socket disabilitato, perciò è necessario abilitarlo e avviarlo come descritto sopra.

Configurazione del client

% scanimage -L
device `net:192.168.0.100:plustek:libusb:002:006' is a Canon N670U/N676U/LiDE20 USB flatbed scanner

Notare che il backend net non è per accedere a scanner arbitrari in rete. Lo scopo per cui è pensato è quello di permettere al server (che ha uno scanner con supporto SANE) di esportare tale scanner ai client nella rete attraverso un unico protocollo specifico di SANE e indifferente al produttore.

Risoluzione dei problemi

Assicurarsi che l'utente saned possa accedere allo scanner da locale, sul server. scanimage -L dovrebbe rilevare lo scanner se nel sistema c'è un backend per esso e se l'utente saned ha i permessi d'accesso al bus USB; sane-find-scanner indica se l'utente saned non ha i permessi. Per eseguirlo come utente saned diventare root con su e usare

su -s /bin/bash saned
sane-find-scanner
scanimage -L

oppure usare sudo:

sudo-u saned sane-find-scanner
sudo-u saned scanimage -L

Inoltre vedere come impostare uno scanner USB per maggiori informazioni sulla configurazione in locale.

Avere un utente ordinario con o senza permessi sul bus USB (libpam-systemd potrebbe non essere installato) è di poca importanza. È l'utente saned che necessita dei permessi.

Tenere a mente che sane-find-scanner fa una scansione USB generica; il successo indica che un utente ha privilegi sufficienti per accedere ai dispositivi USB. D'altro canto, una risposta negativa a scanimage -L significa che nessuno dei backend SANE o forniti dal produttore conosce questo modello di scanner perciò non potrà comunicare con esso.

Se lo scanner funziona sul server ma non da remoto, assicurarsi che il servizio saned.socket sia in esecuzione correttamente sul server. systemctl dovrebbe riportare:

$ systemctl status saned.socket
● saned.socket - saned incoming socket
   Loaded: loaded (/lib/systemd/system/saned.socket; enabled)
   Active: active (listening) since Wed 2017-11-15 22:28:05 UTC; 1s ago
   Listen: [::]:6566 (Stream)
 Accepted: 0; Connected: 0

Nov 15 22:28:05 mafalda systemd[1]: Listening on saned incoming socket.

Si dovrebbe anche poter fare ping sull'host configurato:

$ ping -c1 mafalda
PING mafalda.anarc.at (192.168.0.6) 56(84) bytes of data.
64 bytes from mafalda.anarc.at (192.168.0.6): icmp_seq=1 ttl=64 time=0.400 ms

--- mafalda.anarc.at ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.400/0.400/0.400/0.000 ms

Si può anche cercare di connettersi direttamente allo scanner con:

xsane net:192.168.0.6

Se si hanno problemi a connettere più computer allo scanner, systemctl status saned.socket potrebbe mostrare

saned.socket: Too many incoming connections (1), dropping connection.

Questo è un bug noto nel componente systemd. Per una soluzione che aggira il problema in jessie o stretch:

In stretch è probabilmente più comodo usare:

Configurazioni di scanner di rete

Uso dello scanner con un HP all-in-one di rete (aio)-1

Per usare lo scanner in una rete da uno scanner con HP aio (uno che non è connesso ad un computer via USB) è necessario solamente installare libsane-hpaio (senza i suoi pacchetti raccomandati) e passare l' URI dello scanner al frontend. Potrebbe essere necessario un plugin non libero per la funzione di scansione. Il formato dell'URI è:

hpaio:/net/<nome_modello_aio>?ip=<indirizzo_IP_dell_aio>

Questo URI può essere fornito direttamente al frontend. Può anche essere fornito automaticamente al frontend se viene impostata una coda di stampa con il backend hp:/... io se i broadcast mDNS per lo scanner vengono fatti dallaio. Il rilevamento automatico avviene attraverso la coda di stampa se essa e mDNS sono entrambi disponibili come metodi di rilevamento.

L'indirizzo IP può essere noto dal modo in cui è stata configurata la rete per l'aio o può essere ottenuto dal pannello di controllo dell'aio o dedotto dall'output di:

/usr/bin/lpinfo -v

Ogni modello di stampante gestito dalla versione installata di libsane-hpaio viene elencato in /usr/share/hplip/data/models/models.dat. I nomi di modello sono racchiusi tra parentesi quadre, così: [envy_4500_series].

Un frontend può essere avviato con (ad esempio):

simple-scan <URI>

Si può evitare di dover digitare ogni volta l'URI esplorando le funzioni offerte dal proprio ambiente desktop (DE, desktop environment) o gestore di finestre (WM, window manager) per la personalizzazione dei comandi. Per il comando in un terminale può essere sufficiente un semplice alias.

L'installazione di hplip richiama libsane-hpaio come dipendenza e hplip fornisce l'utilità hp-makeuri. Può essere usata al posto della tecnica precedente per trovare un URI. Un plugin necessario può anche essere installato con hp-plugin.

Uso dello scanner con un HP all-in-one di rete (aio)-2

Molti utenti configurano una macchina aio HP installando hplip o hplip-gui e impostando il lato di stampa del dispositivo con hp-setup. La scansione dovrebbe essere così automaticamente disponibile, come spiegato da un utente su sane-devel e da una pagina sulla risoluzione di problemi di hplipopensource. Semplicemente digitare il nome del frontend preferito o fare clic su una voce di menu dovrebbe essere sufficiente per eseguire l'applicazione:

simple-scan
xsane
xscanimage

L'URI da passare al frontend si ottiene a partire dall'URI della stampante sostituendo hp:/.... con hpaio:/.....

Impostare una stampante con altri URI di dispositivo, socket://..., ipp://... ecc., non permette questa rilevazione automatica dell'URI dello scanner.

Usare uno scanner HP all-in-one di rete (aio)-3

      SCANNER                               ClIENT 
+------------------+                  +---------------+
|   Dispositivo    |                  | libsane       |
|    autonomo o    |   cavo/wireless  |               |
|  multifunzione   |<---------------->| pacchetto     |
|   con AirPrint   | pacchetti mDNS-->| libsane-hpaio |
+---------------- -+                  +---------------+

Gli aio HP recenti (dal 2010) probabilmente sono forniti con AirPrint. Quando attivato sull'aio l'URI dello scanner viene formato dal broadcast mDNS dell'aio in cooperazione con /usr/share/hplip/data/models/models.dat. Senza impostare la funzione di stampa dell'aio, lo scanner dovrebbe essere rilevato con

scanimage -L

e il frontend dovrebbe essere eseguito automaticamente dopo

xsane
simple-scan
xscanimage

La condivisione di uno scanner aio HP di rete non è possibile a causa dei bug 807427 e 838212. Gli scanner di rete di altri produttori potrebbero però funzionare in modalità condivisa.

Scansione via WiFi con scanner AirPrint / eSCL

Tranne gli scanner HP menzionati prima, la maggior parte degli scanner AirPrint / eSCL non sono attualmente (al 2007) supportati da SANE. Però dato che il protocollo è un semplice protocollo basato su XML e HTTP, il rudimentale (a riga di comando) script Python https://github.com/kno10/python-scan-eSCL può essere utilizzato per fare scansioni con tali dispositivi. Dato che questo può essere il modo prescelto per gestire Mac OS X sta diventando sempre più comune.

Esempi di dispositivi che funzionano così includono: Canon PIXMA TS5050 (e probabilmente altri modelli Canon PIXMA TS) e, secondo sane-devel può essere modificato per supportare anche Kyocera e HP. Naturalmente sarebbe meglio se qualcuno aggiungesse un driver per il supporto di eSCL/AirPrint a SANE, in modo da potere usare tutte le GUI.

Configurazione di inetd

Un'alternativa all'attivazione via socket di systemd è l'uso di openbsd-inetd. Installarlo, guardare bene /etc/default/saned ed eseguire

update-inetd --enable sane-port

Vedere anche