首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在SupermicroX9DR3-F主板上重置硬件看门狗定时器的看门守护进程

无法在SupermicroX9DR3-F主板上重置硬件看门狗定时器的看门守护进程
EN

Unix & Linux用户
提问于 2019-12-08 21:09:32
回答 2查看 2.2K关注 0票数 3

我有一个超微型X9DR3-F主板,其中JWD跳线引脚1和2短路,并且启用了UEFI中的看门狗功能:

这意味着系统在大约5分钟后被重置,如果没有任何东西重置硬件看门狗计时器。我安装了watchdog守护进程并将其配置为使用iTCO_wdt驱动程序:

代码语言:javascript
复制
$ cat /etc/default/watchdog 
# Start watchdog at boot time? 0 or 1
run_watchdog=1
# Start wd_keepalive after stopping watchdog? 0 or 1
run_wd_keepalive=1
# Load module before starting watchdog
watchdog_module="iTCO_wdt"
# Specify additional watchdog options here (see manpage).
$ 

启动watchdog守护进程时,驱动程序将在没有问题的情况下加载:

代码语言:javascript
复制
$ sudo dmesg | grep iTCO_wdt
[   17.435620] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[   17.435667] iTCO_wdt: Found a Patsburg TCO device (Version=2, TCOBASE=0x0460)
[   17.435761] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
$ 

此外,还存在/dev/watchdog文件:

代码语言:javascript
复制
$ ls -l /dev/watchdog
crw------- 1 root root 10, 130 Dec  8 22:36 /dev/watchdog
$ 

watchdog-device选项在watchdog守护进程配置中指向以下文件:

代码语言:javascript
复制
$ grep -v ^# /etc/watchdog.conf 



watchdog-device    = /dev/watchdog
watchdog-timeout   = 60


interval           = 5
log-dir            = /var/log/watchdog
verbose            = yes
realtime           = yes
priority           = 1

heartbeat-file     = /var/log/watchdog/heartbeat
heartbeat-stamps   = 1000
$ 

为了调试对看门狗设备的写入,我启用了heartbeat-file选项,并将保持活着的消息发送到/dev/watchdog

代码语言:javascript
复制
$ tail /var/log/watchdog/heartbeat
 1575830728
 1575830728
 1575830728
 1575830733
 1575830733
 1575830733
 1575830733
 1575830733
 1575830733
 1575830733
$ 

然而,尽管如此,服务器以大约五分钟的间隔重新设置自己。

我的第二个想法是,也许iTCO_wdt驱动程序控制C 606芯片组中的看门狗,而看门狗重置服务器则是IPMI的一部分。因此,我确保在引导期间没有加载iTCO_wdt驱动程序,并重新启动了服务器。公平地说,/dev/watchdog已经不在了。现在我加载了ipmi_watchdog模块:

代码语言:javascript
复制
$ ls -l /dev/watchdog
ls: cannot access '/dev/watchdog': No such file or directory
$ sudo modprobe ipmi_watchdog
$ sudo dmesg -T | tail -1
[Tue Dec 10 21:12:48 2019] IPMI Watchdog: driver initialized
$ ls -l /dev/watchdog
crw------- 1 root root 10, 130 Dec 10 21:12 /dev/watchdog
$ 

。。最后,启动基于watchdog文件的/var/log/watchdog/heartbeat守护进程,该进程以5s间隔写入/dev/watchdog。此外,还可以使用strace确认这一点:

代码语言:javascript
复制
$ ps -p 2296 -f
UID        PID  PPID  C STIME TTY          TIME CMD
root      2296     1  0 01:28 ?        00:00:00 /usr/sbin/watchdog
$ sudo strace -y -p 2296
strace: Process 2296 attached
restart_syscall(<... resuming interrupted nanosleep ...>) = 0
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
open("/proc/uptime", O_RDONLY)          = 2
close(2)                  = 0
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
nanosleep({5, 0}, NULL)                 = 0
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
open("/proc/uptime", O_RDONLY)          = 2
close(2)                  = 0
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
nanosleep({5, 0}, NULL)                 = 0
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
open("/proc/uptime", O_RDONLY)          = 2
close(2)                  = 0
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
write(1, "\0", 1)        = 1
nanosleep({5, 0}, ^Cstrace: Process 2296 detached
 
$

上面提到的带有PID的watchdog守护进程是以2296中的heartbeat-file选项被注释掉的方式启动的,目的是减少strace输出中的write系统调用。

但是,服务器仍然以大约300 s的间隔重新启动。

为什么看门狗守护进程不能在SupermicroX9DR3-F主板上重置硬件看门狗定时器?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-01-06 20:29:00

看门狗守护进程无法在SupermicroX9DR3-F主板上重置硬件看门狗定时器的原因是UEFI中的看门狗功能控制第三看门狗。这是在温邦德超级I/O 83527芯片。换句话说,iTCO_wdtipmi_watchdog的驱动程序错在了看门狗芯片上。

票数 2
EN

Unix & Linux用户

发布于 2021-07-01 03:49:47

在A2SDi-4C-HLN4F上,我必须使用bmc_watchdog (来自freeipmi)才能使其工作。

票数 -1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/556209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档