linux-kernel - Chrony 设置系统时间但不同步 RTC
问题描述
我已经用 rtcsync 标志配置了 Chrony,它应该“启用硬件实时时钟 (RTC) 的内核同步”,但事实并非如此。
Chrony 使用 ntp 正确设置系统时间,但 RTC 未受影响,我似乎无法找出原因。我的猜测是内核无法识别 Chrony 同步 RTC 的请求,但这只是猜测。
版本
内核:4.19
Chrony: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 完成了一个临时解决方法。
解决方案
要开始rtcsync
工作,您必须正确设置RTC_SYSTOHC
和RTC_SYSTOHC_DEVICE
内核选项,因为这只是要求内核将系统时间同步到 RTC。它大约每 11 分钟执行一次。
但是,更好的方法是在这种情况下使用rtcfile
(and rtcdevice
),chrony 将处理 RTC。如果 RTC 支持微调机制,它甚至会计算 RTC 漂移,然后可以对其进行校正。
推荐阅读
- github - GitHub 中的图像不适用于自述文件
- jquery - jquery:计算字符数,对某些标签进行不同的计数
- html - Chrome 将空格添加到
使用时的标记
- selenium - selenium c#等待使用元素名称而不是定位器(By.Id)
- python - 如何对数组进行批量计算
- reactjs - 打开一个
通过单击在另一个组件中呈现的元素 - asp.net-core - .NET Core 2.1 MVC 身份授权 - 不同部分的不同用户角色
- javascript - 从数据库中设置重复字段的值
- python - Python - 熊猫直方图宽度
- javascript - 如何在 TSX 中将值从子组件传递给父组件?