Dimensione: 13566
Commento:
|
Dimensione: 13558
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 17: | Linea 17: |
La risposta a tale comando deve essere del tipo: | La risposta a tale comando deve essere : |
BR Indice() VersioniSupportate(hardy)
Evdev
Evdev è un modulo per la gestione generica delle periferiche di input di X.org. Permette di gestire qualsiasi tipo di periferica di input e utilizza direttamente i file descrittori del tipo /dev/input/event*, permettendo un'accesso più diretto alle periferiche; è così possibile sfruttare maggiormente queste, senza subire le limitazioni imposte dall'accesso tramite altri file come /dev/input/mouse*, /dev/input/kbd* o /dev/input/js*.
xserver-xorg-input-evdev
In Ubuntu 8.04, Hardy Heron, è disponibile la versione 1.2.0 di questo modulo. Per essere sicuri di averlo installato, digitare in un terminale
sudo dpkg -s xserver-xorg-input-evdev | grep Status
La risposta a tale comando deve essere :
Status: install ok installed
Purtroppo il modulo in questo pacchetto è afflitto da alcuni problemi, come riferito in [https://bugs.launchpad.net/ubuntu/hardy/+source/xserver-xorg-input-evdev questa pagina] su Launchpad. Per ovviare a questo, attualmente il metodo migliore è ricompilare tale modulo, in modo da averne una versione più recente. Apparentemente le versioni a partire dalla 1.99.2 non presentano più questi problemi.
Ricompilazione di xf86-input-evdev
Nella seguente procedura si fa riferimento in più punti all'utilizzo di un terminale. Perchè la procedura funzioni, per come è strutturata la guida, è necessario far sempre uso dello stesso terminale virtuale. |
Per cominciare è utile creare una cartella di lavoro, dando in un terminale i comandi:
cd ~ mkdir evdev cd evdev
È ora necessario ottenere il pacchetto con i sorgenti. Al momento della stesura di questa guida, la versione più recente di questo modulo è la 2.0.4, e di seguito tratteremo questa, ma la guida dovrebbe funzionare anche per versioni anteriori o posteriori. Per scaricare ed estrarre i sorgenti, digitare:
wget ftp://ftp.x.org/pub/individual/driver/xf86-input-evdev-2.0.4.tar.bz2 tar -jxvf xf86-input-evdev-2.0.4.tar.bz2 cd xf86-input-evdev-2.0.4
Per la compilazione saranno anche necessari alcuni strumenti e diverse librerie. Per ottenere tutto il necessario digitare:
sudo apt-get update sudo apt-get install build-essential sudo apt-get build-dep xserver-xorg-input-evdev
Per installare il modulo vi sono diversi metodi metodi, qui tratteremo l'installazione diretta e la pacchettizzazione; l'utente può seguire uno o l'altro a sua scelta.
Indifferentemente dal percorso scelto, è necessario rimuovere il pacchetto xserver-xorg-input-evdev con il comando:
sudo apt-get remove xserver-xorg-input-evdev
Qualora questo rimuova anche altri pacchetti, è bene segnarsi il nome di questi, anche se si tratterà prevalentemente di meta-pacchetti.
L'installazione diretta è più veloce e più facile, ma sparge in maniera incontrollata file all'interno del filesystem. La pacchettizzazione invece è più laboriosa, ma permette di utilizzare il gestore dei pacchetti, in modo da mantenere più pulita la vostra installazione di Ubuntu. |
Installazione diretta
Per configurare, compilare ed installare il modulo è sufficiente eseguire nel terminale:
./configure --prefix=/usr make sudo make install
Verrà chiesto l'inserimento della password dell'amministratore, poiché è necessario scrivere file in cartelle di sistema.
Qualora si necessario rimuovere questo modulo, bisogna eseguire i comandi:
sudo rm /usr/lib/xorg/modules/input/evdev_drv.* sudo rm /usr/share/man/man4/evdev.4
Qualora fosse necessario reinstallare il pacchetto xserver-xorg-input-evdev è indispensabile rimuovere prima i file del modulo manualmente come descritto sopra. |
Completata l'installazione è anche possibile rimuovere la cartella di lavoro senza problemi, col comando:
cd ~ rm -r evdev
Pacchettizzazione
Il pacchetto che verrà creato con questa procedura non rispetterà gli standard dei pacchetti Debian e Ubuntu, per motivi di inclusione di licenze e compatibilità con le diverse architetture. Funzionerà tuttavia completamente sul computer su cui è stato creato, ma non potrà essere ridistribuito, o portato su altri computer o sistemi diversi da Ubuntu 8.04. |
Per pacchettizzare correttamente il modulo, ci appoggeremo ad un'altra cartella di lavoro con alcune sottocartelle. Nel crearla conviene darle un nome corretto in base al sistema operativo in uso e alla versione del modulo che si sta installando. Ad esempio:
mkdir -p ../xserver-xorg-input-evdev_1.2.0-homebuild0_i386/usr/lib/xorg/modules/input mkdir -p ../xserver-xorg-input-evdev_1.2.0-homebuild0_i386/usr/share/man/man4 mkdir -p ../xserver-xorg-input-evdev_1.2.0-homebuild0_i386/DEBIAN
Dove "1.2.0" va sostituito con la versione che si sta compilando e se si utilizza un sistema a 64 bit, "i368" va sostituito con "amd64". Passiamo ora alla configurazione, e compilazione del programma:
./configure --prefix=/usr make
Ora il metodo più veloce per proseguire è installare regolarmente il modulo e successivamente spostare i file installati nella cartella creata prima:
sudo make install sudo mv /usr/lib/xorg/modules/input/evdev_drv.* ../xserver-xorg-input-evdev_1.2.0-homebuild0_i386/usr/lib/xorg/modules/input/ sudo mv /usr/share/man/man4/evdev.4 ../xserver-xorg-input-evdev_1.2.0-homebuild0_i386/usr/share/man/man4/
Ora che i file necessari sono correttamente posizionati, occorre creare un file descrittore del pacchetto in ~/evdev/xserver-xorg-input-evdev_1.2.0-homebuild0_i386/DEBIAN/control. Per creare ed editare questo file si può usare l'editor di testo preferito. Se si utilizza Gedit:
gedit ../xserver-xorg-input-evdev_1.2.0-homebuild0_i386/DEBIAN/control
Il file dovrà contenere le seguenti righe di testo:
Package: xserver-xorg-input-evdev Version: 1:1.2.0-homebuild0 Architecture: i386 Depends: libc6 (>= 2.7-1), xserver-xorg-core (>= 2:1.4) Replaces: xserver-xorg (<< 6.8.2-35) Provides: xserver-xorg-input-2 Section: x11 Priority: optional Description: X.Org X server -- evdev input driver This package provides the driver for input devices using evdev, the Linux kernel's event delivery mechanism. This driver allows for multiple keyboards and mice to be treated as separate input devices, and matched on physical attributes such as which USB port they're connected to. . Note that this driver is different from Protocol "evdev" in the keyboard and mouse drivers, as shipped with Ubuntu 4.10 and 5.04, and Debian 3.1. . More information about X.Org can be found at: <URL:http://www.X.org> <URL:http://xorg.freedesktop.org> <URL:http://lists.freedesktop.org/mailman/listinfo/xorg> . This package is built from the X.org xf86-input-evdev driver module.
Anche in questo caso bisogna sostituire "1.2.0" con la versione del modulo che si sta compilando e, se si una un sistema a 64bit, "amd64" a "i368". Salvare il file, e uscire dal programma. Ora è necessario creare il pacchetto:
sudo dpkg -b ../xserver-xorg-input-evdev_1.2.0-homebuild0_i386 ../../xserver-xorg-input-evdev_1.2.0-homebuild0_i386.deb
Ovviamente bisogna apportare le solite modifiche ai nomi dei file e delle cartelle. Dovrebbe essere stato creato nella vostra home un file chiamato xserver-xorg-input-evdev_1.2.0-homebuild0_i386.deb. Per installare il modulo basta fare un doppio click su questo pacchetto autoinstallante. Finita questa procedura si può rimuovere la cartella di lavoro:
cd ~ sudo rm -r evdev
È anche possibile rimuovere il pacchetto .deb creato, tuttavia è consigliabile tenerne una copia, qualora fosse necessario reinstallarlo. Ora inoltre possono essere installati i pacchetti che erano stati automaticamente rimossi all'inizio. Qualora fosse necessario disinstallare questo modulo, sarà sufficiente dare il comando:
sudo apt-get remove xserver-xorg-input-evdev
Identificazione del file descrittore
Per una configurazione basilare della periferica, è sufficiente sapere qual'è il suo file descrittore. Per la maggior parte delle periferiche di acquisizione questo si può scoprire con l'analisi dell'output del comando
sudo ls -l /dev/input/by-id/ | grep event
Ad esempio, volendo configurare un particolare mouse della Logitech, nell'output del comando precedente ci sarà
lrwxrwxrwx 1 root root 9 2008-09-16 12:14 usb-Logitech_Logitech_BT_Mini-Receiver_000761AEA7CD-event-mouse -> ../event2
e quindi il file sarà /dev/input/by-id/usb-Logitech_Logitech_BT_Mini-Receiver_000761AEA7CD-event-mouse. Alcune periferiche non permettono l'identificazione "by-id" e si deve usare quella per percorso. In tal caso il comando per trovare tali periferiche sarà
sudo ls -l /dev/input/by-path/ | grep event
un esempio di queste periferiche sono i joystick su gameport, e in tal caso nell'output ci sarà una riga come
lrwxrwxrwx 1 root root 9 2008-09-16 12:13 pci-gameport0--event-joystick -> ../event6
e allora il file descrittore sarà /dev/input/by-path/pci-gameport0--event-joystick.
Identificando le periferiche "by-path", queste cambieranno file ogni volta che verrà fisicamente cambiata la porta a cui è connessa la periferica. |
Per verificare che il file identificato sia quello corretto si può dare il seguente comando
sudo less -f /dev/input/by-id/nome_file
sostituendo a "nome_file", il nome del file identificato in precedenza. Se muovendo la periferica o premendo i tasti su di essa compaiono caratteri non leggibili sul terminale, vuol dire che il file è stato identificato correttamente, se invece non compare nulla, si è scelto male il file descrittore, oppure il file descrittore è già utilizzato dal modulo evdev. Se non è stato possibile identificate la periferica per id, ma solo per path, allora nel comando precedente va sostituito "by-path" a "by-id".
Configurazione del server grafico
Una volta identificato correttamente il file, è necessario configurare il server grafico affinché lo usi. È quindi necessario editare il file \etc\X11\xorg.conf; è anche bene tenerne una copia di sicurezza:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.pre_evdev sudo gedit /etc/X11/xorg.conf
Se si sta configurando un mouse, una tastiera o un'altra periferica già in uso, bisogna come prima cosa eliminare i riferimenti a questa periferica già presenti. Controllare quindi nella sezione "ServerLayout" e commentare tutte le righe che si riferiscono a quella periferica aggiungendo un "#" all'inizio della riga. Quindi sempre all'interno di questa sezione aggiungere una nuova riga, in modo che assuma il seguente aspetto:
Section "ServerLayout" ... # InputDevice "Mouse0" "CorePointer" InputDevice "MouseEvent0" "CorePointer" InputDevice "KeyboardEvent0" "CoreKeyboard" InputDevice "JoystickEvent0" ... EndSection
Notare inoltre che per i mouse è bene aggiungere la stringa "CorePointer" e per le tastiere "CoreKeyboard". Il testo riportato sopra è solo esemplificativo, non è necessario usare tutte le periferiche di input con il modulo evdev. Ora si deve aggiungere una sezione per questa periferica. In fondo al file aggiungere delle righe come le seguenti:
Section "InputDevice" Identifier "Identificativo" Driver "evdev" Option "Path" "/dev/input/by-id/nome_file" EndSection
Dove "Identificativo va sostituito con quello aggiunto nella sezione "ServerLayout" (ad esempio "KeyboardEvent0") mantenendo le virgolette, e "nome_file" col nome del file che s'è precedentemente trovato.
Configurazione avanzata
L'attuale versione di evdev supporta poche opzioni native, in compenso supporta anche tutte le opzioni di tutti gli altri moduli di input. Ad esempio se si sta configurando una tastiera con evdev, per avere la configurazione italiana, inserire sella sezione "InputDevice" anche una riga che reciti
Option "XkbLayout" "it"
come se si stesse configurando la tastiera con il modulo kbd. Per avere un elenco di tutte le opzioni utilizzabili consultare i manuali dei moduli per l'input, come
man evdev man joystick man kdb man mousedrv man synaptics man wacom
a seconda del tipo di periferica che si sta configurando.
Ulteriori risorse
[https://launchpad.net/ubuntu/hardy/+source/xserver-xorg-input-evdev Pagina del pacchetto xserver-xorg-input-evdev su Launchpad]