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)

Watchdog details

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.