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

相关推荐
潘正翔9 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
weigangwin10 小时前
agent-workspace-linux 不是远程桌面:Linux AI 工作区的隔离边界验收
linux·xvfb·mcp·桌面隔离·权限边界·bubblewrap·agent-workspace
Dovis(誓平步青云)11 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
Java小白笔记12 小时前
Docker 安装配置完全指南:MacOS 、Windows、Linux环境下的安装、配置与验证
linux·macos·docker
ldsweet12 小时前
《HarmonyOS技术精讲-Basic Services Kit》线程通信利器:Emitter实现高效线程间消息传递
华为·harmonyos
心中有国也有家12 小时前
AtomGit Flutter 鸿蒙客户端:Canvas 绘制进阶-路径、渐变与混合模式
android·javascript·flutter·华为·harmonyos
w1395485642213 小时前
鸿蒙应用开发实战【93】— 实战短信批量导入完整流程
华为·harmonyos·鸿蒙系统
qetfw14 小时前
CentOS 7 搭建 LDAP 目录服务
linux·运维·centos
Georgewu15 小时前
【HarmonyOS 三方库 】Python 三方库鸿蒙化适配 PC 完整迁移实战
harmonyos
ALINX技术博客15 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统进阶-PS DMA
linux·fpga开发