Frage

Ich verwende ein benutzerdefiniertes Android-ROM auf meinem Gerät, auch mit einer benutzerdefinierten boot.img (benutzerdefinierter Kernel + cmdline + ramdisk).Ich möchte nun nach einer Kernel-Panic sofort die Kernel-Logs einsehen können, kann aber leider keine serielle Konsole nutzen.

Die guten Nachrichten:Es scheint einige Quellen/Module im Linux-Kernel von Android zu geben, die genau für diesen Zweck geschrieben wurden.In meiner .config-Datei für den Kernel sind beispielsweise folgende Zeilen aktiviert:

CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
CONFIG_APANIC=y
CONFIG_APANIC_PLABEL="oem_log"

Mein Problem ist:Nachdem ich eine Kernel-Panik erzwungen habe, um dies zu testen, d.h.durch Laden eines einfachen Panic-Kernel-Moduls mit insmod panic.ko, es scheint, dass kein Protokoll in das genannte MTD geschrieben wurde oem_log (die auf meinem Gerät vorhanden ist).Zweitens enthält der RAM auch nach dem Neustart keine Protokolle, da er scheinbar geleert ist – oder die Protokolle werden auch nicht geschrieben.

Wie kann ich also nach einer Panik die Kernel-Protokolle abrufen?Außerdem wäre es hilfreich, wenn es eine Möglichkeit gäbe, APANIC auf dem laufenden System zu testen.Vielleicht mithilfe des Kernel-Debug-Systems?Im Moment bin ich ziemlich neu in diesem Bereich.

Vielen Dank im Voraus für jede Hilfe!

War es hilfreich?

Lösung

wie für mich,

generasacodicetagpre.

nach dem Neustart (durch den Kernel-Panik während des InsMods verursacht) listet Nachrichten, die für den Absturz relevant sind, wie

generasacodicetagpre.

Sie können also zumindest versuchen.Ich arbeite mit Linux 3.0.31-G4F6D371 auf Galaxy Nexus.

Andere Tipps

Es scheint bei Android-7.0 oder höher zu sein, das Last_KMESG-Protokoll wird in: / sys / fs / pstore / console-ramoops verschoben, also versuchen Sie:

generasacodicetagpre.

es funktioniert gut für mich auf nexus-5x

Wie wäre es mit /data/dontpanic Ordner?Nachdem eine Kernel-Panik aufgetreten ist, können Sie ein USB-Kabel mit Ihrem Android-Gerät verbinden und die Dateien in diesem Ordner überprüfen ADB.

Ich habe festgestellt, dass dieser Ordner einige enthält apanic Dateien nach einer Kernel-Panik.Wenn beispielsweise gerade eine Kernel-Panik aufgetreten ist und Sie den Ordner überprüfen, finden Sie möglicherweise diese beiden Dateien:

apanic_console

apanic_threads

Das erfahren Sie in apanic_threads welcher Thread/Prozess läuft, wenn die Kernel-Panic auftritt.In apanic_console Möglicherweise erfahren Sie weitere Informationen wie den Stack-Trace und die Werte einiger kritischer Register: PC, LR, usw.
Sie helfen Ihnen dabei, mit dem Debuggen zu beginnen.

Android erstellt eine RAM-Konsole und versucht, den letzten Kernel-Nachrichtenpuffer für Sie in RAM zu speichern (vorausgesetzt, dass die Macht nicht ausgeht).Sie können auf diese Datei über die PROC-Schnittstelle zugreifen, und auf meinem System ist es weltweit lesbar:

generasacodicetagpre.

Weitere Informationen finden Sie in den Kernel-Code @ Treiber / Inszenierung / Android / RAM_CONSOLE.C

Ich habe ein ähnliches geschützt ein Problem des Sammelns von Herunterfahren von Protokollen in Android.Ich hatte diese Frage lange zurückgegeben und es hat 2 Ansätze.Ich benutze den zweiten, als der erste nicht für mich funktioniert.Hier ist die Frage

Wo wird Android Store heruntergefahrene Protokolle heruntergefahren?

hoffe das hilft.

Das Linux-Kernel-Protokoll kann mit dem Befehl dmesg aufgerufen werden.Sie können über das Android-Protokollierungssystem lesen hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top