通常有3种收集方法。
1 kdump
这种在各个Linux发行版上用的很多,它在发生panic的时候,起一个kdump-caputre kernel来将奔溃信息写入到磁盘。
2 mtdoops
在嵌入式设备上用得比较多,在发生panic的时候,将奔溃信息写入mtd分区。
3 crashlog
在某些架构的嵌入式设备上使用,发生panic的时候,将奔溃信息保留在内存中,并且添加一个magic头,然后进行软重启,boot loader也不重置这块内存,在kernel下次启动的时候,检查到奔溃,通过
/sys/kernel/debug/crashlog这个接口供用户读取上一次奔溃的日志。
参考
https://e-mailky.github.io/2018-10-14-embedded-panic-log
https://en.wikipedia.org/wiki/Kdump_(Linux)
https://stackoverflow.com/questions/27107625/mips-linux-logging-kernel-panic-into-mtd-partition
https://forum.openwrt.org/t/crashlog-retrieval-mips/19731