Repository 32bit  Forum
Repository 64bit  Wiki

Configurare lo scanner via libusb e hotplug in Slackware 10.2 (Kernel 2.6.x)

Da Slacky.eu.
Versione delle 12:42, 11 set 2006, autore: Slacky (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)


 Questo mini Howto spiega come configurare lo scanner via libusb e hotplug su Gnu/Linux Slackware

Indice

Il supporto libusb

Nel kernel 2.6, fino al 2.6.2 è ancora presente il supporto scanner proprio del vecchio kernel 2.4.x, ma è dichiarato obsoleto. In effetti, dalla versione 2.6.3 esso è stato eliminato. Come allora configurare uno scanner USB ? Esso è governato da libusb presente di default in Slackware o scaricabile dal sito: http://libusb.sourceforge.net Nel caso non fosse presente, si può installare il sorgente o creare un comodo pacchetto tgz compilandolo a mano o con checkinstall. Naturalmente, nel kernel è necessario anche aver abilitato la voce "Support for USB" e il driver appropriato per il proprio chipset (per verificare se si tratta di OHCI oppure di UHCI) è sufficente controllare le uscite che da in output sulla console il comando # lspci -v).

Il rilevamento dello scanner

# sane-find-scanner

e teniamo conto di tre dati che ci fornisce: VENDOR, PRODUCT e la porta libusb dove lo scanner viene individuato (un doppio numero di tre cifre separato da un doppio punto). Nel mio caso, possedendo un Epson Perfection 1200 U, trovo che il VENDOR è indicato come 0x04b8, il PRODUCT come 0x0104, la localizzazione come libusb:002:002.

Il riconoscimento dello scanner

Per far riconoscere lo scanner, è necessario adesso effettuare le seguenti operazioni:

1) in /etc/sane.d/dll.conf commentare tutte le righe tranne quella riferita al nostro scanner (nel mio caso, "epson") ed eventualmente tranne la prima riga del file, con la voce "net", se intendiamo usare lo scanner in rete.

2) in /etc/sane.d/epson.conf commentare entrambe le righe

 usb /dev/usb/scanner0
 usb /dev/usbscanner0

in quanto, col nuovo kernel, lo scanner non è più governato attraverso i dispositivi di /dev. Aggiungere invece la localizzazione su libusb suggeritaci prima da # sane-find-scanner, come segue:

usb libusb:002:002.

Ora il comando

# scanimage -L

dovrebbe riconoscere il nostro scanner.

L'uso dello scanner

Siamo ora pronti a usare lo scanner da root, ma necessitiamo del software, a cui accenneremo solo. Si può mantenere la versione di Sane presente in Slackware, che include sia il backend sia il frontend, oppure eliminarlo (anche se in questo caso KWord non lo trova pi per l'immissione diretta di immagini) e installare la versione maggiore. È necessario, in questo caso, scaricare i sorgenti di sane-backends e di sane-fronte-end dai siti: http://www.sane-project.org o ftp://ftp.mostang.com/pub/sane installandoli con la solita procedura. Si deve solo fare attenzione, nel momento in cui si installa sane-backends, ad abilitare il supporto per le libusb col comando

./configure --enable-libusb

Driver specifici con cui aggiornare Sane sono reperibili all'indirizzo: http://freecolormanagement.com/sane/index.html Tra i vari front-end troviamo l'ottimo Xsane e Kooka e, in particolare per la grafica, GIMP, molto pi potenti del limitato XScanImage già contenuto in Sane. Il primo richiede le librerie GTK+, per cui gira sotto Gnome, ma gira benissimo anche sotto KDE se sono state installate semplicemente le GTK+. Le pi recenti versioni di Kooka, che invece gira sotto KDE, richiedono libgphoto, da installare prima di Kooka, che in questo modo le riconosce. La funzione di OCR richiede anche dei programmi specifici, come gocr oppure ocrad. Essi tuttavia sono in grado di effettuare il riconoscimento e di salvare in formato "solo testo", facendo andare perduta la formattazione originale (un noto limite dei programmi di OCR open source attualmente disponibili). I suddetti programmi sono scaricabili dai seguenti siti: Xsane: http://www.xsane.org/xsane-download.html Kooka: http://www.kde.org/apps/kooka/download ligphoto: http://www.gnu.org/directory/webauth/iview/libgphoto.html gocr: http://jocr.sourceforge.net/download.html ocrad: http://savannah.nongnu.org/download/ocrad

I permessi agli user

A questo punto possiamo usare tutte le applicazioni dello scanner, ma solo da root. Come renderne possibile l'utilizzo anche da user ? Per evitare ogni volta la scomoda procedure di conferire i permessi da root e quindi rientrare come user, si può automatizzare il tutto. Come premessa è necessario aver abilitato l'hotplug nel kernel. 2)Per consentire l'abilitazione degli utenti, creare innanzitutto un gruppo scanner e aggiungere in /etc/group i nomi degli utenti autorizzati. La riga risulterà dunque:

scanner::10x:root,userx, usery,..

Ovvio che il numero del gruppo è relativo ai gruppi che avete già ma comunque superiore a 100. Nel mio caso è 102 (scanner::102:root,sakk,sabi,.., dove sakk sono io e sabi è mia moglie). 3) Consentire il conferimento dei permessi a tutti gli utenti del gruppo scanner. È possibile farlo automaticamente mediante uno script. Con un qualsiasi editor di testo (emacs, KWrite ecc.) redigere il seguente script:

#!/bin/bash
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
chown root "${DEVICE}"
chgrp scanner "${DEVICE}"
chmod 660 "${DEVICE}"
fi

Salvare lo script come /etc/hotplug/usb/epson_scanner e dare un chmod a+x per renderlo eseguibile senza problemi. Quando lanciamo Slackware, hotplug andrà eseguire lo script, conferendo automaticamente i permessi a tutti gli utenti del gruppo scanner. Può anche capitare che al riavvio della macchina e accendendo lo scanner le libusb cambino e lo scanner non funzioni più. Questo, tengo a precisare è un ottimo articolo e non voglio togliere nulla al bravo Mauro Sacchetto, che per me è stata un ottima guida per far funzionare il mio scanner con il kernel 2.6.x Comunque ho trovato in rete un HowTo che rende indipendente l'avvio dello scanner Epson Perfection 1200U dalle libusb rilevate con il comando:

#sane-find-scanner

Una volta che è stato rilevato il device con le stringhe in esadecimale, nel nostro caso:

VENDOR 0x04b8 e PRODUCT 0x0104

Queste basta sostituirle nel file: /etc/sane.d/epson.conf

# For libusb support for unknown scanners use the following command 
# usb product ID device ID 
# e.g.: 
usb 0x04b8 0x0104

Una volta fatto questo dovremmo essere a posto, il nostro scanner, dovrebbe funzionare indipendentemente dall valore delle libusb con il nostro kernel 2.6.x. Per esempio io l'ho testato con il 2.6.11 e con il 2.6.15.4 successivamente e non ho avuto problemi di sorta. Con questo vi saluto, buone scansioni con il vostro scanner :-).


Mauro Sacchetto == 2004
Revisionato by FineX == 2006
Strumenti personali
Namespace

Varianti