关闭11分钟内核模式

关闭11分钟内核模式

如果ntpd有效,内核每 11 分钟就会将系统时间复制到硬件时钟。通过命令显示

adjtimex --print  

我想停止内核十一模式。如果我跑

hwclock --hctosys

十一模式停止。但过了一段时间又恢复了。我想,这是由于ntpd

如何才能永远停止十一模式?

答案1

我假设你指的是Linux 中的 11 分钟时钟更新。如果您想ntpd在不更新硬件时钟的情况下继续运行,似乎唯一可行的选择是重建内核而不使用以下选项RTC_SYSTOHC

根据NTP同步设置RTC时间

如果您在这里选择“是”,如果用户空间报告同步的 NTP 状态,则系统时间(挂钟)将大约每 11 分钟存储在 RTC_HCTOSYS_DEVICE 指定的 RTC 中。

这需要重建,无法使用引导标志更改该选项。

或者,根据时间比较信息openntpd不激活内核同步。

答案2

就我而言,我能够通过执行以下操作使 CMOS 时钟处于本地时间,而无需进行内核编译:

确保 /etc/adjtime 有“LOCAL”而不是“UTC”(在我的例子中,它是文件的最后一行)。

确保 /etc/hardwareclock 中有“localtime”(在我的例子中,这是一个新文件,并且只有该行)。

执行上述操作似乎关闭了内核中的“NTP 同步”标志,这使得内核在关闭时无法将 UTC 时间写入 CMOS 时钟。所以内核很可能不会在 CMOS 时钟中保存系统时间(我还没有验证这一点)。然而,上述2个变化似乎关闭了“11分钟模式”。

这是“timedatectl”的输出:

rusty@quigon2 ~ $ timedatectl
Local time: Wed 2019-01-30 14:18:53 MST
Universal time: Wed 2019-01-30 21:18:53 UTC
RTC time: Wed 2019-01-30 14:18:50
Time zone: America/Phoenix (MST, -0700)
Network time on: yes
NTP synchronized: no
RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
...blah blah...

(注意上面的“NTP同步”信息,而且本地TZ中的RTC也是“是”)

在完成所有这些之后,您可能需要摆弄 NTP 或 rdate 或其他东西来确保您的时钟以某种方式同步。我把它留给读者作为练习。 (在我的机器上,我每 30 分钟运行一次“rdate -na timemachine ; hwclock --systohc”(以 root 身份运行)。您也许可以在这个环境中运行 NTPD 并且不需要 rdate,但我不确定关于“hwclock --systohc” - 可能需要......再次,留给读者作为练习。)

相关内容