SANE (Italiano)

From ArchWiki
Jump to: navigation, search

Sane fornisce una libreria e uno strumento da riga di comando per utilizzare gli scanner sotto GNU/Linux. Qua è possibili verificare se il vostro scanner è supportato.

Installazione

Installare sane dagli official repositories.

Configurazione

Prima di tutto si può provare a vedere se SANE riconosce lo scanner

$ scanimage -L

Se non funziona, controllare che lo scanner sia collegato al computer. Potrebbe anche essere necessario scollegare/collegare lo scanner per farlo riconoscere da /etc/udev/rules.d/sane.rules

Dopodiché è possibile verificare se funziona effettivamente

$ scanimage --format=tiff > test.tiff

Se la scansione non riesce e appare il messaggio scanimage: sane_start: Invalid argument potrebbe essere necessario specificare il dispositivo.

$ scanimage -L
device `v4l:/dev/video0' is a Noname Video WebCam virtual device
device `pixma:04A91749_247936' is a CANON Canon PIXMA MG5200 multi-function peripheral

Allora si dovrebbe eseguire:

$ scanimage --device pixma:04A91749_247936 --format=tiff > test.tiff

Per dispositivi Acer/BenQ

Se si possiede uno scanner USB Acer (ora BenQ), è necessario scaricare un apposito binario del firmware e configurare /etc/sane.d/snapscan.conf

  • Scoprire quale modello si possiede e prendere nota dell'ID USB:
$ lsusb
Bus 002 Device 010: ID 04a5:20b0 Acer Peripherals Inc. (now BenQ Corp.) S2W 3300U/4300U
  • Andare sul sito snapscan e vedere se lo scanner è supportato e di che firmware si ha bisogno (ad esempio , u176v046.bin).
  • Cercare l'immagine del firmware su internet e scaricarlo nella cartella /usr/share/sane/snapscan/.
  • Modificare l'inizio di /etc/sane.d/snapscan.conf e configurare le seguenti due righe:
firmware /usr/share/sane/snapscan/u176v046.bin
/dev/usb/scanner0 bus=usb

Per dispositivi HP

Per l'hardware HP potrebbe anche essere necessario installare hplip fagli official repositories (vedere hplib supported devices) e/o hpojAUR da AUR (vedere hpoj supported devices).

  • Rimuovere il commento o aggiungere hpaio e hpoj in una nuova riga su /etc/sane.d/dll.conf.
  • Eseguire hp-setup da root può aiutarvi ad aggiungere il dispositivo.
  • hp-plugin è lHPLIP Plugin Download and Install Utility'.
  • hp-scan è lHPLIP Scan Utility'.

Per Hewlett-Packard OfficeJet, PSC, LaserJet, e stampanti multifuzione PhotoSmart, esguire ptal-init setup da root è seguire le istruzioni. Quindi avviare il demone ptal-init daemon.

Per dispositivi Brother

Per installare uno scanner Brother è necessario il driver giusto (si può trovare su AUR). Ci sono solo quattro drivers tra cui scegliere (brscan1-4). Al fine di trovare quello giusto si dovrebbe cercare il proprio modello su brother linux scanner page.

Dopo aver installato il driver è necessario eseguire (es. setupSaneScan2 per dispositivi brscan2 compatibili):

# /usr/local/Brother/sane/setupSaneScan2 -i

in modo che il driver/scanner siano riconosciuti da SANE.

Per scanner di rete, Brother fornisce uno strumento di configurazione diverso per ogni versione di brscan (es. brsaneconfig2 per brscan2 e compatibili):

# brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP>

Esempio:

# brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110

Per dispostivi Epson

Per scanner di rete (inclusa Wi-Fi), è possibile usare "Image Scan! for Linux".

Installare iscan, iscan-data e iscan-plugin-networkAUR da AUR, ed editare /etc/sane.d/epkowa.conf aggiungendo la linea:

net {IP_OF_SCANNER}

Per dispositivi Samsung

Per alcune stampanti Samsung MFP potrebbe essere necessario modificare /etc/sane.d/xerox_mfp.conf.

Esempio:

#Samsung SCX-3200
usb 0x04e8 0x3441

Cambiare il modello della stampante, se necessario. È possibile ottenere il codice idVendor e idProduct con lsusb. Vedere questo topic.

