我正在使用一个Android定制ROM,同时也有一个定制的boot.img(自定义内核+cmdline+ramdisk)。我现在想要在内核恐慌后立即查看内核日志,但不幸的是我无法使用串行控制台。
好消息是:在 Android 的 Linux 内核中似乎有一些专门为此目的编写的源码/模块。例如,以下行在我的内核的.config文件中被激活:
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
CONFIG_APANIC=y
CONFIG_APANIC_PLABEL="oem_log"
我的问题是:在我强制性地引发内核崩溃,例如通过使用insmod panic.ko
命令来加载一个简单的崩溃内核模块之后,似乎没有日志被写入到名为oem_log的MTD(这个MTD存在于我的设备上)。其次,由于可能被清空了,或者日志也没有被写入,所以重启后RAM中也不包含日志。
那么,在内核崩溃后如何获取内核日志呢?如果有一种方法可以在运行系统中测试APANIC,那将非常有帮助。也许可以使用内核调试系统来进行测试?目前我对此还比较陌生。
非常感谢您提供的任何帮助!
https://android.stackexchange.com/questions/239500/analyzing-boot-loop-root-cause-from-console-ramoops-0-logcat
this question carrying abounty
might be of intrest if you are that 'colonel' ofkernel
- user1874594