我已经用rtcsync标志配置了Chrony,应该"启用硬件实时时钟(RTC(的内核同步";,但事实并非如此。
Chrony用ntp正确地设置了系统时间,但RTC没有受到影响,我似乎不知道为什么。我的猜测是内核没有识别出Chrony同步RTC的请求,但这只是猜测。
版本
内核:4.19
Chroony:3.5
更新:
内核尝试访问外部RTC后,外部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。
要使rtcsync
工作,您必须正确设置RTC_SYSTOHC
和RTC_SYSTOHC_DEVICE
内核选项,因为这只需要求内核将系统时间同步到RTC。它大约每11分钟进行一次。
然而,更好的方法是使用rtcfile
(和rtcdevice
(。在这种情况下,chrony将处理RTC。它甚至会计算RTC漂移,如果RTC支持微调机制,则可以对其进行校正。