如果是 Android 開發板,可以通過串口直接讀取內核日志。
對於普通 Android 設備,可以在終端中執行 cat /proc/kmsg 命令獲取內核日志。
當設備由於內核故障無法正常啟動時,可以通過以下方式獲取日志:
- 重啟設備到一個可以正常運行的系統,這里通常指設備的 recovery ,推薦 TWRP 。
- Linux 內核版本小於或等於 3.4 可以通過在終端執行 cat /proc/last_kmsg 獲取日志。
如果無法找到文件,請確保在內核配置中設置了以下配置:
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
- Linux 內核版本大於 3.4 可以通過在終端執行 cat /sys/fs/pstore/console-ramoops 獲取日志。該文件的名稱可能略有不同,但將在此目錄中。
如果無法找到文件,請確保在內核配置中設置了以下配置:
CONFIG_PSTORE=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_RAM=y
- 可以通過執行以下命令手動觸發內核 panic :
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
參考資料: http://docs.halium.org/en/latest/porting/debug-build/dmesg.html