前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派 3B 折腾:硬件看门狗

树莓派 3B 折腾:硬件看门狗

作者头像
云深无际
发布2021-04-14 11:40:16
1.2K0
发布2021-04-14 11:40:16
举报
文章被收录于专栏:云深之无迹云深之无迹

在计算机中,“看门狗”指的是一种硬件计时器,用于在计算机失去响应(死机)的时候重启计算机。计算机的系统上要运行一个程序不断和看门狗硬件通信。当通信中断经过一段预设的时间后,看门狗就会通过发送 RESET 信号或者切断再接通电源等方式强制重启,保证计算机上运行的服务不长时间中断。

在折腾树莓派的过程中,我也曾好几次让树莓派失去响应,结果不得不人工开关电源来重启。通过开启树莓派上的硬件看门狗功能,就可以减少这种情况的出现。

加载驱动

由于 Linux “万物皆文件”的特点,可以通过 ls 命令直接查看看门狗驱动的状态:

ls /dev/watchdog

如果有这个文件,可以直接跳到下一部分。如果没有,就要根据树莓派版本加载驱动:

  1. 树莓派 1代的驱动名为:bcm2708_wdog
  2. 树莓派 2代的驱动名为:bcm2709_wdog
  3. 树莓派 3代的驱动名为:bcm2835_wdt

使用 modprobe -v [驱动名] 加载驱动,然后再 ls /dev/watchdog 查看情况。如果驱动加载成功,就要将这个驱动设置为开机加载。编辑 /etc/modules,另起一行填入驱动名就可以了。

安装通信软件

前面提到,硬件看门狗需要和软件通信来确定系统的状态。在 Raspbian 下这个软件是 watchdog,可以直接 apt-get 安装:

apt-get install watchdog

然后由于显而易见的原因,要把它设置为开机启动:

systemctl enable watchdog

然后编辑配置文件 /etc/watchdog.conf,作出如下修改:

  1. 取消 #max-load-1 = 24 的注释(删除开头的 # 号),代表当系统 1 分钟内的负载高于 24(已经非常非常高了),就重启系统
  2. 取消 #watchdog-device = /dev/watchdog 的注释,设置看门狗的路径
  3. 增加一行 watchdog-timeout = 15,代表 15 秒内系统无响应就重启系统,在树莓派 3B 上这个值最高为15。注意不要设置的太小,否则可能造成系统反复重启。

保存修改,重启看门狗服务:

service watchdog restart

看门狗功能就启用了。

测试

可以通过 kill 掉看门狗服务来模拟系统死机的情况:

pkill -9 watchdogpkill -9 wd_keepalive

过 15 秒后树莓派就会自动重启。

代码语言:javascript
复制
https://lantian.pub/article/modify-computer/raspberry-pi-3b-hardware-watchdog.lantian/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加载驱动
  • 安装通信软件
  • 测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档