En 2012, /proc/last_kmsg
( 1 ) était un vidage des messages de la console du noyau, exportés après les redémarrages par le système Android. ram_console
fonctionnalité (CONFIG_ANDROID_RAM_CONSOLE), qui utilisait persistent_ram
(CONFIG_ANDROID_PERSISTENT_RAM) pour gérer un bloc de RAM qui n'a pas été effacé lors des redémarrages. ( 2 ) .
persistent_ram
était basé sur le code RAMOOPS en amont de Linux qui enregistrait panique et oups dans la mémoire vive. RAMOOPS a été déprécié au profit de PSTORE ( 3 ) (gestion de la mémoire) et PSTORE_RAM ( 4 ) (enregistrement des paniques/ops à pstore/dmesg-ramoops
). Plus tard, le support de PSTORE_CONSOLE a été ajouté ( 5 , 6 ) pour enregistrer non seulement les paniques/ops, mais aussi tous les messages de la console du noyau dans le fichier pstore/console-ramoops-N
qui peut être lu plus tard en montant pstore
( 7 ) . Ainsi, la RAM_CONSOLE spécifique à Android ( 8 , 9 ) et PERSISTENT_RAM ( 10 ) ont été complètement supprimées.
Maintenant pstore
offre également l'enregistrement des messages de l'espace utilisateur (PSTORE_PMSG). ( 11 ) et d'autres caractéristiques ( 12 ) . De plus, il prend en charge plusieurs backends pour le stockage persistant si le matériel le permet, bien que les SoC des appareils Android ne prennent en charge que le stockage RAM ( ramoops
pilote, AFAIK).
Il n'est donc pas possible d'activer last_kmsg
sur un noyau amont, au lieu de pstore
offre une fonctionnalité plus polyvalente.
monture : 'pstore'->'/mnt/pstore' : Aucun périphérique de ce type
Cela montre que votre noyau n'est pas construit avec pstore
soutien. Tout ce que vous devez faire est d'utiliser un noyau construit avec CONFIG_PSTORE_CONSOLE
et éventuellement CONFIG_PSTORE_RAM
(bien que buggy ). Le système Android init
montages par défaut pstore
à l'adresse /sys/fs/pstore
( 13 ) d'où dmesg-ramoops
(sur les paniques/oops uniquement) et console-ramoops
peut être lu.
Vous pouvez rechercher sur les forums une ROM personnalisée livrée avec un tel noyau. Ou si vous avez les sources du noyau, vous pouvez le construire vous-même sur une machine Linux.
NOTE : Certains nouveaux appareils, comme Samsung, exposent encore /proc/last_kmsg
Je ne suis pas sûr qu'ils utilisent l'implémentation originale ou l'implémentation de l'interface de l'UE. pstore
à l'arrière.
POUR EN SAVOIR PLUS : Lecture des journaux du noyau