Package the ability to log kernel crashes to 'ramoops' pstore
files into RAM in /sys/fs/pstore
Reference to the ramoops admin guide in upstream Linux:
https://www.kernel.org/doc/html/v5.10/admin-guide/ramoops.html
The files in RAM survive a warm reboot, but not a cold reboot.
Note: kmod-ramoops selects kmod-pstore and kmod-reed-solomon.
The feature can be used by selecting the kmod-ramoops and
adding a ramoops reserved-memory definition to the device DTS.
Example from R7800:
reserved-memory {
rsvd@
5fe00000 {
reg = <0x5fe00000 0x200000>;
reusable;
};
ramoops@
42100000 {
compatible = "ramoops";
reg = <0x42100000 0x40000>;
record-size = <0x4000>;
console-size = <0x4000>;
ftrace-size = <0x4000>;
pmsg-size = <0x4000>;
};
};
If no definition has been made in DTS, no crash log is stored
for the device.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(added CONFIG_EFI_VARS_PSTORE disable)
$(eval $(call KernelPackage,fs-ntfs))
+define KernelPackage/pstore
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Pstore file system
+ DEFAULT:=m if ALL_KMODS
+ KCONFIG:= \
+ CONFIG_PSTORE \
+ CONFIG_PSTORE_COMPRESS=y \
+ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" \
+ CONFIG_PSTORE_DEFLATE_COMPRESS=y \
+ CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+ FILES:= $(LINUX_DIR)/fs/pstore/pstore.ko
+ AUTOLOAD:=$(call AutoLoad,30,pstore,1)
+endef
+
+define KernelPackage/pstore/description
+ Kernel module for pstore filesystem support
+endef
+
+$(eval $(call KernelPackage,pstore))
+
+
define KernelPackage/fs-reiserfs
SUBMENU:=$(FS_MENU)
TITLE:=ReiserFS filesystem support
$(eval $(call KernelPackage,mtdram))
+define KernelPackage/ramoops
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Ramoops (pstore-ram)
+ DEFAULT:=m if ALL_KMODS
+ KCONFIG:=CONFIG_PSTORE_RAM
+ DEPENDS:=+kmod-pstore +kmod-reed-solomon
+ FILES:= $(LINUX_DIR)/fs/pstore/ramoops.ko
+ AUTOLOAD:=$(call AutoLoad,30,ramoops,1)
+endef
+
+define KernelPackage/ramoops/description
+ Kernel module for pstore-ram (ramoops) crash log storage
+endef
+
+$(eval $(call KernelPackage,ramoops))
+
+
+define KernelPackage/reed-solomon
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Reed-Solomon error correction
+ DEFAULT:=m if ALL_KMODS
+ KCONFIG:=CONFIG_REED_SOLOMON \
+ CONFIG_REED_SOLOMON_DEC8=y \
+ CONFIG_REED_SOLOMON_ENC8=y
+ FILES:= $(LINUX_DIR)/lib/reed_solomon/reed_solomon.ko
+ AUTOLOAD:=$(call AutoLoad,30,reed_solomon,1)
+endef
+
+define KernelPackage/reed-solomon/description
+ Kernel module for Reed-Solomon error correction
+endef
+
+$(eval $(call KernelPackage,reed-solomon))
+
+
define KernelPackage/serial-8250
SUBMENU:=$(OTHER_MENU)
TITLE:=8250 UARTs
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EFI is not set
CONFIG_EFI_PARTITION=y
+# CONFIG_EFI_VARS_PSTORE is not set
# CONFIG_EFS_FS is not set
CONFIG_ELFCORE=y
# CONFIG_ELF_CORE is not set
# CONFIG_PSB6970_PHY is not set
# CONFIG_PSI is not set
# CONFIG_PSTORE is not set
+# CONFIG_PSTORE_COMPRESS is not set
+# CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_DEFLATE_COMPRESS is not set
+# CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT is not set
+# CONFIG_PSTORE_842_COMPRESS is not set
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
+# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+# CONFIG_PSTORE_ZSTD_COMPRESS is not set
# CONFIG_PTDUMP_DEBUGFS is not set
# CONFIG_PTP_1588_CLOCK is not set
# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
# CONFIG_READ_ONLY_THP_FOR_FS is not set
# CONFIG_REALTEK_PHY is not set
# CONFIG_REDWOOD is not set
+# CONFIG_REED_SOLOMON is not set
+# CONFIG_REED_SOLOMON_DEC8 is not set
+# CONFIG_REED_SOLOMON_ENC8 is not set
# CONFIG_REED_SOLOMON_TEST is not set
# CONFIG_REGMAP is not set
# CONFIG_REGMAP_I2C is not set