Quando si collega una stampante/scanner USB2 ad una interfaccia USB3 vi è attualmente un bug nel codice del kernel xHCI che causa il blocco del processo xsane quando è collegato lo scanner. Nel caso di una stampante Samsung multifunzione avente un ethernet o interfaccia wireless allora è possibile accedere allo scanner sulla rete, invece che tramite interfaccia USB, aggiungendo una riga al file /etc/sane.d/xerox_mfp.conf come questa:

#Samsung scx4500w wireless ip network address
tcp xx.xx.xx.xx

Dove xx.xx.xx.xx l'indirizzo ip statico della stampante.

Poi, quando si avvia xsane è possibile scegliere l' opzione di accesso tcp rete al posto della linea usb, e lo scanner sarà accessibile tramite la rete anziché la porta usb per evitare gli attuali problemi con USB3.

Per scanner plustek

Alcuni scanner Plustek (come i CanoScan) , richiedono una directory di blocco. Assicurarsi che in /var/lock esista la cartella /sane , che i permessi siano 660, e che sia di proprietà dell'utente" scanner. Se le autorizzazioni per la directory sono sbagliate, solo l'utente root sarà in grado di utilizzare lo scanner. Sembra (almeno su x86-64) che alcuni programmi che usano libusb (tipo xsane e kooka) hanno bisogno di permessi di rw al gruppo scanner anche per l'accesso a /proc/bus/usb per lavorare come utente normale.

Per scanner microtek

