Étape 2: Comment mettre en place le temporisateur interne Pi framboise
Résumé : À l’étape 2 de cet Instructable nous regardons comment configurer le temporisateur interne Raspberry Pi. Nous aussi parler des problèmes avec le chien de garde interne Raspberry Pi et expliquer pourquoi un temporisateur externe, tels que les laboratoires de SwitchDoc double WatchDog Timer est un meilleur choix dans les systèmes de nombreux, mais pas toutes.
Mise en place le temporisateur interne Raspberry Pi
Tout d’abord de tous une définition. L’OMC est définie comme la quantité maximale de temps que le temporisateur peut compter avant il doit être réinitialisé (en d’autres termes, lorsqu’il va redémarrer l’ordinateur si l’ordinateur s’en va. Le système de BCM2835 sur une puce qui alimente le Raspberry Pi a un WDT à bord. Il a 20 bits et compte à rebours tous 16us pour une OMC de 16 secondes. Cela signifie que vous devez écrire à la JME interne plus tôt que toutes les 16 secondes, ou la WDT se déclenche.
Exécutez la commande suivante pour charger le module de noyau de chien de garde interne :
$ sudo modprobe bcm2708_wdog
Pour Raspbian, pour charger le module au prochain démarrage du système, ajouter une ligne à votre/etc/modules du fichier avec "bcm2708_wdog". $ echo "bcm2708_wdog" | sudo tee - un/etc/modules
Maintenant, lancez "lsmod" et cherchez la ligne en dessous :
bcm2708_wdog 3537 0
Il vérifie que le module de surveillance a été chargé avec succès. Maintenant modifier/etc/modules et ajouter bcm2708_wdog
pour charger le module au démarrage en exécutant la commande suivante :
sudo echo bcm2708_wdog >> / etc/modules
Ensuite, nous utilisons le démon watchdog(8) de pat le chien :
sudo apt-get install watchdog chkconfig
sudo chkconfig watchdog sur
sudo /etc/init.d/watchdog début
Le démon watchdog(8) exige une configuration simple sur la Pi de la framboise. Modifiez /etc/watchdog.conf pour contenir uniquement :
chien de garde-device = /dev/watchdog
chien de garde-timeout = 14
temps réel = yes
priorité = 1
Pour définir l’intervalle pour pat le chien toutes les quatre secondes : intervalle = 4
Enfin :
sudo /etc/init.d/watchdog restart
Ouf ! Cela met en place le chien de garde interne Raspberry Pi.
Tester le chien de garde interne Pi framboise
Pour tester le chien de garde interne, mis en place comme indiqué ci-dessus. Ensuite, modifier un fichier appelé forkbomb.sh et mettre les commandes suivantes dans le fichier :
#! / bin/bash
désactiver - un:(){: |: &}; :
Exécutez le fichier forkbomb.sh :
sudo sh - x forkbomb.sh
Votre Pi framboise va redémarrer par la suite. Une bombe de fourche fonctionne comme ceci : la fonction est appelée deux fois et le pipeline est backgrounded ; chaque nouvel appel successifs sur les processus engendre encore plus d’appels à «: » (la fonction). Ceci mène rapidement à une explosible utilisation des ressources système, ralentissant la réponse à un coup d’arrêt et de tuer la capacité de la Raspberry Pi pour pat le temporisateur. Si vous n’éteignez le disque remplaçable puis la bombe de la fourche doit remplir qui également, ce qui rend la bombe beaucoup, beaucoup plus lente.
Problèmes avec le chien de garde interne Pi framboise
Cependant, il y a un certain nombre de problèmes avec le chien de garde interne. Le chien de garde interne n’alimente pas le cycle du système. Il redémarre le Raspberry Pi. Cela signifie qu’il ne redémarre pas dans toutes les conditions. Surtout en faible puissance / conditions de chute de tension est souvent vécue avec des systèmes solaires alimenté (voir notre Solar Power Instructable ici).
Si le Raspberry Pi prend plus de temps pour démarrage de 14 secondes (ou n’importe quelle valeur vous définissez l’OMC), le chien de garde peut se déclencher qui met le Raspberry Pi dans une séquence de démarrage infinie. Cela peut arriver. Je l’ai fait.
Si vous interrompez le Raspberry Pi (sudo shutdown-h maintenant), le Raspberry Pi ne redémarre jamais. Si votre programme fait par hasard, vous avez terminé.
J’ai trouvé le chien de garde interne non fiables. J’ai jamais pu traquer, mais il se sent comme une sorte de conflit entre l’espace utilisateur et noyau. Il y a certaines situations où le chercheur principal sera insensible, mais les battements du cœur peut-être encore se produire. Situations de charge élevée par exemple.
L’interne WatchDog n'est pas complètement indépendant de la Raspberry Pi. Théoriquement, cela n’importe pas, mais le Raspberry Pi sous Linux est un système complexe.
Voici quelques-unes des questions qui peuvent être résolues avec une surveillance externe. Toutefois, il ne signifie pas que le chien de garde interne ne sert à rien, juste limité.