如何确定机器上实现了硬件或软件看门狗?

7
我有一台嵌入式计算机正在开发中,想知道它是否具有软件看门狗还是硬件看门狗。
首先,我检查了一下,在/dev目录下发现了/dev/watchdog。但是当我输入ps命令时,我没有看到看门狗进程。所以我安装了一个看门狗守护程序(或驱动程序?),并验证了看门狗是否运行,再次使用ps命令。
我的问题是现在我不知道这是硬件还是软件看门狗...有一个.conf文件和一个名为/usr/sbin/watchdog的进程,由root拥有。如果这些信息有助于解决问题,请告诉我。
谢谢!
Niko
dmidecode在这台机器上没有显示看门狗信息,而在我的同事的笔记本电脑上它显示了watchdog present信息。另一方面,在我的计算机上,/dev文件夹没有显示看门狗条目,也没有lsmod|grep softdog显示任何内容。
从这里开始:http://www.sat.dundee.ac.uk/psc/watchdog/watchdog-testing.html 检查看门狗硬件
如果您已经成功加载了看门狗硬件的驱动程序模块(或者是“softdog”仿真器),那么您应该可以在/dev中看到相应的条目。例如: ls -l /dev/watch* crw------- 1 root root 10, 130 May 13 16:27 /dev/watchdog 我需要知道我需要加载哪个模块来进行硬件看门狗,并且我需要知道我的硬件看门狗需要什么模块!

我手头有两块板子:CAPA830,上面安装着Ubuntu 12.04系统;3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

在第二台机器上运行dmesg命令显示:
NMI watchdog:已启用所有CPU,永久消耗一个硬件PMU计数器。


@TheIndependentAquarius 您的平台使用哪种处理器?通常会有数据表可供您参考,以配置硬件看门狗的寄存器。 - Peter L.
@PeterL. uname -a 说:3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 在一台机器上,另一台机器是这个链接:http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CBsQFjAA&url=http%3A%2F%2Fwww.hectronic.se%2Fwebsite1%2F%2F50.0.1.0%2F423%2Fdownload_2259.php&ei=913kU_i2AY_c8AW5uILQBw&usg=AFQjCNFSUhdyuMPgDut_Y0s9-X7HAkhaYQ&sig2=q1uHhZuPlS6WI98DWFN3Ag&bvm=bv.72676100,d.dGc - Aquarius_Girl
1
如果这是基于Atom处理器的,看起来硬件看门狗是通过x86 ioport地址0x2E / 0x2F配置的。您可以编写一些代码来查看它是否在您的平台上配置。请参见该PDF第72页上的示例汇编代码。您可以简单地禁用硬件看门狗并查看它是否仍会触发以确定是否启用了软件看门狗。 - Peter L.
2个回答

5
如果您在谈论Linux的软件看门狗,那么应该加载softdog模块,您可以通过验证来确认。
$lsmod|grep softdog
softdog                13319  0 

5

每个系统只能存在一个看门狗,可以是软件看门狗或硬件看门狗。通常当插入看门狗(软件/硬件)时,内核会创建一个设备节点,如 /dev/watchdog。您可以检查文件是否存在。如果存在,则您的计算机上正在运行看门狗,否则不是。

现在,您提到的 /usr/bin/watchdog 是一个看门狗守护程序。它在后台运行,并持续向看门狗(实现为硬件/软件)报告系统状态。

有关该守护程序的更多信息,请参阅看门狗的手册页 man watchdog

要检查它是硬件还是软件看门狗,只需执行以下操作:

$ lmsmod | grep softdog

如果您得到了输出,那么您的系统正在运行软件看门狗,否则硬件看门狗已经被植入到系统中。这个检查需要在有名为/dev/watchdog的节点存在的情况下进行。
希望这可以帮助您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接