Translation(s): English - Français - Italiano
Condividere e usare uno scanner connesso via USB o rete attraverso una rete usando SANE e un'introduzione alla scansione senza driver con i backend sane-airscan e sane-escl.
Contents
- Introduzione
- Condivisione di uno scanner connesso via USB: le basi
- Scansione con il protocollo eSCL
- Scansione con il protocollo WSD
- Configurazioni di scanner di rete
- Configurazione di inetd
- Vedere anche
Introduzione
SCANNER CLIENT +-----------------+ +--------------------------+ | Dispositivo | | libsane | | autonomo o | cavo/wireless | Pacchetti specifici per | | multifunzione |<-------------->| produttore | | con uso di rete | | eSCL/WSD | +-----------------+ +--------------------------+
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 raccolte di backend nel sistema. Due backend nuovi in Debian 11 (bullseye), sane-airscan e sane-escl, forniscono la scansione senza driver nella rete. Consultare il manuale di un backend per informazioni sul fatto che supporti la scansione via rete. Ad esempio i backend epson2, pixma, escl e airscan 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.
Un dispositivo connesso via USB che gestisce e usa il protocolloIPP-over-USB può essere esportato ed essere visto come dispositivo di rete. Altrimenti, su USB, il dispositivo dovrà essere esportato ad un client via saned.
Condivisione di uno scanner connesso via USB: le basi
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 sezione è scritta principalmente per gli utenti con installata Debian 8 (jessie), Debian 9 (stretch), Debian 10 (buster) o Debian 11 (bullseye). Queste 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.
Configurazione del server
Installare sane-utils per ottenere saned .
Controllare che il contenuto di /etc/default/saned sia adatto per il sistema e che saned sia nel gruppo scanner. Per la stragrande maggioranza degli utenti non è necessario fare modifiche a questo file. Si dovrebbe vedere quanto segue:
$ groups saned saned : saned scanner
Aggiunge in /etc/sane.d/saned.conf i nomi host, indirizzi IP o sottoreti IP a cui è permesso usare i dispositivi SANE locali sul server. Ad esempio si può permettere l'uso alla rete locale usando la configurazione seguente, che varierà a seconda della propria configurazione di rete:
192.168.0.1/24
Se necessario (guardare systemctl status saned.socket) abilitare il servizio socket di systemd:
$ 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
- Il server condividerà ora lo scanner connesso via USB con le altre macchine specificate sulla rete.
Una prima installazione di libsane ha il servizio socket disabilitato, perciò è necessario abilitarlo e avviarlo come descritto sopra.
Configurazione del client
È essenziale installare libsane e, per testare la capacità del client di vedere lo scanner di rete, è raccomandata l'installazione di sane-utils. Il rilevamento con successo dello scanner condiviso con scanimage indica un probabile successo con altri frontend.
Decommentare la voce del backend net in /etc/sane.d/ddl.conf.
Aggiungere l'indirizzo IP/il nome host del server sane in /etc/sane.d/net.conf.
- Se tutto funziona correttamente si otterrà qualcosa del genere:
% 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. Notare i problemi ricordati verso la fine di questa sezione se il server usa Debian 10 (buster).
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:
cp /lib/systemd/system/saned.socket /etc/systemd/system/saned.socket.
Modificare e sostituire MaxConnections=1 con MaxConnections=64.
systemctl daemon-reload.
In stretch è probabilmente più comodo usare:
systemctl edit --full saned.socket.
Condivisione in Debian 11 (bullseye) e successive
Debian 11 introduce ipp-usb come pacchetto installato in modo predefinito quando è installato libsane1. Dopo che ipp-usb è attivo, cioè quando viene fatta una connessione USB ad un dispositivo, impedisce l'impostazione di una relazione server e client come descritta precedentemente. Una soluzione è rimuovere ipp-usb dal sistema, perdendo tutti i suoi benefici.
Tuttavia un modo alternativo per ottenere accesso allo scanner sul server è di far sì che ipp-usb sul server esponga il dispositivo su tutte le interfacce, non solo su loopback. Modificare /etc/ipp-usb/ipp-usb.conf in modo da avere
interface = all
Il client dovrà fornire uno dei backendsane-escl o sane-airscane per abilitare il frontend scelto per la scansione.
Scansione con il protocollo eSCL
Molti MFD e scanner moderni gestiscono il protocollo eSCL. Il protocollo è un protocollo di rete indipendente dal produttore che permette la "scansione senza driver" con backend SANE adatti tramite dispositivi con connessione Ethernet, senza cavi e USB. In altre parole, il protocollo funziona non solo con i dispositivi connessi via rete che si pubblicizzano tramite DNS-SD, ma anche con dispositivi USB che usano IPP-over-USB. La scansione è senza driver perché, dal punto di vista del client, un driver specifico per il produttore non è necessario per usare ciò che è incorporato nel firmware del dispositivo. Ora esiste anche una soluzione per la condivisione di un scanner connesso con Windows attraverso il protocollo eSCL.
Due backend SANE adatti inclusi in Debian 11 (bullseye) sono sane-escl, che è un prodotto del SANE Project e incluso in libsane1, e l'indipendente sane-airscan, che è sviluppato e mantenuto da Alexander Pevzner e che funziona anche con il protocollo WSD protocol.
Agli utenti di Debian 11 (bullseye) si consiglia di averli installati entrambi nel sistema per un'esperienza di scansione moderna di successo.
Gli utenti di Debian 10 (buster) possono ottenere sane-airscan da buster-backports.
eSCL è noto anche come scansione Apple AirScan o AirPrint. È stato promosso da Apple come metodo per scansione da dispositivi mobili e qualsiasi dispositivo che supporta AirPrint versione 1.4 dovrebbe supportare eSCL. La documentazione ufficiale del protocollo non era inizialmente pubblicamente disponibile, ma si è rivelato relativamente facile farne l'ingegneria inversa, dato che è un semplice protocollo basato su XML e HTTP. Mopria ha ora reso disponibile la eSCL Scan Specification. Si pensa che SCL stia per Scanner Control Language, il significato della e è sconosciuto.
Un dispositivo che gestisce il protocollo eSCL fornisce per uno qualsiasi dei comandi seguenti un output che descrive le funzionalità del dispositivo scanner. il significato di uscan non è certo, ma potrebbe essere universal scan.
avahi-browse -rt _uscan._tcp avahi-browse -rt _uscans._tcp
Moltissimi dispositivi scanner moderni ora stanno diventando in grado di funzionare con SANE e i suoi frontends. Un esempio è la situazione relativi ai dispositivi Canon. I frontend SANE possono ora accedere a tali dispositivi.
Sane-airscan è stato anche testato come client per Twain2AirScan, che viene eseguito su server web PHP 10-x64 e permette la condivisione di qualsiasi scanner Twain o WIA connesso con Windows attraverso il protocollo eSCL. Sebbene tecnicamente questa sia una soluzione proprietaria da parte di Windows, il codice principale non è altro che PHP in esecuzione su un server web che passa comandi di scansione a CmdTwain sulla macchina Windows. Richiede anche Apple Bonjour Print Services per Windows e XAMPP per Windows è il server web raccomandato. Twain2AirScan è gratis per uso personale ed ha un costo per l'uso commerciale.
AirScanS400W è un "livello di compatibilità" o "middleware" che comunica con uno scanner di tipo s400w e agisce da traduttore eSCL. AirScanS400W è completamente gratis e open source. Vedere gli scanner S400W più avanti.
Scansione con il protocollo WSD
Un altro protocollo di rete indipendente dal produttore che permette la scansione senza driver con un backend SANE adatto è basato sull'infrastruttura Web Services for Devices di Microsoft. WSD è un insieme di specifiche mirate a gestire la comunicazione di rete tra dispositivi che offrono un qualche tipo di funzionalità, come gli scanner. Co sì come con eSCL c'è un protocollo di rilevazione, un modo per recuperare un elenco di attributi del servizio da uno scanner e un insieme di regole per segnalare comandi o eventi.
WSD è una tecnologia simile ad eSCL per il fatto di basarsi su connessioni via HTTP e su XML. Tuttavia, a differenza di eSCL, che usa lo standard DNS-SD per la rilevazione dei dispositivi, WSD usa il proprio protocollo basato sull'invio di multcast XML via UDP. La parte di rilevamento di WSD è nota come WS-Discovery e la parte di scansione come WS-Scan.
I dispositivi scanner possono offrire:
solo eSCL
- solo WSD
- eSCL e WSD
Dei due backend precedentemente menzionati solo sane-airscan lavora con il protocollo WSD. Il suo backend implementa escl oltre a WSD, scegliendo automaticamente tra i due; vedere /etc/sane.d/airscan.conf e il manuale di sane-airscan.
sane-airscan è progettato in modo che un dispositivo fisico appaia una sola volta quando elencati con scanimage -L o xsane e simple-scan, anche se supporta entrambi i protocolli eSCL e WSD. Si pensa che, per la maggior parte degli utenti, e nella maggior parte dei casi, dover scegliere tra eSCL e WSD aggiunga solo complessità senza benefici.
Quando è selezionata la visualizzazione automatica del protocollo, che è il comportamento predefinito in /etc/sane.d/airscan.conf, WSD viene visto solamente quando non è gestito eSCL.
Un utente che desidera che vengano elencate le destinazioni eSCL e WSD nelle applicazioni, può modificare /etc/sane.d/airscan.conf. Lo scanner dovrebbe apparire due volte nel dialogo di selezione del dispositivo: una volta per eSCL e una seconda per WSD.
[options] protocol = manual
sane-airscan ovviamente porta potenzialmente più dispositivi scanner a funzionare con SANE. Per la modalità eSCL o la modalità ESD un utente solitamente non deve fare nulla sul dispositivo. Tuttavia alcuni dispositivi con gestione di WSD ed eSCL richiedono l'attivazione esplicita di un protocollo da un EWS. Vedere il sito web di sane-airscan per i dettagli.
Dopo un intenso sforzo tecnico, l'opinione attuale è che il protocollo WSD non sia gestito su una connessione IPP-over-USB.
Può essere difficile capire dal manuale di una stampante se un dispositivo gestisce eSCL o WSD. Con sane-airscan nel sistema, uno qualsiasi del due comandi seguenti dovrebbe indicare quali protocolli sono gestiti:
scanimage -L airscan-discover
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 dall'aio. 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 attraverso la rete con stampanti Canon multifunzione e scanner CanonScan
Se, secondo il progetto SANE, il proprio scanner usa sane-pixma.5 come backend, as a backend è necessario assicurarsi che:
- lo scanner e il computer siano posizionati nella stessa sottorete (altrimenti vedere più sotto)
- le porte UDP 8610 e 8612 siano aperte nel firewall
Aprire le porte
In modo predefinito Debian 10 (buster) usa nftables come implementazione di firewall, configurato per permettere tutto il traffico. Ma, se si hanno problemi a rilevare lo scanner si dovrebbero probabilmente controllare che le porte UDP 8610 e 8612 siano aperte.
Se si usa firewalld, un'altra implentazione popolare di firewall, si deve:
controllare quale zona si usa:
sudo firewall-cmd --get-active-zones
ottenendo un output simile a:
public interfaces: eth0 eth1
Nell'esempio si usa la zona "public", perciò si possono aprire le porte 8610 e 8612 in questo modo:
sudo firewall-cmd --permanent --zone=public --add-port=8610/udp sudo firewall-cmd --permanent --zone=public --add-port=8612/udp
Poi si deve riavviare il firewall per far sì che le modifiche abbiano effetto:
sudo systemctl restart firewalld
Se lo scanner e il computer sono in sottoreti diverse
In questo caso si deve aggiungere lo scanner con il corrispondente IP a /etc/sane.d/pixma.conf. Normalmente solo gli scanner che non possono essere rilevati automaticamente perché sono in una sottorete diversa devono essere elencati lì.
Gli scanner vengono elencati nel file di configurazione in questo modo:
<metodo>://<host>[:porta][/timeout=<valore>]
Metodo indica il protocollo utilizzato (bjnp è usato per le multifunzione inkjet e mfnp è usato per le multifunzione laser).
Host è il nome host o l'indirizzo IP dello scanner.
Ad esempio:
- bjnp://10.0.1.4 per IPv4
- bjnp://[2001:888:118e:18e2:21e:8fff:fe36:b64a] per un indirizzo IPv6 letterale
- bjnp://mioscanner.miodominio.org per un nome host.
Il numero di porta è opzionale ed è normalmente implicito nel metodo. La porta standard è 8610 per mfnp e 8612 per bjnp.
Un valore di tempo di attesa massimo specifico per uno scanner per il protocollo di rete può essere impostato usando il parametro bjnp-timeout. Il valore è in millisecondi. Definire gli scanner ciascuno su una nuova riga.
Scanner s400w
Gli scanner s400w sono scanner portatili piccoli, wireless, alimentati a batteria. Hanno l'alimentazione a fogli singoli. Sono noti con i seguenti nomi a seconda soprattutto del paese in cui sono commercializzati: Century CPS-A4WF, Halo Magic Scanner, ION ?AirCopy, ION ?AirCopy E-Post Edition, iScan Fly, Kaiser Baas WiFi Photo & Document Scanner, Mustek iScan Air / S400W, Transcription Patri Kun A4 Wi-Fi Portable Scanner, 転写パットリくん A4 Wi-Fiポータブルスキャナー.
Sebbene questi scanner non siano "direttamente" compatibili con SANE, possono funzionare usando SANE-AirScan e AirScanS400W. AirScanS400W agisce da middleware o da livello di compatibilità facendo sì che lo scanner emuli il protocollo eSCL grazie ad un computer host che esegue Apache, PHP e mod_rewrite (o altro server web equivalente). Lo scanner è poi disponibile anche a qualsiasi utente nella rete via il protocollo eSCL. Una volta configurato, SANE-AirScan agisce da backend per SANE per andare da eSCL a SANE, riconoscendo automaticamente lo scanner s400w come scanner eSCL. AirScanS400W è completamente libero e open source e disponibile da ScannerShare.
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
/usr/share/doc/sane-utils/README.Debian nel proprio sistema può avere ulteriori istruzioni
CategoryHardware CategoryScanner CategorySystemAdministration
