Iscan per Slackware 14.2
Benvenuti nella pagina Wiki di Simone Giustetti.
Lingue: English - Italiano
Iscan per Slackware 14.2
Image Scan è un programma di acquisizione di immagini tramite uno scanner disponibile per architettura Linux. Sviluppato attivamente per molti anni, il programma sembra essere stato recentemente dismesso da Epson che lo aveva rilevato da Avasys anni fa. In una serie di articoli reperibili su questo stesso sito avevo illustrato come compilare pacchetti funzionanti di Iscan per svariate versioni di Slackware un'ottima e longeva distribuzione di Linux. Il ciclo di sviluppo della nuova versione di Slackware, la 14.2, ha richiesto oltre due anni. Ovviamente il ramo di sviluppo Slackware-current ha introdotto parecchie novità ed aggiornamenti sia tra i pacchetti inclusi che alla configurazione del sistema. Alcune delle novità introdotte hanno causato problemi alla procedura di compilazione di Image Scan. Stavo ragionando ad un aggiornamento degli script di compilazione sin dall'entrata in beta del ramo di sviluppo, ma altre attività hanno sempre avuto la precedenza. Sono rimasto talmente indietro che il primo di Luglio 2016 è stata ufficialmente rilasciata la versione ufficiale 14.2. Mi sono reso conto di aver procrastinato troppo ed ho deciso di conseguenza di recuperare il tempo perduto scrivendo l'articolo che state leggendo.
Quanto illustrato in seguito riassume tutti i consigli ed i suggerimenti delle persone che si sono cimentate con la compilazione di Iscan per Slackware-current nel corso dei mesi scorsi ponendomi domande e fornendo consigli preziosi, patch e correzioni. A 55020, Fabio Castelli di Arch Linux, Rob Van Nues ed altri ancora vanno tutti i miei ringraziamenti.
La Procedura di Compilazione dei Pacchetti. Un Sunto
Generare i pacchetti di Image Scan per Slackware è un processo lineare. Nei miei precedenti articoli sono riportate istruzioni dettagliate per diverse architetture. Di seguito includo invece un sunto che ha le seguenti caratteristiche:
- Le istruzioni riportate possono essere utilizzate per qualsiasi architettura.
- Pacchetti funzionanti sono stati generati e provati per architettura i486, amd64 ed arm.
- I test sono stati eseguiti con uno scanner Epson modello v200. Non posso fornire informazioni per altri modelli dato che non li possiedo.
- I pacchetti per architettura arm difettano dell'interfaccia grafica, che non viene compilata utilizzando i MakeFile ufficiali. Inoltre non è garantito che il fimware distribuito per architetture i486 e amd64 funzioni con dispositivi arm anzi è molto probabile il contrario.
Iscan consta di 3 pacchetti distinti:
- Iscan contiene il motore e l'interfaccia grafica del programma.
- Iscan-data contiene i file per la corretta configurazione di udev e la generazione delle regole per scanner USB o SCSI.
- Iscan-plugins contiene invece il firmware per alcuni modelli di scanner Epson necessari per il funzionamento con sane: il sottosistema di gestione dei dispositivi di acquisizione di Linux e Unix.
L'installazione dei primi due è obbligatoria, mentre il pacchetto iscan-plugin è opzionale in quanto alcuni modelli non richiedono driver specifici per funzionare con Linux. I primi due pacchetti sono uguali per tutti i dispositivi supportati. Iscan-plugin funziona invece solo per lo scanner collegato al PC perciò lo script che genera il pacchetto deve essere configurato specificamente. Infine vale la pena ricordare che l'ordine con cui vengono installati i pacchetti è rilevante perchè durante l'installazione degli stessi sono create alcune cartelle, diversi collegamenti e vengono generate le regole di udev necessarie al riconoscimento del dispositivo. L'ordine corretto in cui installare i pacchetti è:
- Isca-data
- Iscan
- Iscan-plugin
La Versione Utilizzata
Lo sviluppo del programma ha subito un progressivo rallentamento nel corso degli anni fino ad essersi praticamente fermato con la versione 2.30.1 illustrata in un articolo del Maggio 2015. Sul sito italiano di Epson non ho trovato menzione di Image Scan mentre sia la pagina dei download che il manuale reperibili sul sito inglese fanno riferimento alla versione 2.30.1. Navigando ho trovato menzione di Utsushi che, se ho ben capito, dovrebbe sostituire la versione 3 di Image Scan. Non ho però trovato conferma di questa mia supposizione perciò, in qualità di proprietario di uno scanner perfettamente funzionante, fino a contrordine mugugnerò contro Epson che ha rimosso il supporto a Linux.
Reperire il codice sorgente di iscan è al momento un problema. In rete è possibile reperire diverse versioni del programma:
- Codice sorgente di Iscan 2.29.1-5 disponibile su Launchpad.
- Codice sorgente di Iscan 2.30.1 messo a disposizione da Alien Bob, che fornisce anche un pacchetto finito per chi non volesse compilare il codice autonomamente o utilizzare i pacchetti forniti dal sottoscritto.
- Il codice sorgente della versione 0.17.0 di Utsushi. Apparentemente il programma che ha preso il posto di Iscan 3. Maggiori dettagli in merito saranno oggetto di un futuro articolo.
Per comodità includo i collegamenti agli archivi che ho utilizzato per compilare i pacchetti:
- Iscan Data 1.36.0, md5: 787c0734f7f35335c2f74ae21e3b4a11 .
- Iscan 2.30.1 md5: 2ba2043973f149d5a2d0468bf76d0030 .
Nel prosieguo dell'articolo si utilizzerà la versione 2.30.1 di Image Scan.
La Procedura di Compilazione
Una volta ottenuto il codice sorgente è necessario compilarlo per ottenere pacchetti installabili in Linux. La procedura è lineare e relativamente veloce. Per compilare pacchetti per Slackware Linux si fa ricorso a appositi script che hanno estensione *.SlackBuild. Si tratta di semplici script di shell attraverso cui vengono eseguite nell'ordine corretto tutte le operazioni per ottenere i file binari, la documentazione, le icone e la grafica dal codice sorgente e raccogliere il tutto in unico archivio compresso facilmente gestibile. Nel caso di Image Scan serviranno tre script SlackBuild. Copia degli script utilizzati nel prosieguo dell'articolo può essere scaricata dai collegamenti riportati sotto:
- Iscan Data 1.36.0 per Slackware 14.2
- Iscan 2.30.1 per Slackware 14.2.
- Iscan Plug-in per Slackware 14.2
Compilazione di Iscan-data
Il primo pacchetto richiesto in fase di installazione è iscan-data, che contiene file di configurazione e gli script per integrare il supporto a udev. Scaricare l'archivio contenete gli script di compilazione nella directory /tmp ad esempio utilizzando il comando wget:
user@system:~$ cd /tmp user@system:/tmp$ wget http://www.giustetti.net/resource/slackbuild/iscan-2.30.1_14.2/iscan-data.tar.gz
Aprire una shell con privilegi di root e decomprimere l'archivio mediante i comandi:
root@system:/root# cd /tmp root@system:/tmp# tar -zxf iscan-data.tar.gz
Verrà creata una directory chiamata "iscan-data" il cui contenuto coinciderà con quello riportato più sotto:
root@system:/tmp# cd iscan-data root@system:/tmp/iscan-data# ls -la total 40 drwxr-x--- 2 root root 4096 May 6 2015 . drwxr-x--- 5 root root 4096 May 23 2015 .. -rw-r----- 1 root root 373 Nov 26 2010 README -rw-r----- 1 root root 324 May 19 2015 doinst.sh -rwxr----- 1 root root 8536 May 20 2015 iscan-data.SlackBuild -rw-r----- 1 root root 550 May 6 2015 iscan-data.info -rw-r----- 1 root root 817 May 6 2015 slack-desc -rw-r----- 1 root root 284 May 6 2015 usb_id.patch
Il file iscan-data.info contiene l'indirizzo url da cui scaricare il codice sorgente del programma ed un valore di checksum, il parametro MD5SUM, attraverso cui verificare l'integrità dell'archivio scaricato.
Si proceda scaricando il file contenente il codice sorgente nella directory /tmp/iscan-data e si esegua una verifica di consistenza:
root@system:/tmp/iscan-data# md5sum iscan-data_1.36.0-1.tar.gz 787c0734f7f35335c2f74ae21e3b4a11 iscan-data_1.36.0-1.tar.gz
Se il valore reso dal comando non corrispondesse con quello contenuto nel file iscan-data.info, l'archivio scaricato è probabilmente corrotto ed è necessario procurarsene una copia integra.
Supponendo che il controllo sia stato superato con successo si proceda configurando lo script iscan-data.Slackbuild. È necessario impostare i parametri presenti all'inizio del file perchè siano congruenti con l'archivio contenente il codice sorgente. Si apra il file con un elaboratore di testo e si verifichi che il parametro VERSION riporti la medesima versione dell'archivio scaricato. Le variabili dovrebbero essere impostate come segue:
PRGNAM="iscan-data"
VERSION=${VERSION:-"1.36.0-1"}
VERSION_SHORT=`echo ${VERSION} | awk -F\- '{ print $1 }'`
BUILD=${BUILD:-2}
Le le caratteristiche del sistema su cui si esegue la compilazione verranno invece impostate dallo script stesso durante l'esecuzione. Ultimata la configurazione salvare lo script ed uscire dal programma di elaborazione testi. si può procedere con la compilazione del pacchetto txz eseguendo i comandi:
root@system:/tmp/iscan-data# chmod a+rx iscan-data.SlackBuild root@dsystem:/tmp/iscan-data# ./iscan-data.SlackBuild
Il primo comando assegna allo script di compilazione i permessi di esecuzione, il secondo lo esegue. Lo script provvederà ad eseguire tutti i passi necessari a creare un nuovo pacchetto ed a salvarlo nella directory /tmp. Per installare il pacchetto si eseguano i comandi:
root@system:/tmp/iscan-data# cd /tmp root@system:/tmp# installpkg iscan-data-1.36.0-i486-1_sg.txz per architetture AMD / Intel a 32 bit.
oppure
root@system:/tmp# installpkg iscan-data-1.36.0-x86_64-1_sg.txz per architetture AMD / Intel a 64 bit.
e ancora
root@system:/tmp# installpkg iscan-data-1.36.0-arm-1_sg.txz per architetture Arm.
Ovviamente in tutti i casi saranno necessari i privilegi di root.
Compilazione di Iscan
La medesima procedura potrà essere impiegata per preparare il pacchetto di Image Scan 2.30.1. Si scarichi l'archivio contenente gli script di compilazione nella directory /tmp:
user@system:~$ cd /tmp user@system:/tmp$ wget http://www.giustetti.net/resource/slackbuild/iscan-2.30.1_14.2/iscan.tar.gz
Aprire una shell con privilegi di root e decomprimere l'archivio mediante i comandi:
root@system:/root# cd /tmp root@system:/tmp# tar -zxf iscan.tar.gz
Verrà creata una directory di nome "iscan". Il cui contenuto coinciderà con quello riportato più sotto:
root@system:/tmp# cd iscan root@system:/tmp/iscan# ls -la total 52 drwxr-xr-x 2 root root 4096 Jul 21 00:24 . drwxr-xr-x 5 root root 4096 Jul 21 00:24 .. -rw-r----- 1 root root 868 Jul 10 2010 README -rw-r----- 1 root root 112 May 19 2015 doinst.sh -rwxr----- 1 root root 12382 Jun 25 00:26 iscan.SlackBuild -rw-r----- 1 root root 185 May 3 2009 iscan.desktop -rw-r----- 1 root root 419 May 6 2015 iscan.info -rw-r----- 1 root root 340 Dec 16 2012 iscan_png.patch -rw-r----- 1 root root 1602 Jun 24 22:47 iscan_pngstream.patch -rw-r----- 1 root root 774 May 6 2015 slack-desc
Nella directory sono presenti due patch. La prima iscan_png.patch necessaria per compilare un pacchetto per Slackware 14.1 mentre la più recente iscan_pngstream.patch risolve problemi di compatibilità con la versione della libreria png distribuita con Slackware 14.2. Lo script utilizerà l'una o l'altra in base alla versione della libreria png installata sul sistema. Un ringraziamento a Fabio Castelli di Archlinux per la seconda patch.
Nuovamente l'indirizzo da cui scaricare l'archivio contenente il codice sorgente del programma ed il checksum relativo possono essere reperiti nel file avente estensione *.info: iscan.info.
Dopo aver scaricato tutto quanto nella directory /tmp/iscan e aver eseguito un controllo di consistenza:
root@system:/tmp/iscan# md5sum iscan_2.30.1-1.tar.gz 2ba2043973f149d5a2d0468bf76d0030 iscan_2.30.1-1.tar.gz
Si dovranno impostare i valori dei parametri nella parte iniziale dello script iscan.SlackBuild. Tali valori dovrebbero essere impostati come segue:
BUILD=${BUILD:-2}
JOB_COUNT=${JOB_COUNT:-" -j4 "}
PRGNAM="iscan"
VERSION=${VERSION:-"2.30.1-1"}
VERSION_SHORT=`echo ${VERSION} | awk -F\- '{ print $1 }'`
L'architettura verrà impostata direttamente dallo script durante l'esecuzione. Ultimata la configurazione si potrà creare ed installare il pacchetto eseguendo i comandi:
root@system:/tmp/iscan# chmod a+rx iscan.SlackBuild root@system:/tmp/iscan# ./iscan.SlackBuild root@system:/tmp/iscan# cd /tmp root@system:/tmp# installpkg iscan-2.30.1-i486-2_sg.txz per architetture AMD / Intel a 32 bit.
oppure
root@system:/tmp# installpkg iscan-2.30.1-x86_64-2_sg.txz per architetture AMD / Intel a 64 bit.
e ancora
root@system:/tmp# installpkg iscan-2.30.1-arm-2_sg.txz per architetture Arm.
Conversione dell'Archivio Contenete il Plug-in
Il terzo ed ultimo componente da installare è il plug-in binario che mette in comunicazione il programma con lo scanner collegato al computer. Non tutti gli scanner Epson hanno bisogno di plug-in: alcuni funzionano nativamente con Linux, mentre altri come il v200 o il v330 non possono farne a meno. I plug-in sono distribuiti da Epson solo in forma binaria nel formato rpm delle distribuzioni Red Hat e derivate che deve pertanto essere convertito. Il file cambia con il variare dell'architettura e dello scanner posseduto. Nel caso dello scanner Epson "Perfection v200 Photo" i pacchetti forniti sono: iscan-plugin-gt-f670-2.1.0-3.c2.i386.rpm e iscan-plugin-gt-f670-2.1.0-3.c2.x86_64.rpm per architetture a 32 e 64 bit rispettivamente.
Scaricare l'archivio contenente gli script di compilazione nella directory /tmp e decomprimerlo:
user@system:~$ cd /tmp user@system:/tmp$ wget http://www.giustetti.net/resource/slackbuild/iscan-2.30.1_14.2/iscan-plugin.tar.gz
Avviare una shell con privilegi di root e decomprimere l'archivio mediante i comandi:
root@system:/root# cd /tmp root@system:/tmp# tar -zxf iscan-plugin.tar.gz
Verrà creata una directory di nome "iscan-plugin". Il cui contenuto coinciderà con quello riportato più sotto:
root@system:/tmp# cd iscan-plugin root@system:/tmp/iscan-plugin# ls -la ls -la total 36 drwxr-xr-x 2 root root 4096 Jul 22 20:33 ./ drwxr-xr-x 5 root root 4096 Dec 20 2013 ../ -rw-r----- 1 root root 1710 May 6 2015 README -rw-r----- 1 root root 237 Jun 24 22:35 doinst.sh -rwxr----- 1 root root 9128 May 23 2015 iscan-plugin.SlackBuild* -rw-r----- 1 root root 2582 Dec 20 2013 iscan-plugin.info -rw-r----- 1 root root 819 Jul 11 2010 slack-desc
Nel file con estensione *.info è possibile reperire i link da cui scaricare i pachetti rpm ed i checksum con cui accertarsi della loro congruenza.
Nel seguito verranno eseguite le operazioni di controllo, conversione ed installazione sia per la versione a 32 che a 64 bit del plug-in. Per quanto concerne le architetture a 32 bit le operazioni da eseguirsi sono:
root@system:/tmp/iscan-plugin# md5sum iscan-plugin-gt-f670-2.1.2-1.i386.rpm f53dec00730d3d28051edd1fb869de22 iscan-plugin-gt-f670-2.1.2-1.i386.rpm
I valori da assegnare ai parametri dello script iscan-plugin.SlackBuild:
ARCH=${ARCH:-"i386"}
BUILD=${BUILD:-2}
PRGNAM="iscan-plugin"
PKGNAM=${PRGNAM}
# Select one among gt-f670, gt-f700, gt-f720, gt-1500, gt-s80, gt-s600, gt-x750
# gt-x770 or perfection-v330
PLUGIN="gt-f670"
RPM_VERSION="1" # This is the build number used by Epson Fedora Rpm
TAG=${TAG:-"_sg"}
VERSION="2.1.2"
Impostati i quali si potranno eseguire le operazioni abituali:
root@system:/tmp/iscan-plugin# chmod a+rx iscan-plugin.SlackBuild root@system:/tmp/iscan-plugin# ./iscan-plugin.SlackBuild root@system:/tmp/iscan-plugin# cd /tmp root@system:/tmp# installpkg iscan-plugin-gt-f670-2.1.2-i386-1_sg.txz
Nel caso di architetture a 64 bit invece:
root@system:/tmp/iscan-plugin# md5sum iscan-plugin-gt-f670-2.1.2-1.x86_64.rpm 8bb27b1f56823d1ec896d4ae7e3ba8f6 iscan-plugin-gt-f670-2.1.2-1.x86_64.rpm
I valori da assegnare ai parametri dello script iscan-plugin.SlackBuild:
ARCH=${ARCH:-"x86_64"}
BUILD=${BUILD:-2}
PRGNAM="iscan-plugin"
PKGNAM=${PRGNAM}
# Select one among gt-f670, gt-f700, gt-f720, gt-1500, gt-s80, gt-s600, gt-x750
# gt-x770 or perfection-v330
PLUGIN="gt-f670"
RPM_VERSION="1" # This is the build number used by Epson Fedora Rpm
TAG=${TAG:-"_sg"}
VERSION="2.1.2"
Impostati i quali si potranno eseguire le operazioni di pacchettizazione abiutali:
root@system:/tmp/iscan-plugin# chmod a+rx iscan-plugin.SlackBuild root@system:/tmp/iscan-plugin# ./iscan-plugin.SlackBuild root@system:/tmp/iscan-plugin# cd /tmp root@system:/tmp# installpkg iscan-plugin-gt-f670-2.1.2-x86_64-1_sg.txz
Non esiste invece un pacchetto rpm per architettura arm. I possessori di dispositivi basati su tale architettura non potranno pertanto collegare ed utilizzare lo scanner.
Compilazione in un Ambiente Chroot
Gli script consentono di compilare pacchetti funzionanti anche in un ambiente chroot. Un vantaggio immediato consiste nella possibilità di compilare pacchetti per la versione 32 bit di slackware in un ambiente multi-libreria opportunamente configurato. Ovviamente sono necessari alcuni piccoli accorgimenti. Quando si avvia uno script SlackBuild in un ambiente chroot a 32 bit è obbligatorio passare allo script stesso l'architettura per cui operare altrimenti verrà automaticamente rilevata quella del sistema principale. La sintassi corretta per lanciare gli script è: export MARCH="i486"; ./<nome_script>. Per cui i comandi dovranno essere modificati come segue:
- export MARCH="i486"; ./iscan-data.SlackBuild
- export MARCH="i486"; ./iscan.SlackBuild
Non cambia invece la configurazione nè la procedura di installazione.
Configurazione del Sistema
Nel caso in cui l'installazione dei pacchetti abbia seguito l'ordine suggerito: isca-data, iscan, iscan-plugin, non è necessario eseguire alcuna configurazione. Le regole per il sottosistema udev unite al contenuto del file /var/lib/iscan/interpreter sono sufficienti per riconoscere il dispositivo collegato e caricarvi il firmware adatto.
In caso di problemi il file contenente le regole per udev, /etc/udev/rules.d/60-iscan.rules, può essere generato ex novo eseguendo il comando:
/usr/lib/iscan-data/make-policy-file --force --mode udev --out-file /etc/udev/rules.d/60-iscan.rules
Mentre il file /var/lib/iscan/interpreter può essere modificato manualmente inserendo le librerie specifiche per lo scanner collegato al computer e commentando tutte le altre.
Iscan e Sane / Xsane
Sane è l'acronimo di Scanner Access Now Easy ed è il back-end per gli scanner utilizzato da Linux ed altri Unix. Gli scanner Epson possono essere utilizzati con Sane impostando l'interprete utilizzato nel file /etc/sane.d/dll.conf. Nel caso dello scanner Perfection v200 photo ad esempio bisogna aggiungere epkowa all'elenco. Per alcuni modelli potrebbe essere inoltre necessario aggionrare il file /etc/sane.d/epkowa.conf. Nella quasi totalità dei casi l'operazione risulta superflua, ma se lo scanner non venisse riconosciuto correttamente dal sistema è possibile specificare la tipologia dell'apparecchio: scsi oppure usb e, nel caso di scanner usb, l'identificatore del prodotto nel formato:
usb <Identificatore USB del produttore> <Identificatore USB del prodotto>
I dati possono essere ottenuti lanciando il comando lsusb quando l'apparecchio acceso è collegato al computer. Epson è identificato dalla stringa 0x04b8. La riga da aggiungere per lo scanner Epson Perfection 1650 ad esempio è:
usb 0x04b8 0x0110
Iscan e Gimp
Image Scan può essere configurato come plug-in di Gimp, il software di elaborazione delle immagini più usato sotto Linux. L'integrazione consente di lanciare scansioni direttamente dall'interfaccia di Gimp senza dover aprire un programma di acquisizione specifico. L'operazione risulta molto semplice e consiste nella creazione alcuni collegamenti. Nel caso della versione 2.x di Gimp, la versione inclusa in Slackware 14.2 è la 2.8.16, si avvii una shell con privilegi di root e si esegua il comando:
root@system:/root# ln -s /usr/bin/iscan `gimptool-2.0 --gimpplugindir`/plug-ins/
Nel caso della obsoleta versione 1.2 invece il comando da eseguire sarà:
root@system:/root# ln -s /usr/bin/iscan `gimptool --gimpplugindir`/plug-ins/
Esempi
Seguono le scansioni di un paio di immagini eseguite con il programma Image Scan funzionante su una distribuzione Slackware Linux a 64 bit.
Conclusioni
Nel corso dell'articolo è stato illustrato come installare il programma Image Scan per Linux sulla recente versione 14.2 di Slackware. Le istruzioni e gli script forniti possono essere utilizzati con piccole modifiche per funzionare su architettura i486, amd64 oppure arm.
Di seguito è possibile reperire i link ai pacchetti Image Scan 2.30.1 e Image Scan Data 1.36.0, distribuiti nella speranza che possano essere utili:
- i486
- amd64
- arm
I plug-in sono distribuiti con una licenza diversa dalla GPL pertanto si rimanda al sito di Epson per effettuarne il download.
Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.
Link esterni
- Home page di Epson
- Pagina dei download di Epson
- ARM
- Home page del progetto Raspberry Pi
- Home page di Slackware
- Home page di Slackware per Architettura ARM
Lingue: English - Italiano