一、安装并加载驱动
1、拷贝驱动文件:
拷贝 nuvwdt.zip 到 /home/用户名 下,解压得到 nuvwdt.ko 驱动文件
1 | zip nuvwdt.zip |
2、永久安装模块(重启后生效):
为了让驱动在系统重启后自动加载,需要将nuvwdt.ko文件复制到系统模块目录,并更新依赖:
1 | # 创建模块目录(若不存在) |
二、通过 systemd 服务加载驱动(可指定参数)
1、创建服务文件:
1 | sudo vim /etc/systemd/system/nuvoton-wdt.service |
内容如下:
1 | [Unit] |
模块参数:
timeout:看门狗超时时间(1-255 秒,默认 60 秒)nowayout:默认0:允许通过关闭设备停止看门狗 1:一旦启动是否无法停止 (配置为1,服务启动后自动倒计时,建议最终环境使用时配置,并搭配喂狗服务使用)early_disable:启动时是否禁用看门狗debug:调试信息开关wdt_sel:选择看门狗通道(1 对应 WDT1,3 对应 WDT3,默认 1)
2、启动并设置开机自启:
1 | # 重新加载systemd配置 |
三、验证安装结果
1 | # 查看模块是否加载 |
四、查看看门狗基本信息(可选)
通过 wdctl 工具(需安装 watchdog 包)查看看门狗的超时时间、支持的功能等(帮助后续测试判断超时周期):
1 | # 先安装 watchdog 工具包(包含 wdctl 和用户空间喂狗程序) |
预期结果:输出包含超时时间(如 Timeout: 60 seconds,表示默认超时 60 秒,即 60 秒不喂狗会触发重启)、驱动名称(确认是 NUVOTON)等,示例:
1 | Device: /dev/watchdog1 |
五、配置自动喂狗服务
1、创建喂狗脚本:
1 | sudo vim /usr/local/bin/watchdog_keepalive.sh |
脚本内容:
1 |
|
赋予执行权限:
1 | sudo chmod +x /usr/local/bin/watchdog_keepalive.sh |
2、创建 systemd 服务:
1 | sudo vim /etc/systemd/system/watchdog.service |
服务内容:
1 | [Unit] |
3、启动并设置开机自启:
1 | # 重新加载systemd配置 |
4、验证服务状态:
1 | sudo systemctl status watchdog |