Ich habe ein Problem mit Handbremse / ffmpeg. Nach ca. 5 Minuten Transcodierung stürzt der Computer ab. Ich bin mir ziemlich sicher, dass es eine Kernel-Panik ist, weil die Feststelltaste zu blinken beginnt.
Es gibt ein paar logische Fragen darüber, was zu tun ist und einige zu bestimmten Fehlern, aber ich bin wirklich hinter einer Sache her: Was ist passiert, kurz bevor alles gestorben ist ?!
Ich habe nachgesehen /var/log/kern.log
und sehe nur, dass ich eine DVD einlege und ein paar Minuten später das System hochfährt. Keine Fehler, keine Panikmitteilung.
Gibt es eine Möglichkeit, die Protokollierung von Paniken zu erzwingen? Ich bin mir ziemlich sicher, dass ich das reproduzieren kann (es ist in 100% der Fälle passiert, in denen ich es kürzlich versucht habe), also bin ich glücklich genug, ein paar Mal neu zu starten, wenn es heißt, dass ich es kann Finden Sie die Ursache der Panik.
Antworten:
Alle Ihre Systemprotokolle in Ubuntu werden verwaltet,
rsyslog
wobei die Konfiguration in/etc/rsyslog.conf
und erhalten bleibt/etc/rsyslog.d/
.Weitere Informationen zur Konfiguration
rsyslog
und zu den möglichen Optionen finden Sie unterrsyslog.conf man page
.Beim Öffnen sehen
/etc/rsyslog.d/50-default.conf
Sie, dass eine der Zeilen enthält*.*;auth,authpriv.none -/var/log/syslog*
Das bedeutet, dass die Datei, nach der Sie in diesem Fall suchen, eines der riesigen
/var/log/syslog
Protokolle ist, die Sie wahrscheinlich haben werden.Sie können sehen, dass der Dateiname auch mit a beginnt
-
. Dies bedeutet, dass die Datei vor dem Schreiben zwischengespeichert wird. Es ist großartig, aber Sie können ein fehlerhaftes Protokoll zurücklassen. Sie möchten, dass das Protokoll geschrieben wird, sobald ein Problem auftritt. Entfernen Sie den Bindestrich und startenrsyslog
Sie den Computer neu oder laden Sie ihn neu. Lassen Sie den Computer dann erneut abstürzen/var/log/syslog
.quelle
Wenn es sich wirklich um eine Kernel-Panik handelt, wird sie nicht über normale Methoden in ein Protokoll geschrieben. Da der Kernel zu diesem Zeitpunkt abgestürzt ist, ist das Schreiben in das Dateisystem ein riskantes Unterfangen - nicht mehr viel vom Kernel kann als vertrauenswürdig eingestuft werden, sodass das Schreiben in Protokolle möglicherweise zufälligen Mist über Ihren Bootloader spuckt!
Stattdessen können Sie den Speicherinhalt in Ihren Swap sichern und ihn später debuggen. Dies wird als Kernel-Crash / Core-Dump bezeichnet.
Das Ubuntu Wiki hat ein CrashdumpRecipe , das nützlich sein kann - obwohl es ein bisschen veraltet aussieht, denke ich nicht, dass sich zu viel hätte ändern sollen.
quelle
linux-crashdump
; Dieses Paket ist weiterhin in allen Versionen verfügbar .Serielle Schnittstelle
Die serielle Schnittstelle ist ein einfacher Kommunikationsmechanismus auf niedriger Ebene zwischen Computern.
Vorteile:
Nachteile:
Die serielle Schnittstelle sieht folgendermaßen aus:
und auf dem RPI ist über den GPIO verfügbar.
Wenn Sie über die erforderliche Hardware verfügen, verbinden Sie den zweiten Computer mit dem Hauptcomputer mit:
Dies gibt Ihnen tatsächlich eine Shell.
Starten Sie dann auf dem Hauptcomputer den Vorgang, der in Panik gerät.
Wenn die Panik auftritt, wird der Panikspeicherauszug auf die zweite Maschine übertragen, und Sie können alles sehen, indem Sie auf dem Terminal nach oben scrollen.
Andere Methoden
Es gibt auch andere Verfahren, die die oben erwähnten Hardware-Beschränkungen überwinden, auf Kosten einer höheren Komplexität und einer geringeren Zuverlässigkeit. Bemerkenswerte Methoden:
Siehe auch diese großartige Antwort: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
Step-Debugging
Um eine Panikausgabe zu erhalten, müssen einige Kernelfunktionen funktionieren, und alle Kernelfunktionen können durch die Panik beschädigt werden.
Aber wer braucht Panik, wenn Sie GDB auf dem Kernel verwenden können? Wenn Sie so hardcore sind, schauen Sie sich an:
Jedes Problem fällt, sobald Sie die volle Sicht haben (und genug Zeit!).
quelle