I'm looking to have persistent kernel logs across reboots in case of a Kernel Panic. I looked up to find that pstore (ramoops) can be used to achieve the same. However, I'm unable to get any logs across reboots when a kernel panic occurs.
Following are the changes that I've done:
Kernel (4.19.35) Configs:
CONFIG_PSTORE=y
CONFIG_PSTORE_DEFLATE_COMPRESS=y
CONFIG_PSTORE_COMPRESS=y
CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_RAM=y
DTS Changes:
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
ramoops: ramoops@ffdfffff {
compatible = "ramoops";
reg = <0 0xffdfffff 0 0x100000>;
record-size = <0x20000>;
console-size = <0x20000>;
ftrace-size = <0x20000>;
};
Following are the dmesg logs corresponding to ramoops and pstore:
[ 2.031079] pstore: Registered ramoops as persistent store backend
[ 2.043195] ramoops: attached 0x100000@0xffdfffff, ecc: 0/0
[ 1.005114] pstore: using deflate compression
[ 2.027306] console [pstore-1] enabled
[ 2.031079] pstore: Registered ramoops as persistent store backend
Using the following to trigger a reboot on kernel panic:
echo 10 > /proc/sys/kernel/panc
echo c > /proc/sysrq-trigger
**** Kernel Panic starts and system reboots after 10 secs ****
On reboot, the /sys/fs/pstore directory is empty and no logs are found.
What am I missing in the above? Do I need to use different RAM addresses? Or is persistent storage using ramoops even supported on the (Variscite) iMX8MM boards?