systemd watchdog: /dev/watchdog: Device or resource busy

  • 前述:
  • 内核配置方法,使用SMSC-SCH3114I ,而不是 FINTEK-F81801U。这是必须的基本操作。 未配置OK,会导致电源管理问题。
  • 对于看门狗的系统调用Demo示例代码或示例脚本。看看是基于OS层面,还是应用程序层面的。 (基于Ubuntu或Yocto。LTMS表示无法操作看门狗。

针对前述,在初步查看内核配置后发现:系统中关于watchdog的驱动是叫iTCO_wdt.ko,它是Intel内部看门狗,是系统在启动过程中自动加载的,并非前述所写FINTEK-F81801U。

由于没有更多资料,目前甚至尚不清楚设备中是否有FINTEK-F81801U。

调试时可手动加载sch311x_wdt.ko,但加载后向/dev/watchdog设备写值时出现错误,具体操作如下:

# insmod /lib/modules/4.8.25-yocto-standard/kernel/driver/watchdog/sch311x_wdt.ko

# echo 1 > /dev/watchdog

bash: /dev/watchdog: Device or resource busy

应该是设备正在被使用

使用lsof查看占用的设备的进程:

# lsof /dev/watchdog

systemd

系统显示是systemd占用了

在/etc/systemd/目录下查找:

# grep -r dog /etc/systemd

/etc/systemd/system/multi-user.target.wants/systemd-networkd.service:WatchdogSec=3min
/etc/systemd/system/multi-user.target.wants/systemd-resolved.service:WatchdogSec=3min
/etc/systemd/system/bluetooth.target.wants/bluetooth.service:#WatchdogSec=10
/etc/systemd/system/dbus-org.bluez.service:#WatchdogSec=10
/etc/systemd/system.conf:RuntimeWatchdogSec=30s
/etc/systemd/system.conf:ShutdownWatchdogSec=5min

看样子是systemd.conf使用了RuntimeWatchdogSec 选项导致watchdog被占用,将/etc/systemd/system.conf 文件中RuntimeWatchdogSec选项屏蔽即可操作watchdog

系统镜像中,busybox watchdog命令解释:
watchdog

watchdog [-t N[ms]] [-T N[ms]] [-F] DEV

Periodically write to watchdog device DEV

Options:

        -T N    Reboot after N seconds if not reset (default 60)
        -t N    Reset every N seconds (default 30)
        -F      Run in foreground

    -T N如果未重置,则在N秒后重新启动(默认为60)
    -t N每N秒重置一次(默认为30)
    -F 在前台运行

Use 500ms to specify period in milliseconds

根据以上解释,使用以下命令,可使设备在2s后重启:

# watchdog -t 10 -T 4 /dev/watchdog

参考资料:
http://www.jinbuguo.com/systemd/systemd-system.conf.html
https://www.busybox.net/downloads/BusyBox.html
最后一篇比较关键
https://unix.stackexchange.com/questions/125080/linux-watchdog-and-systemd-watchdog

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值