Metto a disposizione un mini HOWTO sugli scanner CanoScan
FB630P, FB330P, N640P e N340P su porta parallela, inviatomi
da Daniele Niccolai. Lo trovate
qui
in formato testo.
NOTA: Finalmente è stata inserita nel kernel 2.4.21
la patch di cui si fa uso in questa guida. Ciò
significa che, se avete un distribuzione Linux con una
versione di kernel pari o superiore a questa, non sarà
più necessario seguire l'intera guida qui esposta.
Ora il vostro sistema Linux è in grado, senza alcuna
operazione particolare, di lavorare con scanner (o altri
dispositivi) collegati ad una porta parallela. Saltate al
punto 4 per vedere come verificare il
funzionamento del vostro dispositivo.
Questa guida mostra come è possibile configurare il
proprio sistema Linux per l'uso di uno
scanner
collegato alla porta parallela del PC. Oggi questi tipi
di scanner vengono considerati un po' obsoleti (la
maggior parte degli scanner in vendita prevedono il
collegamento alla porta USB) ma comunque offrono prestazioni
più che sufficienti per un impiego domestico. Infatti
la velocità di acquisizione dell'immagine non
è vincolata tanto dal tipo di collegamento scanner-PC
(ricordo comunque che la velocità teorica di una porta
parallela tipo EPP è al massimo di 2Mbit/s contro i
12Mbit/s di quella USB), ma piuttosto dalla meccanica e
l'elettronica dello scanner stesso.
Quindi se avete uno scanner USB questa guida non vi
servirà: è infatti sufficiente installare il
programma SANE e se avete un kernel della serie 2.4,
funzionerà facilmente.
Veniamo ora al dunque: prenderò in esame lo scanner
Microtek Phantom 330 CX su di un sistema Linux
Mandrake 8.0 con kernel 2.4.3, SANE backends 1.0.7 e XSANE
0.84.
Innanzitutto diciamo che
SANE (
Scanner
Access
Now
Easy) backends rappresenta i
driver che sono necessari al funzionamento dello scanner
(verificate se il vostro modello è supportato) mentre
XSANE fornisce l'interfaccia grafica che vi
permette di utilizzare facilmente lo scanner nel desktop
environment (KDE, Gnome, etc.); molto probabilmente tali
software sono già inclusi nella distribuzione Linux in
vostro possesso.
Nel caso, SANE potete trovarlo a
http://panda.mostang.com/sane/ mentre XSANE sul
sito ufficiale del progetto
http://xsane.org.
Non è tutto però, manca ancora la cosa
più importante:
la patch da applicare al kernel
che permette al sistema di rilevare lo scanner sulla porta
parallela. Infatti, semplificando, si può dire che
all'interno dello scanner è integrata una
interfaccia SCSI che però comunicherà con il PC
attraverso la porta parallela. La patch aggiornerà il
kernel permettendogli di caricare un modulo esterno che
abiliterà questo nuovo tipo di comunicazione su porta
parallela.
Se vi state chiedendo perchè tale patch non sia stata
ancora inclusa in kernel recenti, la risposta è
prevedibile: aspettiamo Linus ;-)
Dunque procediamo:
1) Molti scanner su porta parallela (tra cui il
Phantom 330) funzionano grazie ai moduli
ppSCSI e
onscsi. Scarichiamo quindi la patch in base alla
versione del nostro kernel. Io userò la
linux-ppscsi.patch,
che potete scaricare localmente.
Per altre versioni andare a
http://people.redhat.com/twaugh/parport.
2) Applichiamo la
patch, da superutente, dopo averla copiata in
/usr/src/linux
. Nel caso non trovaste tale
directory, vuol dire che NON avete installato i pacchetti RPM
che contengono i sorgenti del kernel della vostra
distribuzione. Fatelo ORA. In genere hanno un nome del tipo
"kernel-source.versione.rpm"; puo' tornare
utile installare anche la documentazione
"kernel-doc.versione.rpm".
Date il seguente comando:
patch -p1 -b -z OLD <
linux-ppscsi.patch
Dovreste vedere qualcosa del tipo:
[root@localhost linux]# patch -p1 -b -z OLD <
linux-ppscsi.patch
patching file drivers/scsi/Config.in
Hunk #1 succeeded at 115 with fuzz 2 (offset 5 lines).
patching file drivers/scsi/Makefile
Hunk #1 succeeded at 128 with fuzz 2 (offset -3 lines).
patching file drivers/scsi/epsa2.c
patching file drivers/scsi/epst.c
patching file drivers/scsi/onscsi.c
patching file drivers/scsi/ppscsi.c
patching file drivers/scsi/ppscsi.h
patching file drivers/scsi/sparcsi.c
patching file drivers/scsi/t348.c
patching file drivers/scsi/t358.c
patching file drivers/scsi/vpi0.c
patching file drivers/scsi/vpi2.c
Cosa è successo: i files elencati sono stati patchati
e gli originali, se modificati, rinominati aggiungendo la
parola OLD alla fine.
NOTA: applicare patch è un'operazione tediosa che
in alcuni casi può portare a diversi errori; se il
sorgente del nostro kernel differisce troppo da quello sul
quale è stata sviluppata la patch, questa non
può essere applicata correttamente. E' quindi
molto importante fare attenzione ad eventuali messaggi di
errore. Un esempio tipico è il seguente:
8 out of 8 hunks FAILED -- saving rejects to file
include/asm-i386/atomic.h.rej
.
In questo caso è possibile esaminare il file di
estensione
rej (sta per reject) che riporta le parti
della patch che sono state rifiutate. Consulate le man pages
di
patch
per avere maggiori informazioni e date
un'occhiata al
punto 4 della mia guida alla compilazione
del kernel.
In definitiva scegliere con cura la patch in base alla
versione del proprio kernel rimane la cosa più
importante da fare. Eventualmente visitate
http://www.torque.net/parport/ppscsi.html per
un'ulteriore patch (a me ha dato problemi).
AGGIORNAMENTO MANDRAKE 9.0:
La patch qui descritta è ancora necessaria anche con
kernel recenti, come il 2.4.19 che si trova sulla Mandrake
9.0. In questo caso, l'operazione di patching fallisce
sui files
Config.in
e
Makefile
,
rendendone la compilazione impossibile. Comunque è
piuttosto semplice modificarli manualmente inserendovi le
differenze trovate e memorizzate nei files reject. Per
comodità metto in locale entrambi i files sopracitati
già patchati; in questo modo, è possibile
copiarli direttamente in
/usr/src/linux/drivers/scsi/
dopo aver applicato
la patch. Ricordate di farvi una copia di backup degli
originali prima di procedere.
Makefile Config.in
3) Ora che il kernel è stato patchato a dovere,
deve essere compilato avendo cura di abilitare:
- il supporto SCSI
scsi_mod e quello generico
sg
- i moduli per la porta parallela
parport e
parport_pc
- i moduli
ppscsi e
onscsi
Compilate quindi kernel e moduli, installateli e riavviate il
sistema.
NOTA: se non sapete come eseguire queste operazioni, potete
consultare la
guida che ho approntato appositamente
per la
compilazione del kernel. E' piuttosto
essenziale e sicuramente potete trovarne di più
esaustive, ma è stata pensata per principianti che
cercano semplicità e rapidità nel raggiungere
lo scopo. La trovate nel menù principale, sotto la
voce Linux naturalmente! Anche la vostra distribuzione
conterrà sicuramente una guida in proposito,
consultatela.