Joystick
Da Slacky.eu.
Versione delle 11:52, 12 set 2006, autore: L1q1d (Discussione | contributi)
Descrizione
Script per la configurazione del joystick su Slackware GNU/Linux. Questo semplice script installarà il necessario per fa funzionare il proprio joystick, poi configurerà in base alle vostre esigenze.
Script
#!/bin/bash
#
# Script per la configurazione del joystick su Slackware GNU/Linux.
# Questo semplice script installarà il necessario per fa funzionare
# il proprio joystick, poi configurerà in base alle vostre esigenze.
#
# Federico fazzi, <federico@plugs.it> 3 Giugno 2005.
# Grazie a tutti quelli "irc.syrolnet.org".
JSDIR=`ls /dev/input/js* | wc -l`
BINARY="/usr/local/jstest"
function funzionamento() {
cat << FUNZIONAMENTO
Sintassi:
`basename $0` -h --help Visualizzazione sintassi
`basename $0` -n --need Controllo presenza dei file necessari per la configurazione
`basename $0` -c --conf Configurazione dei joystick
`basename $0` -r --remove Rimozzione della configurazione
`basename $0` -v --version Versione del file e ringraziamenti
FUNZIONAMENTO
exit 0;
}
function nfile() {
if [ "$UID" != "0" ]; then
echo "Non hai i permessi root!"; exit 1;
fi
echo "Controllo dei file necessari.. OK"
if [ ! -e $BINARY ]; then
continue
echo "Mancanza di uno o più file, Procedo all'installazione? [si] - [no]:"
read RINSTALL
if [ "$RINSTALL" == "si" ]; then echo "Mi sposto in '~/' e scarico il pacchetto necessario.."
wget ftp://atrey.karlin.mff.cuni.cz/pub/linux/joystick/joystick-1.2.15.tar.gz
tar zxvf joystick-1.2.15.tar.gz ; cd joystick-1.2.15 ; make install
echo "Installazione dei file necessari terminata"
elif [ "$RINSTALL" == "no" ]; then exit 0;
else
echo "Tasto sbagliato."
fi
fi
}
function moduli() {
echo "Quale modulo devo caricare in base al tuo joystick?"
echo
echo " - ns558 : se il nostro joystick comunica tramite la gameport"
echo " - serport: se il nostro joystick comunica attraverso la porta seriale"
echo " - analog : se il si si tratta di un dispositivo analogico"
echo
read DISPOSITIVO
exec modprobe joydev
if [ "$DISPOSITIVO" == "ns558" ]; then echo "Caricamento modulo.."
exec modprobe ns558
elif [ "$DISPOSITIVO" == "serport" ]; then echo "Caricamento modulo.."
exec modprobe serport
elif [ "$DISPOSITIVO" == "analog" ]; then echo "Caricamento modulo.."
exec modprobe analog
else
echo "Modulo non supportato"
fi
echo "Procedo nel fare il testing del joystick"
exec /usr/local/bin/jstest --normal /dev/js0
}
function configurazione() {
if [ "$UID" != "0" ]; then
echo "Non hai i permessi root!"; exit 1;
fi
echo "Verifica l'esistenza dei link dei nodes in /dev .. "
if [ "$JSDIR" -lt "2" ]; then echo "Mancanza dei link dei nodes! Creazione di 2 nodes in corso..."
rm -rf /dev/js0 ; rm -rf /dev/js1 ; rm -rf /dev/js2
cd /dev/input
exec mknod js0 c 13 0
exec mknod js1 c 13 0
exec mknod js2 c 13 0
exec mknod js3 c 13 0
echo "Creazione a file device"
exec ln -s js0 /dev/js0
exec ln -s js1 /dev/js1
exec ls -s js2 /dev/js2
moduli
elif [ "$JSDIR" -gt "2" ];then echo "Link trovati procediamo.."
moduli
else
echo "Errore rilevato.. esco!"; exit 1;
fi
echo
echo "Se la configurazione non è andata a buon fine consultare le pagine del man dei seguenti comandi:"
echo "jstest - per il testing del joystick"
echo "jscal - sempre funzione di testing, ma esegue il calibro del joystick"
echo "jsattach - per apportare modifiche di linea al device"; echo
echo "Configurazione completata!.."
}
function rimozione() {
if [ "$UID" != "0" ]; then
echo "Non hai i permessi root!"; exit 1;
fi
echo "Procedo nel reset della configurazione"
echo "Rimuovo il pacchetto joystick"
rm -rf ~/joystick-1.2.15.tar.gz
rm -rf ~/joystick-1.2.15
rm -rf /usr/include/linux/joystick.h
rm -rf /usr/local/bin/jscal
rm -rf /usr/local/bin/jstest
rm -rf /usr/local/bin/jsattach
rm -rf /usr/local/man/man1/jscal.1
rm -rf /usr/local/man/man1/jstest.1
rm -rf /usr/local/man/man1/jsattach.1
echo "Rimuovo i link ai device"
rm -rf /dev/js0
rm -rf /dev/js1
rm -rf /dev/js2
echo "Rimozzione completata!"
}
function versione() {
echo ""
echo " `basename $0` v0.1";echo
echo " Federico Fazzi, <federico@plugs.it>"
echo " Ringrazio gli amici di SyrolNet reperibili su: irc.syrolnet.org,6667"
echo " Anche al sito openskills.info (da dove ho tratto molte informazioni)"
echo;echo "Se qualcuno dovesse riscontrare errore nel file mandatemi un email a: federico@plugs.it, grazie."; echo
}
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then funzionamento
elif [ "$1" == "-n" ] || [ "$1" == "--need" ]; then nfile
elif [ "$1" == "-c" ] || [ "$1" == "--conf" ]; then configurazione
elif [ "$1" == "-r" ] || [ "$1" == "--remove" ]; then rimozione
elif [ "$1" == "-v" ] || [ "$1" == "--version" ]; then versione
else
echo "`basename $0` -h [-n controllo file] [-c configurazione] [-r rimozione] [-rv versione]"
#EOF
fi
- Data: 03 Jun 2006
- Autore: federico
- Versione: 0.1