From: Hannu Nyman Date: Wed, 9 Feb 2022 21:54:47 +0000 (+0200) Subject: kernel: package ramoops pstore-ram crash log storage X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=97158fe10e60;p=openwrt%2Fstaging%2Fthess.git kernel: package ramoops pstore-ram crash log storage 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 Signed-off-by: Christian Lamparter (added CONFIG_EFI_VARS_PSTORE disable) --- diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk index b6d2a120d4..91cf1ea233 100644 --- a/package/kernel/linux/modules/fs.mk +++ b/package/kernel/linux/modules/fs.mk @@ -498,6 +498,27 @@ endef $(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 diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk index f712c95c8e..5ccc860790 100644 --- a/package/kernel/linux/modules/other.mk +++ b/package/kernel/linux/modules/other.mk @@ -770,6 +770,41 @@ endef $(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 diff --git a/target/linux/generic/config-5.10 b/target/linux/generic/config-5.10 index f209086fc2..56eb052981 100644 --- a/target/linux/generic/config-5.10 +++ b/target/linux/generic/config-5.10 @@ -1760,6 +1760,7 @@ CONFIG_DYNAMIC_DEBUG_CORE=y # 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 @@ -4589,6 +4590,18 @@ CONFIG_PROC_SYSCTL=y # 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 @@ -4698,6 +4711,9 @@ CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 # 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