Da der Raspi bei mir durch die oft beschriebenen Probleme mit dem smsc95xx relativ wacklig auf dem Netzwerk und den beiden USB-Ports ist und dadurch in unregelmäßigen Abständen unmotiviert die Arbeit einstellt, hatte ich den Hardware-Watchdog des Raspi aktiviert. Dieser veranlasst in meinem Fall einen Neustart des Systems wenn länger als 15 Minuten nichts mehr in eine bestimmte Datei geschrieben wird. Wie die Einrichtung des Watchdog genau funktioniert, ist z.B. hier beschrieben.
Diese Woche war es nun plötzlich so, das der Raspi in einer Endlosschleife bootete und anschliessend sofort wieder ein Signal zum Shutdown bekam, bootete, shutdown, ….
Meine erste Vermutung war das Netzteil. Den gleichen Effekt gab es aber auch mit einem anderen Netzteil. Der Ersatz-Raspi mit der gleichen SD-Karte rebootete auch ständig. Also kein Hardware-Fehler!
Also Monitor angeschlossen und mal geschaut was da beim booten so passiert. Das letzte was der Raspi so von sich gab bevor er wieder neu startete war:
WDT device closed unexpectedly. WDT will not stop!
WDT ist der Watchdog Timer. Dieser schien sich selbständig gemacht zu haben. Nun hieß es also irgendwie diesen Watchdog zu stoppen. Die Zeit zwischen einem möglichen Login, Befehl absetzen etc. ist aber so kurz, das ich es vor einem Shutdown nie geschafft habe irgendwas sinnvolles auf der Konsole zu tun.
Abhilfe schafft z.B. das Programm “pLink”. Die plink.exe ist Teil von puTTy und unter Windows im gleichen Verzeichnis wie die putty.exe zu finden. Hiermit muss nicht erst eine gesonderte SSH-Verbindung zum Server aufgebaut werden, sondern es kann direkt der entsprechende Befehl abgesetzt werden.
In meinem Fall habe ich dem Watchdog um seine Konfiguration beraubt, wodurch dieser beim nächsten Neustart (der ja höchstwahrscheinlich ein paar Sekunden später erfolgt) nicht mehr gestartet wird.
plink -ssh -pw <passwort> <benutzer>@<pi_ip> sudo mv /etc/watchdog.conf /etc/watchdog.alt
Beraubt um seine Konfigdatei, sollte der Watchdog beim nächsten Restart nicht mehr starten. Gespannt hab ich ein paar Sekunden gewartet aber es kam kein Neustart mehr.
Woran es letztendlich gelegen hat das der Watchdog diesen immerwährenden Neustart erzwungen hat weiß ich noch nicht. Auch die Konfiguration des Watchdogs muss ich nochmal prüfen. Jedenfalls läuft der Raspi nun wieder!
Hallo Hr.Schiel
habe /hatte selbiges Problem mit dem watchdog wie sie.
Nach suche im Web fand ich ihren Blog.
Die Lösung mit “Plink” kannte ich nicht und ist sehr hilfreich.
Danke dafür.
Nun zu unserem Problem. Der WD startet automatisch mit dem System und überwacht eine Datei die sich bei mir alle 5 Min. ändert. Wenn nun, wie bei mir letzte Nacht ein Stromausfall ist der länger anhält als die Überwachungszeit, fährt der WD sofort wieder runter. Zudem stimmt die Systemzeit auch noch nicht , solange die Uhr nicht aktualisiert wurde.
Als Lösung (was ich praktisch noch nicht ausprobiert habe, wg Zeit, war ja erst gestern Abend) sollte folgendes helfen:
in der Datei rc.local am Ende folgendes einfügen
sudo /etc/init.d/watchdog stop
sleep “Zeit je nach update der zu überwachenden Datei”
sudo /etc/init.d/watchdog restart
Hoffe geholfen zu haben.
MfG Dieter
Hallo Dieter,
ich habe tatsächlich auch gestern nochmal den Watchdog eingeschaltet und danach die SD-Karte gesichert. Das hat länger gedauert als die von mir eingestellte Dateiüberwachung (mache das auch so wie von Dir beschrieben).
Nach dem nächsten Reboot hing ich auch wieder in der Schleife weil die Datei länger nicht geändert wurde! Zumindest wissen wir jetzt wo das Problem herkommt. Den Watchdog für die Zeit x anhalten klingt gut. Vielleicht reicht ja auch ein “touch” auf die Datei. Müsste prüfen worauf der Watchdog genau triggert. Jedenfalls muss das Stoppen oder der “touch” vor dem “erwachen” des Wachundes geschehen. Ich werde das mal testen.
Aber Danke für den Tip!
Gruß
Chris
Hallo,
ich starte den Watchdog verzögert über den Cronjob (@reboot /bin/sleep 240; …watch..) und nicht über init.d beim boot.
Weis jemand wie man den Watchdogtimer stopt?
sudo /etc/init.d/watchdog stop
[FAIL] Stopping watchdog daemon… failed!
[FAIL] Starting watchdog keepalive daemon… failed!
klappt nicht und so startet der Pi beim runterfahren neu.
Hi,
das ist auch eine Lösung.
Ich habe das jetzt mit einem “touch” auf die Datei beim Start des Raspberry gemacht.” eingefügen. Klappt bestens.
Dazu in “/etc/rc.local” eine Zeile mit “sudo touch
Das mit dem Stoppen des Watchdogs sollte eigentlich wie von Dir beschrieben funktionieren.
Was sagt das Log in “/var/log/messages” dazu?
Gruß
Chris
in dmesg steht nix und auch im watchdog Log ist nichts zu finden.
dachte zuerst es läge an
options bcm2708_wdog nowayout=1 heartbeat=15 in /etc/modprobe.d/watchdog.conf
aber wenn ich nowayout abschalte funktioniert es auch nicht.