概述:

产品开发调试过程中难免会遇到内核发生故障上报panic的情况,内核未配置panic故障自动重启的功能会导致设备卡死,特别是在进行稳定性测试的场景下,会严重阻塞自动化测试的进行。

1、判断是否已适配panic故障自动重启的功能

使用如下指令模拟触发一个panic故障

echo c > /proc/sysrq-trigger

如果产品未适配自动重启功能,此时界面会卡死,按键无响应,只能通过断电重启设备恢复,否者会延时自动重启。

2、使用指令临时配置panic 自动重启功能并测试

打开panic自动重启功能并设置重启延时时间

echo 3 > /proc/sys/kernel/panic

其中 3 为重启延时3秒,继续使用步骤1的方法模拟一个panic故障,设备卡死后延时3秒后自动重启。该方法为临时方案,烧写新版本后,需重新设置,无法固化。

3、在内核dts文件引导程序中配置panic故障自动重启参数

找到内核dts配置文件,一般在目录:kernel/linux/linux-xx/arch/arm/boot/dts/xxxx.dts

在配置文件中搜索关键字“bootargs ”,找到引导程序配置参数,然后添加panic自动重启参数 panic=3; 3为延时3秒自动重启

//修改前
#bootargs = "xxxxx"
//修改后
bootargs = "xxxxx panic=3"

4、编译测试

删除out目录下kernel文件夹,整编项目,然后烧录使用步骤一的方法模拟测试,在指定延长时间后自动重启,说明配置成功。

5、知识扩展

该方案使用的是linux原生panic故障自恢复机制,故障日志会打印到kmsg日志中,OpenHarmony DFX领域开发bbox死机重启故障检测框架功能更加完善,获取故障数量和日志更加方便,详情参考:OpenHarmony_3.2Release_标准系统bbox(死机重启)故障检测适配指导_zhengxiaobo131202-LAVAL社区 (csdn.net)

 

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