OpenHarmony的watchdog service频繁崩溃问题分析

内核开启 Watchdog

  1. 找到你的目标板 defconfig

根据你的 SOC/板子,在对应的 defconfig 中添加配置。以项目中已有的配置为参考:

通用框架(必须开启):

CONFIG_WATCHDOG=y

CONFIG_WATCHDOG_CORE=y

SOC 专用驱动(按实际硬件选一个):

DesignWare WDT(常见于 HiSilicon、RK 等)

CONFIG_DW_WATCHDOG=y

ARM SP805(ARM 通用)

CONFIG_ARM_SP805_WATCHDOG=y

软件 watchdog(无硬件时的备选)

CONFIG_SOFT_WATCHDOG=y

可选项:

防止 watchdog 在 boot 阶段被关闭

CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y

不允许关闭 watchdog(一旦打开无法停止)

CONFIG_WATCHDOG_NOWAYOUT is not set ← 调试阶段保持关闭

  1. 确认 DTS 中有 watchdog 节点

内核驱动需要 DTS 中有对应节点才能 probe,例如 DW WDT:

watchdog: watchdog@xxxxx {

compatible = "snps,dw-wdt";

reg = <0x0 0xXXXXXXXX 0x0 0x1000>;

clocks = <&clk_wdt>;

interrupts = <GIC_SPI XX IRQ_TYPE_LEVEL_HIGH>;

};

  1. 验证是否生效

内核启动后:

ls -la /dev/watchdog* # 应出现 /dev/watchdog 或 /dev/watchdog0

dmesg | grep -i watchdog # 看驱动 probe 日志

正常 probe 的日志类似:

2.xxx WDOG: Starting watchdog clock

2.xxx dw_wdt: Watchdog enabled (timeout=30s)

  1. 针对你的项目

你的项目 dp1000_oh_defconfig 中是 # CONFIG_WATCHDOG is not set,说明该板子 watchdog 被关闭了。如果目标就是这块板子,在其 defconfig 中加上:

CONFIG_WATCHDOG=y

CONFIG_WATCHDOG_CORE=y

CONFIG_DW_WATCHDOG=y # 根据实际 SOC 选择

CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y

相关推荐
leisoo809719 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
青瓦梦滋20 小时前
传输层UDP/TCP协议
linux·网络·c++·网络协议·tcp/ip·udp
ltl20 小时前
机密计算:SGX、SEV-SNP、TDX 与 ARM CCA
linux
ltl20 小时前
互联与网络:NVLink、InfiniBand、RoCE 与国产替代
linux
码上上班20 小时前
tengine知识点
linux·服务器·centos
OH_TPC1 天前
【鸿蒙优选三方库】@ohos/mpchart:让 HarmonyOS 应用的数据可视化开箱即用
华为·信息可视化·harmonyos·鸿蒙
雾时之林1 天前
Linux--软件管理、源码包安装
linux·服务器·数据库
sxstj1 天前
Ubuntu 完整安装并启用 Flatpak 教程
linux·运维·ubuntu
RisunJan1 天前
Linux命令-sshd(SSH 服务器守护进程)
linux·服务器·ssh
天疆说1 天前
Ubuntu 26.04 下 Intel Meteor Lake 核显 + NPU 驱动配置与 PyTorch NPU 推理实测
linux·pytorch·ubuntu