You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Zynq-7000设备启动阶段喂硬件看门狗?

Zynq-7000启动阶段硬件看门狗喂狗解决方案(Petalinux 2021.1 + Yocto)

针对内核启动到用户态间隙40秒的看门狗喂狗问题,提供以下几种可行方案:

1. 内核启用Early Watchdog初始化机制

Zynq-7000的硬件看门狗由zynq_wdt驱动支持,可通过内核配置让驱动在启动初期就完成初始化并自动喂狗:

  • 进入Petalinux内核配置:petalinux-config -c kernel
  • 开启以下编译进内核的配置项:
    • CONFIG_WATCHDOG=y
    • CONFIG_ZYNQ_WATCHDOG=y
    • CONFIG_WATCHDOG_EARLY_INIT=y(允许内核启动早期初始化看门狗)
    • CONFIG_WATCHDOG_AUTO_ENABLE=y(内核启动时自动启用看门狗)
  • 调整内核启动参数,添加watchdog.timeout=2(设置看门狗超时为2秒),可通过petalinux-config -c rootfs或修改设备树chosen节点配置cmdline。

该方案能让内核在根文件系统挂载前就接管看门狗喂狗,覆盖40秒的启动间隙。

2. 基于Initramfs提前启动喂狗程序

如果内核自动喂狗机制不符合需求,可通过定制initramfs,在根文件系统挂载前启动自定义喂狗逻辑:

  1. 编写极简喂狗脚本watchdog_feed.sh:
#!/bin/sh
# 等待/dev/watchdog设备就绪
while [ ! -c /dev/watchdog ]; do
    sleep 0.1
done
# 循环喂狗
while true; do
    echo "1" > /dev/watchdog
    sleep 2
done
  1. 在Petalinux中配置initramfs:
    • 执行petalinux-config -c rootfs,确保busybox包含sleep命令(路径:Filesystem Packages -> misc -> busybox)
    • 将watchdog_feed.sh添加到initramfs的/init.d目录,修改initramfs的启动脚本(通常是/init),在挂载根分区前后台启动该脚本:
      # 在挂载根fs的代码段前添加
      /init.d/watchdog_feed.sh &
      
  2. 重新编译initramfs和内核,确保启动时优先加载定制的initramfs。

3. 调整Systemd服务启动优先级(用户态提前喂狗)

如果必须在用户态早期启动喂狗服务,可通过Systemd配置将服务优先级拉到最高:

  1. 编写喂狗服务文件watchdog-feed.service,放到/lib/systemd/system/:
[Unit]
Description=Hardware Watchdog Feed Service
After=sysinit.target
WantedBy=basic.target
DefaultDependencies=no

[Service]
Type=simple
ExecStart=/usr/bin/watchdog_feed.sh
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target
  1. 确保喂狗脚本/usr/bin/watchdog_feed.sh有执行权限,且脚本内包含/dev/watchdog设备就绪检查。
  2. 启用服务:systemctl enable watchdog-feed.service

通过DefaultDependencies=no和After=sysinit.target,能让服务在Systemd初始化的极早期启动,尽可能缩短喂狗间隙。

注意事项

  • Zynq看门狗一旦启用无法关闭(若开启CONFIG_WATCHDOG_NOWAYOUT=y),需确保喂狗逻辑不会中断。
  • 若使用设备树配置看门狗,需确保节点/amba/watchdog@e0006000的timeout-sec属性设置为2秒,避免内核默认超时过长。

内容的提问来源于stack exchange,提问作者Boune

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:42:42