voici mon petit tuto : Un grand merci a tous et plus particulièrement à "Acris" pour le script à placer dans /etc/init.d. Je vous présente toutes les étapes nécessaires pour faire fonctionner son mausberry circuit avec recalbox. prérequis : 1) un rpib/b+/2 2) un mausberry circuit commandé sur : http://mausberry-circuits.myshopify.com/collections/frontpage/products/shutdown-circuit-use-your-own-switch 3) un interrupteur pour le power et le reset soudé à votre mausberry circuit (ici j'utilise mes boutons d'une Nes récupérée). Etape 1 : Connectez-vous en root sur recalbox en ssh via putty sur windows ou via une console/terminal sur linux/max (ssh root@ip_local_recal_box) Etaoe 2 : Télécharger le script pour raspbian/raspbmc/dérivé wget http://files.mausberrycircuits.com/setup.sh
Vous êtes en root pas besoin de sudo et de toute facon le paquet "sudo" n'est pas installé sur recalbox. Etape 3 : éditer le script que nous venons de récupérer nano setup.sh
faire une copie de sauvegarde : cp setup.sh setup.sh.old
1) Supprimer les sudo et la dernière ligne du script 2) modifier la destination du script et son nom (je veux créer le script dans /etc) le script doit être comme ci-dessous maintenant :
echo '#!/bin/bash
#this is the GPIO pin connected to the lead on switch labeled OUT
GPIOpin1=23
#this is the GPIO pin connected to the lead on switch labeled IN
GPIOpin2=24
echo "$GPIOpin1" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
echo "$GPIOpin2" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
while [ 1 = 1 ]; do
power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
if [ $power = 0 ]; then
sleep 1
else
poweroff
fi
done' > /etc/mausberry.sh
chmod 777 /etc/mausberry.sh
Enregistrer le script (ctrl+x+y avec nano) A noter que vous pouvez modifier les numéros des gpio si besoin (Si ils sont utilisés pour une manette par exemple).. Etape 4 : exécuter setup.sh bash setup.sh
si il n'y a pas d'erreur, un fichier mausberry.sh est créé dans /etc Etape 5 : Créer le script qui va lancer mausberry.sh au démarrage de votre recalbox nano /etc/init.d/S99maus
Copier le code suivant :
#!/bin/bash
### BEGIN INIT INFO
# Provides: mausberry.sh
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: switch mausberry init script.
# Description: Starts and stops SwitchDaemon service.
### END INIT INFO
#VAR
RUN="/etc/mausberry.sh"
BTD_PID=$(ps -eo pid,command | grep "/bin/bash $RUN" | grep -v grep | awk '{print $1}')
serviceStatus() {
if [ ! -z "$BTD_PID" ]; then
echo -e '33[0mservice mausberry.sh ['$BTD_PID'] [33[33;32m OK 33[0m]'
else
echo -e '33[0mservice mausberry.sh [33[33;31m KO 33[0m]'
fi
}
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script $RUN ..."
if [ -z "$BTD_PID" ]; then
nice -n 19 $RUN&
if [ $? -eq 0 ]; then
echo -e "33[0mscript $RUN [33[33;32m STARTED 33[0m]"
fi
else
echo "script $RUN already started ['$BTD_PID']!"
fi
#serviceStatus
;;
stop)
echo "Stopping script $RUN ..."
if [ ! -z "$BTD_PID" ]; then
kill $BTD_PID
if [ $? -eq 0 ]; then
echo -e "33[0mscript $RUN [33[33;31m STOPPED 33[0m]"
fi
fi
#serviceStatus
;;
status)
serviceStatus
;;
*)
echo "Usage: /etc/init.d/SwitchService {start | stop | status}"
exit 1
;;
esac
exit 0
Enregistrer le fichier avec ctrl+x+y faire un chmod sur le fichier généré pour eviter tout problème de droit : chmod 777 /etc/init.d/S99maus
Etape 6 : rebootez recalbox ou lancer le script 1) reboot
2) /etc/init.d/S99maus start
Après avoir terminé l'une de ces deux dernières étapes au chois. Votre mausberry circuit doit être fonctionnel. le fait de repasser le powerswitch en position haute devrait arrêter votre recalbox électriquement et proprement. si vous avez des remarques à apporter? je ne suis pas un expert. Je sais qu'il y a plus simple notamment pour générer le mausberry.sh