/dev/watchdog 和 /dev/watchdog[0-9] 之间的区别?

/dev/watchdog 和 /dev/watchdog[0-9] 之间的区别?

在我的(嵌入式)系统上,我有多个看门狗字符设备:

# ls -al /dev/watchdog*
crw------- 1 imp  root  10, 130 Apr 26 07:43 /dev/watchdog
crw------- 1 root root 253,   0 Apr 26 07:44 /dev/watchdog0
crw------- 1 root root 253,   1 Apr 26 07:44 /dev/watchdog1

# dmesg | grep -i watchdog
[    2.342104] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    6.713125] softdog: Software Watchdog Timer: 0.08 initialized. soft_noboot=0 soft_margin=120 sec soft_panic=0 (nowayout=1)

我很确定这/dev/watchdog0是硬件看门狗,也是/dev/watchdog1软件看门狗,但为什么还有一个/dev/watchdog

背景:软件看门狗配置了nowayout标志,因此,一旦被喂入,它就不会再停止,直到重新启动。然而,写入/dev/watchdog似乎不会触发软件看门狗,也不会给我提供重要的nowayout功能。我可以/dev/watchdog1直接使用,但随后我需要一些可靠的识别正确的软件看门狗设备文件名的方法...

答案1

我也有同样的问题。根据内核文档:

  • id: [...] id 0 是特殊的。它既有 /dev/watchdog0 cdev(动态主要,次要 0),也有旧的 /dev/watchdog Miscdev。调用 watchdog_register_device 时会自动设置 id。

换句话说,/dev/watchdog两者/dev/watchdog0都指向同一个设备。任何额外的看门狗的编号都将大于0并且只有一个设备节点。

相关内容