Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
 

Immer wieder kommt es mal vor dass eine Raspberry nicht mehr bootet. Sei es weil das Speichermedium voll ist, irgendeine für den Bootprozess wichtige Konfiguration verstellt wurde oder das Speichermedium oder das Dateisystem defekt ist oder sonstige Gründe.  Der folgende Artikel beschreibt wie man an die notwendigen Debuginformationen herankommt.

 

Der schnellste Weg ist sich die Bootmeldungen auf einem angeschlossenen Monitor anzusehen. Wenn man eine Raspberry headless betreibt, also ohne Monitor, muss dazu erst einer angeschlossen werden. Sofern man keinen zur Hand hat  oder die Raspberry an einem schlecht zugänglichen Ort platziert ist besteht eine weitere Möglichkeit: Allerdings nur wenn es keine Probleme sind die schon beim initialen Booten auftreten wie dass keine SD Karte oder USB Karte erkannt werden. Solche Fehler kann man nur mit einem Monitor oder TTL USB Adapter debuggen. Das Systemd Journal ansehen. Der folgende Artikel beschreibt wie man mit dem Systemd Journal und einem UART TTY USB Adapter an die notwendigen Informationen herankommt.

 

 

Folgende Wege gibt es um Bootprobleme zu debuggen

(sortiert von einfach nach schwer/aufwändig)

1) Die Bootmeldungen auf einem angeschlossenen Monitor ansehen

2) Das Systemd Journal ansehen

3) Einen UART-TTL USB Adapter anschliessen und mit einem Monitorprogramm ansehen

 

Systemd Journal

Je nach Systemd Journaleinstellungen auf der laufenden Raspberry ist entweder das Journaling eingeschaltet oder man kann es auch noch nachträglich einschalten. Ist es explizit ausgeschaltet bleibt nur noch der Weg (3).

In /etc/systemd/journald.conf wird mit der Option Storage definiert wie das Journal erstellt wird. Steht es auf volatile wird es nur im Speicher gehalten und ist somit für Bootprobleme nicht nutzbar. Steht es auf persistent wird das log in /var/log/journal gespeichert. Steht es auf auto wird es auf /var/log/systemd gespeichert wenn das Verzeichnis existiert. Ansonsten wird es nur im Speicher gehalten. D.h. wenn volatile definiert ist sollte man das auf auto oder persistent vor dem Bootproblem geändert haben. Hat man auto gewählt und kein /var/log/systemd angelegt muss man dieses manuell auf einem anderen Linuxsystem anlegen (Systemgerät mounten und sudo mkdir /var/log/journal) und danach das nicht bootenden System noch einmal davon starten. Ansonsten kann man zur Analyse übergehen. Dazu mountet man das Systemgerät und mit dem Befehl sudo journalctl -D <mountpoint>/var/log/journal/<Kennung> -b 0 kann man sich das Journal ansehen und nach Bootproblemen suchen.

 

UART TTL USB Adapter

Zwei Aktionen sind notwendig:

1) Die Datei /boot/config.txt oder /boot/firmware/config.txt muss folgenden Eintrag haben:

enable_uart=1

Am besten den Eintrag immer schon am laufenden System zufügen.

2) Der TTL USB Adapter muss an die Raspberry angeschlossen werden. ACHTUNG: Ein falscher Anschluss kann die Raspberry zerstören. Also immer kontrollieren dass die richtigen Kabel am richtigen Pin angeschlossen werden!  Dazu muss an Pin6 die Masse GND des Adapters angeschlossen werden, an Pin 8 TXD und an Pin 10 RXD.

Danach kann man an sich einem Linuxsystem mit

sudo screen /dev/ttyUSB0 115200

die Bootmeldungen ansehen. Unter Windows kann man z.B. putty dazu nutzen.

 

Weiterführende Links

journald.conf

Kommentar schreiben

*** Hinweis ***

Kommentare sind erwünscht. Aber um lästige Spamposts abweisen zu können gibt es ein paar Dinge die zu beachten sind:
  1. Kommentare mit dem Text http werden sofort zurückgewiesen mit der Meldung Sie sind nicht berechtigt den Tag zu verwenden. zz
  2. Kommentare werden manuell überprüft und es dauert deshalb in der Regel einen Tag bis sie veröffentlicht werden.