[openwrt/openwrt] kernel: package ramoops pstore-ram crash log storage

LEDE Commits lede-commits at lists.infradead.org
Thu Feb 24 11:46:14 PST 2022


chunkeey pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/97158fe10e6090a8b21629df130734bac53f87ee

commit 97158fe10e6090a8b21629df130734bac53f87ee
Author: Hannu Nyman <hannu.nyman at iki.fi>
AuthorDate: Wed Feb 9 23:54:47 2022 +0200

    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 at 5fe00000 {
                            reg = <0x5fe00000 0x200000>;
                            reusable;
                    };
    
                    ramoops at 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 at iki.fi>
    Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
    (added CONFIG_EFI_VARS_PSTORE disable)
---
 package/kernel/linux/modules/fs.mk    | 21 +++++++++++++++++++++
 package/kernel/linux/modules/other.mk | 35 +++++++++++++++++++++++++++++++++++
 target/linux/generic/config-5.10      | 16 ++++++++++++++++
 3 files changed, 72 insertions(+)

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



More information about the lede-commits mailing list