Configuration du watchdog
Fichier /etc/rc.local
Editer le fichier avec la commande (ajouter en fin de fichier AVANT exit 0
)
sudo nano /etc/rc.local
#WATCHDOG echo "12" > /sys/class/gpio/export & sleep 2 echo out > /sys/class/gpio/gpio12/direction
Ce code sera utilisé pour tester le fonctionnement correct du chien de garde (watchdog) installé sur la carte “SvxLink Card”.
Le temps de démarrage du boot étant supérieur à 10 secondes, il est conseillé de régler le temps de détection (timeout) au maximum. Comme l'indique le tableau ci-dessous issu de la ficher produit du MAX6369, les 3 cavaliers SET0, SET1 et SET2 sont fermés (souder les trois paires de carrés)
Le code suivant va permettre de générer un état bistable de période 2 secondes sur l'entrée du watchdog.
- | test-watchdog.py
#!/usr/bin/python import time from RPi import GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(32, GPIO.OUT) while True: inputval1 = GPIO.output(32, False) time.sleep(1) inputval1 = GPIO.output(32, True) time.sleep(1)
Alors que le programme est lancé avec la commande
sudo python test-watchdog.py
Depuis une deuxième console connecté au Raspberry Pi, avec la commande bash (console) suivante, on vérifie que la sortie commute effectivement
while true; gpio read 26; done
Le jumper de validation doit être mis en place pour ssurer la mise en marche du watchdog.
Essais du watchdog
On simule à présent le plantage programme en stoppant l'exécution du code python test-watchdog.py en faisant CTRL-C. Entre 180 et 300 secondes, le watchdog va redémarrer le Raspberry Pi. Les connexions de console sont à relancer.