Question

Je suis en utilisant un Android ROM Custom sur mon appareil, également avec un démarrage personnalisée.img (noyau + cmdline + ramdisk).Maintenant, je veux être en mesure d'afficher les logs du noyau immédiatement après une panique du noyau, mais malheureusement je ne peux pas utiliser une console série.

La bonne nouvelle:Il semble y avoir certaines sources/modules dans le noyau Linux d'Android qui sont écrites exactement à cette fin.Par exemple, les lignes suivantes sont activées dans mon .fichier de configuration du noyau:

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

Mon problème est le suivant:Après j'ai forcé une panique du noyau afin de le tester, c'est à direpar le chargement d'un simple panique module du noyau avec insmod panic.ko, il semble qu'aucun journal n'a été écrit à la DMT nommé oem_log (qui existe sur mon appareil).Deuxièmement, la RAM ne contient pas non plus les journaux après le redémarrage, car elle semble être effacé ou les journaux ne sont pas écrit non plus.

Alors, comment puis-je obtenir les logs du noyau après un mouvement de panique?Aussi, il serait utile s'il y a un moyen que je pouvais tester le APANIC sur le système en cours d'exécution.Peut-être en utilisant le débogage du noyau du système?A partir de maintenant je suis de nouveau à cela.

Merci d'avance pour toute aide!

Était-ce utile?

La solution

Comme pour moi,

cat /proc/last_kmsg 

après redémarrage de la machine (provoquée par la panique du noyau au cours de insmod) n'liste des messages pertinents à l'accident, comme

[  424.909515] Kernel panic - not syncing: Fatal exception
[  424.909606] Backtrace: 
[  424.909790] [<c005a5ec>] (dump_backtrace+0x0/0x10c) from [<c05f38dc>] (dump_stack+0x18/0x1c)
[  424.909973]  r6:c5cccf00 r5:00000000 r4:c08505a0 r3:00000000

De sorte que vous pouvez au moins essayer.Je travaille avec Linux 3.0.31-g4f6d371 sur le Galaxy Nexus.

Autres conseils

Il semble à Android-7.0 ou supérieur, la last_kmesg journal est déplacée à:/sys/fs/pstore/console-ramoops, essayez donc de:

cat /sys/fs/pstore/console-ramoops

il fonctionne bien pour moi sur nexus-5x

Que diriez - /data/dontpanic dossier?Après la panique du noyau se produit, vous pouvez connecter le câble USB à votre appareil Android et de vérifier les fichiers dans ce dossier par le biais de ADB.

J'ai trouvé ce dossier contient quelques apanic les fichiers après une panique du noyau qui se passe.Par exemple, si une panique du noyau qui vient d'arriver et vous allez vérifier votre dossier, vous pouvez trouver ces deux fichiers:

apanic_console

apanic_threads

Vous pouvez trouver dans apanic_threads quel thread / processus est en cours d'exécution lors de la panique de noyau qui se passe.Dans apanic_console vous pouvez trouver plus d'informations tels que la trace de la pile et les valeurs de certains critiques registres: PC, LR, etc.
Ils vous aideront à obtenir votre débogage commencé.

Android crée une RAM de la console et tente de sauver le dernier message du noyau de la mémoire tampon pour vous dans la RAM (en supposant que la puissance ne fait pas tout).Vous pouvez accéder à ce fichier à travers le proc de l'interface et sur mon système, il est lisible par tout le monde:

cat /proc/last_kmsg

Pour plus d'informations, voir le code du noyau @ pilotes/mise en scène/android/ram_console.c

J'ai fait face à un similaire question de la collecte de l'arrêt de journaux dans Android.J'avais posté cette question depuis longtemps de retour et il a 2 approches.J'utilise le 2ème que le 1er ne fonctionne pas pour moi.Là est la question

D'où vient Android store, l'arrêt de logs?

Espérons que cette aide.

Le noyau Linux journal peut être consulté avec les dmesg commande.Vous pouvez lire sur l'Android Système de Journalisation ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top