Linux e gli Scanner Paolo Faeti Linux Day PLUG PARMA 23 Ottobre 2010 Tux Mascotte Ufficiale del Kernel Linux Linux e gli Scanner 1 SCANSIONE DIGITALE • Scansione: è la conversione di una immagine fisica in una immagine digitale. E' effettuata da uno scanner tramite un software di scansione. Gli scanner possono essere : • Manuali • Con alimentatore di documenti • Piani (detti anche flatbed, o da desktop). Sono gli scanner di gran lunga più versatili e diffusi. Linux e gli Scanner 2 Flatbed Scanners Questa presentazione descrive in particolare la scelta e l'installazione di uno scanner piano USB in un sistema Linux. Linux e gli Scanner 3 Driver e interfacce Gli scanner piani recenti sono solitamente collegati ai computer tramite una interfaccia USB. Nel passato erano molto in uso le interfacce SCSI e parallele. I piccoli scanner manuali utilizzano a volte anche le porte seriali. Driver e backend • Gli scanner vengono comandati tramite una serie di routine software precodificate (esempio : SANE, TWAIN.) • I programmi di scansione chiamano ciascuna di queste routine interagendo con una porzione di software che funge da adattatore fra l' hardware dello scanner ed il sistema operativo. • Nel mondo Windows questo pezzo di software si chiama “driver”, ed implementa lo standard TWAIN • In Linux una raccolta di driver detta “SANE” svolge la stessa funzione • Ciascun driver di SANE è noto come “backend” ed è sviluppato per un solo modello di scanner o per alcuni modelli con hardware strettamente correlato. • SANE è un software libero e gratuito Linux e gli Scanner 4 Frontend • I frontend di SANE sono i software coi quali l' Utente effettua materialmente la scansione • Xsane è il più popolare frontend per SANE. E' un programma versatile, facile da usare e molto completo. • Kooka ed Iscan, fra gli altri frontend disponibili, offrono una interfaccia grafica particolarmente semplificata • L' interfaccia grafica rimane quindi uguale, qualunque sia l'hardware di scansione (con minori difficoltà di apprendimento ;-) ) • Xsane ha un plugin richiamabile direttamente da GIMP, per una più facile importazione delle immagini Linux e gli Scanner 5 Gli Internals • Posto che i backend vengono per lo più sviluppati con il lavoro volontario di programmatori esterni alle Aziende che producono gli scanner, è fondamentale una diffusione completa delle caratteristiche tecniche degli scanner stessi ( “Internals “, “Complete Technical Specifications”) • Purtroppo la più parte delle Case produttrici è piuttosto restia a farlo per motivi non del tutto comprensibili • Molti Scanner inoltre sono prodotti da terze parti e semplicemente rimarchiati e venduti dal “produttore” finale ;-) • Quando non si abbia la collaborazione del fabbricante, a volte si può ugualmente realizzare un backend con operazioni di reverse engineering, ma i tempi si allungano, e spesso non tutte le funzioni risultano disponibili • Fortunatamente alcune Case hanno una politica di collaborazione con il mondo Linux, o forniscono addirittura il software necessario, da loro stesse sviluppato : EPSON, HP e BROTHER soprattutto. Linux e gli Scanner 6 Perchè uno Scanner USB funzioni con Linux... • Il sistema USB del computer deve funzionare correttamente e venire riconosciuto da Linux • Non devono esserci incompatibilità specifiche fra kernel e lo scanner (es.: capita con I' HP 5300C ed il kernel 2.6.x) • Lo scanner deve essere rilevato dal Sistema Operativo, tramite i backend di SANE, o con appositi software (es.: VUESCAN) In diverse distribuzioni di Linux l'accesso agli scanner è concesso per default solo agli amministratori del sistema (utenti “root”). E' però sempre possibile abilitare anche gli altri utenti . Linux e gli Scanner 7 Come comportarsi ? La domanda iniziale è : • Volete trovare / acquistare uno Scanner che funzioni nativamente con la vostra installazione di Linux oppure : • Volete usare con Linux uno scanner che già possedete ? Vi sono differenti strategie in ciascuno dei due casi. Andiamo ad esaminarle ....... Linux e gli Scanner 8 Nuovo Scanner :-)) °° Vi consiglio innanzi tutto di controllare la gamma EPSON (supportata da Linux tramite software SANE / Avasys) : http://www.avasys.jp/lx-bin2/linux_e/scan/DL1.do °° Poi controllate la gamma HP qui : http://hplipopensource.com/hplip-web/index.html °° Poi controllate la gamma BROTHER qui : http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/index.html °° Se non trovate nulla che vi piaccia provate a cercare nel Sito Web di SANE uno Scanner che sia supportato, e che risponda alle vostre esigenze : http://www.sane-project.org/sane-mfgs.html Linux e gli Scanner 9 Scanner già acquistato ;-)) • Provate innanzitutto a cercare nel Sito Web di SANE se il vostro Scanner sia già supportato nativamente: http://www.sane-project.org/sane-mfgs.html. • In caso non lo sia, fate una accurata ricerca su Internet per verificare se una scappatoia (workaround) non sia già stata trovata da qualcuno (capita piuttosto spesso) • Quando avete tutto quello che vi serve, passate alla configurazione di SANE e provate a scannerizzare tramite il vostro frontend preferito Linux e gli Scanner 10 Configurazione di SANE -1• Innanzitutto provate a vedere se la connessione USB dello scanner funziona, digitando da terminale : <lsusb> • Provate se lo scanner è visto dal sistema operativo e da SANE : da terminale digitare : <sane-find-scanner> • Una ulteriore prova può essere fatta digitando il comando : <scanimage -L> , che elenca tutti gli scanner collegati e riconosciuti da SANE Linux e gli Scanner 11 lsusb Linux e gli Scanner 12 sane-find-scanner Linux e gli Scanner 13 scanimage -L Linux e gli Scanner 14 Configurazione di SANE -2• Se lo scanner è visto dal sistema USB ma non da SANE, aprite con previlegi da amministratore la directory /etc/sane.d • Assicuratevi che il file di configurazione del backend sia presente • Aprite poi con un editor di testo il file dll.conf ed assicuratevi che non vi sia un carattere # prima del nome del backend • Nel caso vi sia, cancellate tale carattere # e salvate il file. Poi riavviate il sistema. Linux e gli Scanner 15 /etc/sane.d Linux e gli Scanner 16 File di configurazione del backend Linux e gli Scanner 17 dll.conf Linux e gli Scanner 18 Xsane -1- Linux e gli Scanner 19 Xsane -2- Linux e gli Scanner 20 Iscan Linux e gli Scanner 21 Se non funziona SANE... °° Si può provare a scaricare VUESCAN. Questo software gestisce autonomamente l'hardware, supporta più di 1500 modelli di scanner e viene continuamente aggiornato : http://www.hamrick.com/ °° Si tratta di un software a pagamento, ma di costo contenuto, ed ampiamente giustificato dalle prestazioni. La versione di prova è scaricabile gratuitamente. Linux e gli Scanner 22 Vuescan -1- Linux e gli Scanner 23 Vuescan -2- Linux e gli Scanner 24 Vuescan -3- Linux e gli Scanner 25 Se non funziona neppure VUESCAN (ovvero: a mali estremi... ;-) ) • Cambiare la distribuzione e/o la versione di Linux per rimediare ad eventuali incompatibilità specifiche fra kernel e lo scanner (es.: scanner HP 5300C e kernel 2.6.x) • Ricompilare il kernel e/o i moduli ( le patch necessarie sono a volte reperibili già pronte, sul Web. Richiede però competenze specifiche ) • Cambiare scanner :-(( • Installare un sistema operativo che supporti lo scanner su di una partizione separata e configurare il sistema per il dual boot • Usare per lo scanner un computer separato, con un sistema operativo supportato, collegato in rete al / ai computer principali utilizzanti Linux. Linux e gli Scanner 26 Grazie per l' attenzione ! Linux e gli Scanner 27