type
status
date
slug
summary
tags
category
icon
password
在Express-TL设置中有两个watchdog

其中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:
找到以下几行,去掉前面的注释符 # 并根据需要修改:
- 指定设备:
- 设置超时时间和喂狗间隔:
注意:interval 必须小于硬件的超时时间(watchdog-timeout)。
保存并退出 (:wq)。
1.5. 启动服务并开机自启
启动这个服务后,它就会自动开始每隔几秒向 /dev/watchdog 写入数据(喂狗)。
1.6. 验证是否工作
现在,看门狗应该已经“激活”并正在运行了。
- 查看服务状态:
应该显示 Active: active (running)。
- 死机模拟测试(慎做!)
如果你想确认“系统死机后是否真的会重启”,可以进行以下测试(会导致服务器重启,请确保无重要业务):
杀掉喂狗的守护进程
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 驱动文件将无法加载。
- 准备文件结构
请在你的源机器(编译机器)上创建一个临时目录 sema_deploy,并按照以下结构放入文件。
你需要从之前的编译目录中找到以下文件并复制进去:
- 编写安装/卸载脚本 (install.sh/uninstall.sh)
请在 sema_deploy 目录下创建一个名为 install.sh/uninstall.sh 的文件,并将以下内容复制进去:
install.sh
uninstall.sh
赋予脚本执行权限:
- 打包
在源机器上,退回到上一级目录,将整个文件夹打包:
- 在目标机器上部署
解压并安装:
- 用户使用说明
将 sema_install_pack.tar.gz 复制到目标机器(U盘或SCP)。
- 安装:
安装完成后,将自动运行后台的sema-watchdog.service,开启runtime-watchdog,并开始喂狗。
- 卸载:
这个卸载脚本非常安全,它会优先确保硬件计时器停止,然后再删除文件,避免了“卸磨杀驴”导致机器重启的风险。