【问题标题】:Chrony sets system time but does not sync RTCChrony 设置系统时间但不同步 RTC
【发布时间】:2020-10-28 14:09:02
【问题描述】:

我已经为 Chrony 配置了 rtcsync 标志,它应该“启用硬件实时时钟 (RTC) 的内核同步”,但事实并非如此。

Chrony 使用 ntp 正确设置系统时间,但 RTC 未受影响,我似乎无法找出原因。我的猜测是内核无法识别 Chrony 同步 RTC 的请求,但这只是猜测。

版本
内核:4.19
时间:3.5

更新:

似乎在内核尝试访问它之后注册了外部 RTC,这阻止了将 RTC 与 NTP 同步的系统时间同步。 来自dmesg

...
[    6.317060] hctosys: unable to open rtc device (rtc)
...
[   14.303503] rtc-ds1307 9-0068: registered as rtc0
...

我通过添加一个每 10 分钟更新一次 hwclock 的 cronjob 完成了一个临时解决方法。

【问题讨论】:

  • 更新后,您可能希望向后移植提交 f9b2a4d6a5f1 ("rtc: class: support hctosys from modules RTC drivers") 或在内核中静态编译 ds1307 驱动程序

标签: linux-kernel hwclock chrony


【解决方案1】:

要让rtcsync 工作,您必须正确设置RTC_SYSTOHCRTC_SYSTOHC_DEVICE 内核选项,因为这只是要求内核将系统时间同步到RTC。它大约每 11 分钟执行一次。

但是,在这种情况下,更好的方法是使用rtcfile(和rtcdevice),chrony 将处理 RTC。如果 RTC 支持微调机制,它甚至会计算 RTC 漂移,然后可以对其进行校正。

【讨论】:

  • 我已将这些行添加到“/etc/chrony.conf”:“rtcfile /etc/rtc”和“rtcdevice /dev/rtc0”,但它仍然只更新系统时间而不是实时时钟。我需要更多的东西吗?日志只显示它正在调整系统时钟
  • 我也尝试设置您提到的选项。 RTC_SYSTOHC=yRTC_SYSTOHC_DEVICE="rtc0" 但它似乎仍然没有更新 hwclock
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多