OpenHarmony_3.2Release_标准系统blackbox故障检测适配指导
概述 模块驻留在内核驱动层,与平台驱动对接,检测底层整机重启故障。当有故障发生时,bbox会自动重启设备并在data/log/bbox 目录下生成对应时间点的故障日志并在history.log中写入故障事件。 bbox依赖于内核原生pstore系统,把相关故障现象信息转存到一个不能被其他用户重写的指定RAM区域或者BLK块
概述
blackbox模块驻留在内核驱动层,与平台驱动对接,检测底层整机重启故障。当有故障发生时,blackbox会自动重启设备并在data/log/bbox 目录下生成对应时间点的故障日志同时在history.log中写入故障事件。
blackbox依赖于内核原生pstore系统,把相关故障信息转存到一个不能被其他用户重写的指定RAM区域或者BLK块设备上,重启后,这个区域会被挂载到pstore(默认sys/fs/pstore目录),这样就可以在用户空间以文件的形式访问这些数据。
故障检测流程
适配步骤:
1、配置内核Kconfig参数
在产品内核配置文件中添加pstore 和blackbox 的kconfig配置参数
1)、配置pstore
CONFIG_PSTORE=y
# 记录内核控制台消息
CONFIG_PSTORE_CONSOLE=y
# 存储自定义故障日志
CONFIG_PSTORE_BLACKBOX=y
# Log panic/oops to a RAM buffer
CONFIG_PSTORE_RAM=y
#存储压缩默认压缩方式ZLIB
CONFIG_PSTORE_COMPRESS=y
CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
CONFIG_PSTORE_DEFLATE_COMPRESS=y
CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
2)、配置blackbox
CONFIG_BLACKBOX=y
CONFIG_BLACKBOX_LOG_ROOT_PATH="/data/log/bbox"
CONFIG_BLACKBOX_LOG_PART_REPRESENTATIVE="/data"
CONFIG_BLACKBOX_STORAGE_BY_PSTORE_RAM=y
2、DTS文件中配置预留内存
在产品dts配置清单中添加预留内存配置:blackbox-size
例如:
ramoops:ramoops@bff80000{
compatible = "ramoops";
reg = <0xbff80000 0x40000>;
record-size = <0x8000>;
console-size = <0x8000>;
pmsg-size = <0x8000>;
ftrace-size = <0x0>;
blackbox-size = <0x8000>;
}
3、添加system_adapter.c适配代码
1)、system_adapter.c获取并添加:
下载社区3.2release 代码并编译,获取目录out/kernel/src_tmp/linux-5.10/drivers/staging/blackbox/rockchip 下的system_adapter.c文件并复制到 产品代码目录/kernel/linux/linux-5.10/drivers/staging/blackbox 文件夹下
2)、system_adapter.c编译:
在产品代码目录/kernel/linux/linux-5.10/drivers/staging/blackbox 文件中的Makefile文件中添加编译指
obj-$(CONFIG_BLACKBOX_STORAGE_BY_PSTORE_RAM) +=system_adapter.o
4、编译并测试
1)、清除out目录,重新整编整个项目,并烧写开发板
2)、使用指令模拟生成一个panic故障
hdc shell
echo c > /proc/sysrq-trigger
3)、测试结果:
1、系统自动重启
2、data/log/bbox 文件夹中新增一个故障文件夹,其中有last_kmsg日志,日志中包含一条panic故障信息和堆栈。
3、data/log/bbox 文件中history.log 中新增加一条category[PANIC],event[PANIC] 故障记录
上述3个结果均出现说明功能适配成功。
更多推荐
所有评论(0)