Joystick

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@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@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