Linux pstore实现自动“抓捕”内核崩溃日志

本文介绍了如何在Linux 4.19.125内核上启用并配置pstore功能,以捕获内核崩溃前的日志。主要步骤包括:修改内核配置启用pstore及相关前端和后端支持,配置dts预留RAM空间,触发kernel panic以及在系统重启后抓取并查看保存的Log。通过这些步骤,可以有效地获取和分析内核故障信息。
摘要由CSDN通过智能技术生成

说明:

本文基于内核:linux-4.19.125

概述

最近因工作关系,启用了linux的pstore功能。

pstore的主要功能是存储linux内核崩溃前的内核日志,具体可参考内核文档介绍:

linux-4.19.125\Documentation\admin-guide\ramoops.rst

也可以参考宋宝华老师的博客:Linux pstore 实现自动“抓捕”内核崩溃日志_宋宝华-CSDN博客

在原理方面,宋宝华老师写的非常详细。

我这里仅记录我的操作总结。

总体来说,分为4步:

1.  配置内核config,开启pstore功能

2.  配置dts,指定用于存储log的RAM地址空间

3.  触发kernel panic

4. 抓取Log

第一步:配置内核config

在menuconfig中选择内核pstore模块
$ make menuconfig  |-> File systems    |-> Miscellaneous filesystems      
|-> Persistent store support           # pstore支持
|-> Log kernel console messages        # console 前端
|-> Log user space messages            # pmsg 前端
|-> Persistent function tracer         # ftrace 前端
|-> Log panic/oops to a RAM buffer     # pstore/ram 后端 
|-> Log panic/oops to a block device   # pstore/blk 后端

配置后增加的Kernel config项:

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

CONFIG_REED_SOLOMON=y
CONFIG_REED_SOLOMON_ENC8=y
CONFIG_REED_SOLOMON_DEC8=y

第二步:配置dts

在 reserved-memory中添加ramoops配置:

    reserved-memory {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

      ......
        ramoops@66000000{
            compatible = "ramoops";
            reg = <0x66000000 0xf0000>;
            record-size     = <0x40000>; 
            console-size    = <0x80000>; 
            ftrace-size     = <0x20000>; 
        };
    };

第三步:触发panic

手动触发panic:

echo c > /proc/sysrq-trigger

第四步:抓取Log

这一步很关键,我就因为少了这一步一直没有抓取到Log。

panic后重启设备,注意不能掉电,否则是没法抓取到Log的。

在设备重启后,命令行输入:

mount -t pstore pstore /sys/fs/pstore

 这样就可以在/sys/fs/pstore目录下看到抓取到的Log了:

参考:Linux pstore 实现自动“抓捕”内核崩溃日志_宋宝华-CSDN博客

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值