OpenHarmony开启linux原生panic故障自恢复重启功能
概述: 产品开发调试过程中难免会遇到内核发生故障上报panic的情况,内核未配置panic故障自动重启的功能会导致设备卡死,特别是在进行稳定性测试的场景下,会严重阻塞自动化测试的进行。 1、判断是否已适配panic故障自动重启的功能 使用如下指令模拟触发一个panic故障 echo c > /proc/sysrq-trigger 如果产品未适配自动重启功能,此时界面会卡死,按键无响应,只能通过断电
概述:
产品开发调试过程中难免会遇到内核发生故障上报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)
更多推荐
所有评论(0)