CentOS7下Adlink Express-TL 开启Watchdog功能
2026-1-5
| 2026-1-5
字数 3889阅读时长 10 分钟
type
status
date
slug
summary
tags
category
icon
password
在Express-TL设置中有两个watchdog
notion image
其中Power-Up Watchdog是系统缺省的Watchdog,Runtime Watchdog是EC下的watchdog,可以由Alink SEMA-EC软件驱动
 

1. 使能Power-Up Watchdog

 

1.1 更换 Yum 源

由于官方源已下线,你需要将源切换到 阿里云 (Aliyun) 或者官方的 Vault(归档) 源。推荐使用阿里云,速度快且稳定。
请直接复制以下 3 行命令在终端执行:
解释:这几行命令会将默认源文件中的 mirrorlist 注释掉,开启 baseurl,并将官方地址替换为阿里云地址。

1.2. 生成缓存并安装

完成上述两步后,执行以下命令刷新缓存并重新安装编译环境。
清理并生成缓存
重新执行安装命令

1.3. 安装 Watchdog 守护进程

CentOS 有专门的软件服务来负责“喂狗”。

1.4. 配置 Watchdog 服务

编辑配置文件 /etc/watchdog.conf:
找到以下几行,去掉前面的注释符 # 并根据需要修改:
  1. 指定设备
    1. 设置超时时间和喂狗间隔
      1. 注意:interval 必须小于硬件的超时时间(watchdog-timeout)。
     
    保存并退出 (:wq)。

    1.5. 启动服务并开机自启

    启动这个服务后,它就会自动开始每隔几秒向 /dev/watchdog 写入数据(喂狗)。

    1.6. 验证是否工作

    现在,看门狗应该已经“激活”并正在运行了。
    1. 查看服务状态:
    应该显示 Active: active (running)。
     
    1. 死机模拟测试(慎做!)
    如果你想确认“系统死机后是否真的会重启”,可以进行以下测试(会导致服务器重启,请确保无重要业务):
    杀掉喂狗的守护进程
    Linux 内核的逻辑是:一旦 /dev/watchdog 被打开(Open),如果负责打开它的进程突然死了(没有正常 Close),内核会认为系统出了大问题,看门狗硬件会继续倒计时,直到超时重启。
     
    当达到timeout时间后,系统将自动重启。
     

    2. 使能RunTime Watchdog

     

    2.1 更换 Yum 源

    由于官方源已下线,你需要将源切换到 阿里云 (Aliyun) 或者官方的 Vault(归档) 源。推荐使用阿里云,速度快且稳定。
    请直接复制以下 3 行命令在终端执行:
    解释:这几行命令会将默认源文件中的 mirrorlist 注释掉,开启 baseurl,并将官方地址替换为阿里云地址。

    2.2. 生成缓存并安装

    完成上述两步后,执行以下命令刷新缓存并重新安装编译环境。
    清理并生成缓存
    重新执行安装命令
     

    2.3.下载Adlink sema-linux-ec软件包

    sema-linux-ec-v4.3.12下载软件包,由于CentOS7的内核版本过低,默认的SEMA软件包不行支持CentOS7,所以需要对SEMA的代码进行修改,我为CentOS7临时修改了一个版本,给出了patch文件,由于hwmon和gpio功能在CentOS下无法正常编译,这个patch拿掉hwmon和gpio功能。
     

    2.4. 应用patch

    将上文中的patch内容copy到一个文件,例如:sema-v4.3.12-for-centos7.patch,运行一下命令将patch应用到软件包中
     

    2.5. 编译安装

     

    2.6. 加载驱动

    执行一下命令,查看驱动是否正常加载
     
    如果显示先前加载的驱动名称,则驱动正常加载。
     

    2.7. 拷贝相关文件到系统目录

    为什方便使用semautil工具,请执行下面的命令,将文件拷贝相应的目录中。

    2.8. 执行命令测试watchdog功能

    以下是semautil中关于watchdog的使用说明
     
    启动watchdog
    如果不喂狗,系统则会在60秒后重启
    喂狗
    停止watchdog
     
     
    注意由于系统重启后,驱动不会自动加载,用户需要编写驱动加载脚本和喂狗代码,RunTime watcdog才能正常工作,否者系统会重启。
     

    2.9 离线部署

    重要前提
    目标机器的操作系统内核版本(uname -r)必须与你编译驱动的源机器完全一致。否则 .ko 驱动文件将无法加载。

    1. 准备文件结构
    请在你的源机器(编译机器)上创建一个临时目录 sema_deploy,并按照以下结构放入文件。
    你需要从之前的编译目录中找到以下文件并复制进去:
     

    1. 编写安装/卸载脚本 (install.sh/uninstall.sh)
    请在 sema_deploy 目录下创建一个名为 install.sh/uninstall.sh 的文件,并将以下内容复制进去:
    install.sh
    uninstall.sh
    赋予脚本执行权限:

    1. 打包
    在源机器上,退回到上一级目录,将整个文件夹打包:

    1. 在目标机器上部署
     
    解压并安装:

     
    1. 用户使用说明
    将 sema_install_pack.tar.gz 复制到目标机器(U盘或SCP)。
    • 安装
      • 安装完成后,将自动运行后台的sema-watchdog.service,开启runtime-watchdog,并开始喂狗。
    • 卸载
      这个卸载脚本非常安全,它会优先确保硬件计时器停止,然后再删除文件,避免了“卸磨杀驴”导致机器重启的风险。
       
    • 开发
    • CentOS7 下驱动I226-V 网卡CentOS7支持Intel UHD Graphics
      Loading...