Hitzigrath

Netzwerk-Administrator und Hobby-Fotograf

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
docs:raspberrypi:work_reboot [14.10.2014 - 22:19]
Mischa Kommentar-Funktion hinzu gefügt
docs:raspberrypi:work_reboot [05.10.2023 - 09:44] (aktuell)
Mischa
Zeile 1: Zeile 1:
 +====== Workaround: Reboot nach Kaltstart ======
 +
 +Bei einem Kaltstart funktioniert die Bildschirm-Ausgabe an meiner KVM-Server-Konsole nicht richtig. Erst nach einem Reboot ist die Anzeige wieder da. Aus diesem Grund habe ich mir etwas einfallen lassen müssen, um diesen Missstand zu beheben. Denn es kann ab und zu vorkommen, dass man doch mal lokal an einen Rechner (auch wenn es "​nur"​ ein Raspberry PI ist) muss.
 +
 +Im Prinzip geht es hier also nur darum nach einem Kaltstart einen Reboot zu tätigen, damit auch mein KVM-Switch wieder eine Anzeige bekommt.
 +
 +Es wird hierfür ganz simpel einfach nur ein Skript für die Erstellung einer "​Prüf-Datei"​ und ein weiteres zur Überprüfung dieser in die Runlevels mit aufgenommen. Durch die Überprüfung wird dann gegebenenfalls ein zeitverzögerter Reboot ausgelöst.
 +
 +Die Skripte hierbei sind nicht wirklich kompliziert:​
 +
 +Erstellen einer Prüf-Datei mit ''​sudo vi /​etc/​init.d/​reboot-do'':​
 +<file bash reboot-do>​
 +#! /bin/sh
 +### BEGIN INIT INFO
 +# Provides: ​         reboot-do
 +# Required-Start:​
 +# Required-Stop:​
 +# Default-Start:​
 +# Default-Stop: ​     6
 +# Short-Description:​ Make a check file for rebooting.
 +# Description:​
 +### END INIT INFO
 +
 +PATH=/​sbin:/​usr/​sbin:/​bin:/​usr/​bin
 +
 +. /​lib/​lsb/​init-functions
 +
 +do_stop () {
 + touch /​var/​reboot.done
 + date > /​var/​reboot.done
 +}
 +
 +case "​$1"​ in
 +  start)
 + # No-op
 + ;;
 +  restart|reload|force-reload)
 + echo "​Error:​ argument '​$1'​ not supported"​ >&2
 + exit 3
 + ;;
 +  stop)
 + do_stop
 + ;;
 +  *)
 + echo "​Usage:​ $0 start|stop"​ >&2
 + exit 3
 + ;;
 +esac
 +</​file>​
 +
 +Prüfen der Prüf-Datei mit ''​sudo vi /​etc/​init.d/​reboot-chk'':​
 +<file bash reboot-chk>​
 +#! /bin/sh
 +### BEGIN INIT INFO
 +# Provides: ​         reboot-chk
 +# Required-Start: ​   $all
 +# Required-Stop:​
 +# Default-Start: ​    2 3 4 5
 +# Default-Stop:​
 +# Short-Description:​ Check for reboot.
 +### END INIT INFO
 +
 +
 +PATH=/​sbin:/​usr/​sbin:/​bin:/​usr/​bin
 +
 +. /​lib/​lsb/​init-functions
 +
 +do_start() {
 + if [ -e /​var/​reboot.done ]; then
 + rm /​var/​reboot.done
 + echo "​$(date) - was rebooted."​ >> /​var/​log/​reboot.log
 + else
 + echo "​$(date) - reboot after normal boot in one minute."​ >> /​var/​log/​reboot.log
 + shutdown -r 1 &
 + fi
 +}
 +
 +case "​$1"​ in
 +    start)
 + do_start
 +        ;;
 +    restart|reload|force-reload)
 +        echo "​Error:​ argument '​$1'​ not supported"​ >&2
 +        exit 3
 +        ;;
 +    stop)
 +        ;;
 +    *)
 +        echo "​Usage:​ $0 start|stop"​ >&2
 +        exit 3
 +        ;;
 +esac
 +</​file>​
 +<wrap lo>Durch dieses Skript wird ein reboot.log geschrieben. Um dies abzuschalten müssen die entsprechenden Zeilen ''​echo ... >> /​var/​log/​reboot.log''​ auskommentiert werden.</​wrap>​
 +
 +Die Runlevels werden dann wie folgt eingerichtet:​
 +<​code>​
 +pi@raspberry ~ $ sudo chmod 0755 /​etc/​init.d/​reboot-*
 +pi@raspberry ~ $ sudo chown root:root /​etc/​init.d/​reboot-*
 +pi@raspberry ~ $
 +pi@raspberry ~ $ sudo update-rc.d reboot-do defaults
 +update-rc.d:​ using dependency based boot sequencing
 +update-rc.d:​ warning: default start runlevel arguments (2 3 4 5) do not match reboot-do Default-Start values (none)
 +update-rc.d:​ warning: default stop runlevel arguments (0 1 6) do not match reboot-do Default-Stop values (6)
 +pi@raspberry ~ $ sudo update-rc.d reboot-chk defaults
 +update-rc.d:​ using dependency based boot sequencing
 +update-rc.d:​ warning: default stop runlevel arguments (0 1 6) do not match reboot-chk Default-Stop values (none)
 +pi@raspberry ~ $
 +</​code>​
 +
 +Das war es dann bereits schon.
 +
 +Die Skripte könne im Notfall (oder warum auch immer) mit ''​sudo update-rc.d reboot-do remove''​ und ''​sudo update-rc.d reboot-chk remove''​ wieder aus den Runlevels entfernt werden.
 +
 +
 +{{description>​Hier geht es darum nach einem Kaltstart einen Reboot zu tätigen, damit mein KVM-Switch wieder eine Anzeige bekommt.}}
 +{{keywords>​projekt,​dokumentation,​reboot,​konfiguration,​administration}}
 +{{tag>"​raspberry pi" workaround}}
 +<WRAP rightalign><​wrap lo>//​Dieser Artikel ist publiziert unter: {{license>​by-nc-sa,​small}}//</​wrap></​WRAP>​