Alcuni scanner MICROTEK richiedono il modulo sg, che dovrebbe essere caricato automaticamente. Se non viene caricato dal sistema, provare a caricarlo manualmente (vedere Kernel modules#Configuration[broken link: invalid section] per dettagli).

Controllare se lo scanner viene riconosciuto , si dovrebbe ottenere il seguente output:

scanimage -L
device `microtek2:/dev/sg5' is a Microtek Phantom 636cx / C6 flatbed scanner

Firmware

Note: Questa sezione è necessaria solo se avete bisogno di aggiornare il firmware dello scanner.

Solitamente i firmware hanno estensione .bin

In primo luogo è necessario mettere il firmware in un posto sicuro, si consiglia di metterlo in una sottodirectory di /usr/share/sane.

Allora sarà necessario dire a SANE dove si trova il firmware:

  • Trovare il nome del backend per il proprio scanner da sane supported devices list.
  • Aprire il file /etc/sane.d/<backend-name>.conf.
  • Assicurarsi che la voce firmware non sia commentata(#) e inserire il percorso in cui si trova il firmware. Assicurarsi che i membri del gruppo scanner abbiano accesso al file /etc/sane.d/<backend-name>.conf.

Se il backend del vostro scanner non fa parte del pacchetto sane (come hpaio.conf che fa parte di hplip), è necessario togliere il commento alla voce corrispondente in /etc/sane.d/dll.d

Installare un frontend

Esistono molti frontend per SANE, un elenco non esaustivo può essere trovato su sane-project website. Un altro modo per trovarli è quello di utilizzare la funzione cerca di pacman con parole tipo "sane" or "scanner":

$ pacman -Ss sane
  • gscan2pdf — Una GUI basata su GTK2 per produrre file PDF, TIFF o DjVus da documenti acquisiti. È inoltre in grado di applicare OCR nel processo utilizzando diversi motori . Dipende da alcuni pacchetti Perl per funzionare, alcuni dei quali si trovano su AUR.
http://gscan2pdf.sourceforge.net/ || gscan2pdf
  • Simple Scan — Una GUI semplificata che è destinata ad essere più facile da usare e meglio integrata di Xsane nel desktop GNOME. Inizialmente è stata scritta per Ubuntu ed è mantenuta da Robert Ancell di Canonical Ltd. per GNU/Linux.
http://launchpad.net/simple-scan || simple-scan
  • Skanlite — Skanlite è un semplice programma per scansionare e salvare immagini, basato su KSane.
http://www.kde.org/applications/graphics/skanlite || skanlite
  • XSane — Un frontend GTK-based full-optional, un po' vecchio ma con ampie funzionalità.
http://www.xsane.org/ || xsane
Note: Scansionare direttamente in PDF utilizzando XSane in modalità colore 16 bit produrrà un file corrotto, una nota su pacman avverte di questo bug. La modalità 8bit invece sembra funzionare.

Scansione di rete

Condivisione dello scanner su una rete

E' possibile condividere il proprio scanner con altri host della rete che utilizzano sane, xsane o xsane-Gimp. Per impostare il server, bisogna prima indicare a quali hosts dare i permessi di accesso.

Modificare il file /etc/sane.d/saned.conf a proprio piacimento, per esempio:

# required
localhost
# allow local subnet
192.168.0.0/24

Inserire il modulo nf_conntrack_sane per iptables per consentire al firewall di traccaire la connessione di saned.

Le richieste di scansione vengono gestite da saned. Questo può essere eseguito come un demone con saned -a o eseguito quando necessario da xinetd:

Configurare xinetd per sane

Installare xinetd dagli official repositories.

Quindi, assicurarsi che il file /etc/xinetd.d/sane esista e che la riga disable sia settata su NO:

service sane-port
{
   port        = 6566
   socket_type = stream
   wait        = no
   user        = nobody
   group       = scanner
   server      = /usr/bin/saned
   disable     = no
}

L'utente normale ('nobody' nel file incluso nel pacchetto si sane) deve solitamente essere un membro del gruppo scanner per avere il permesso di accedere allo scanner :

# usermod -a -G scanner nobody

Per alcuni scanner - tipo le stampanti HP multifunzione - l'utente deve essere anche un membro del gruppo lp, che dovrebbe anche essere usato al posto dello scanner nel file di servizio .

Aggiungere la seguente linea a /etc/services se non è già presente:

sane-port 6566/tcp

Avviare il demone xinetd.

Lo scanner può ora essere utilizzato da altre stazioni di lavoro, attraverso la vostra rete locale .

Accesso allo scanner da una workstation remota

E' possibile accedere al proprio scanner di rete da una workstation Arch Linux remota.

Per configurare la postazione di lavoro, installare xsane dagli official repositories.

Quindi, specificare il nome host del server o l'indirizzo IP nel file /etc/sane.d/net.conf :

# static IP address
192.168.0.1
# or host name
stratus

Ora verificare la connessione dalla workstation tramite un terminale (non root):

$ xsane

oppure

$ scanimage -L

Dopo un po', xsane dovrebbe trovare il vostro scanner remoto e visualizzare le solite finestre, ora è tutto pronto per la scansione di rete!

Per le stampanti/scanner/fax HP All in one è necessario effettuare la configurazione tramite :

$ hp-setup <printer ip>

Scansione in rete con Canon Pixma all-in-one printer/scanners

Scoprire l'indirizzo IP dello scanner/stampante, e aggiungerlo su una nuova linea a /etc/sane.d/pixma.conf nel formato 'bjnp://10.0.0.20'.

Sane dovrebbe ora essere in grado di trovare il dispositivo. Per maggiori dettagli consultare 'man sane-pixma'.

Risoluzione dei problemi

Invalid argument

Se si ottiene un errore "Invalid argument" con xsane o una altro front-end, questo potrebbe eseere causanto da uno dei seguenti motivi:

Firmware mancante

Nessun file del firmware è stato fornito per lo scanner utilizzato (vedi sopra per i dettagli).

Permessi errati sul firmware

Le autorizzazioni per il file del firmware usati sono sbagliati . Correggerli utilizzando

# chown root:scanner /usr/share/sane/SCANNER_MODEL/FIRMWARE_FILE
# chmod ug+r /usr/share/sane/SCANNER_MODEL/FIRMWARE_FILE

Uso multiplo di diversi backends

Può accadere che il vostro scanner supporti i backend multipli, e SANE scelga uno che non funziona bene (lo scanner non verrà visualizzato in scanimage -L allora) . Questo accade con i vecchi scanner Epson e con i backend epson2 e epson. In questo caso , la soluzione è quella di commentare il backend indesiderato in /etc/sane.d/dll.conf. Nel caso di Epson, bisognerebbe cambiare:

 epson2
 #epson

in

 #epson2
 epson

Avvio lento

Se si verificano problemi di avvio lento (ad esempio se xsane e scanimage -L impiegano troppo tempo per rilevare lo scanner) può essere che uno o più driver supportati siano abilitati contemporaneamente.

Dare un'occhiata a /etc/sane.d/dll.conf e provare a commentarne uno (se per esempio si ha epson, epson2 e epkowa abilitati allo stesso tempo, provare a lasciare abilitati solo epson e epkowa)

Problemi di permessi

Se vedete il vostro scanner solo quando si esegue lsusb da root, potrebbe essere necessario aggiungere il vostro utente al gruppo scanner e/o lp.

# gpasswd -a username scanner
# gpasswd -a username lp

Questo è segnalato come funzionante nei modelli HP all-in-one(es. PSC 1315 e PSC 2355).

Potete anche provare a cambiare i permessi dei dispositivo usb ma questo non è consigliato, la soluzione migliore è quella di fissare le regole di Udev in modo che lo scanner sia riconosciuto.


Esempio:

In primo luogo, come root, controllare i dispositivi USB collegati con lsusb:

#Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 003 Device 003: ID 04d9:1603 Holtek Semiconductor, Inc. 
#Bus 003 Device 002: ID 04fc:0538 Sunplus Technology Co., Ltd 
#Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
#Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard 
#Bus 001 Device 002: ID 046d:0802 Logitech, Inc. Webcam C200
#Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

In questo esempio abbiamo lo scanner - 'Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard'

Ora aprire il file /lib/udev/rules.d/53-sane.rules e cercare la prima parte del numero ID trovata in precedenza e verificare se c'è una riga che riporta anche la seconda parte del numero (numero del modello ). In questo esempio è 2504. Se non c'è, aggiungere una riga e immettere il idVendor e idProduct dello scanner, in questo esempio potrebbe essere:

# Hewlett-Packard ScanJet 4100C
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2504", MODE="0664", GROUP="scanner",
  ENV{libsane_matched}="yes"

Salvare il file, scollegare e ricollegare lo scanner e le autorizzazioni del file dovrebbero essere ora corrette.

Un altro suggerimento potrebbe essere quello di aggiungere il dispositivo (scanner) nel file di backend:

Aggiungere 'usb 0x03f0 0x2504' a /etc/sane.d/hp4200.conf in modo che somigli a questo:

#
# Configuration file for the hp4200 backend
#
#
# HP4200
#usb 0x03f0 0x0105
usb 0x03f0 0x2504

Epson Perfection 1270

Per Epson Perfection 1270, è necessario anche un firmware denominato esfw3e.bin. Esso può essere ottenuto installando il driver di Windows.

Modificare il file di configurazione del backend Snapscan, /etc/sane.d/snapscan.conf. Modificare la linea del percorso firmware con la vostra :

# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /mnt/mydata/Backups/firmware/esfw3e.bin

E aggiungere la seguente riga alla fine, o dovunque vuoi

# Epson Perfection 1270
usb 0x04b8 0x0120

È possibile ottenere tali informazioni di codice (usb 0x04b8 0x0120) dal comando sane-find-scanner.

Aggiungere anche tali linee di informazione su /etc/hotplug/usb/libsane.usermap per impostare il privilegio, come :

# Epson Perfection 1270
libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000

Ricollegare scanner, Ora hai un Epson Perfection 1270 funzionante.

Note: Posso scannerizzare un'immagine se io definisco il valore X e Y , ma poi si verifica un messaggio di errore del tipo: scanimage: sane_start: Error during device I/O, se qualcuno conosce il motivo, per favore aggiungerli a questa sezione.
  • Per prevenire l'errore scanimage: sane_start: Error during device I/O e blocco dello scanner stesso quando si cerca di eseguire la scansione con ADF (alimentatore automatico ) abilitato, ho dovuto rimuovere o commentare tutti i backend da /etc/sane.d/dll.conf e aggiungere questa riga:
    snapscan

Finalmente! Se avete ancora errori di Error I/O, controllate il transportation lock dello scanner . È sul fondo dello scanner. Va aperto .

Blocco durante la scansione a causa di XHCI in modalità di pre-boot

Se si ottiene un problema in cui viene rilevato lo scanner durante l'esecuzione di lsusb o scanimage -L e anche nelle applicazioni GUI, ma quando si tenta di eseguire la scansione poco dopo si blocca o si blocca durante la scansione, potrebbe essere necessaria questa correzione:

È inoltre possibile ottenere questo errore durante il tentativo di eseguire la scansione:

kernel: usb 1-2: new high-speed USB device number 8 using xhci_hcd
kernel: WARNING! power/level is deprecated; use power/control instead

La correzione è: Nelle impostazioni del UEFI/BIOS cambiare le impostazioni sotto USB configuration, xhci pre-boot mode da enabled a disabled.