首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RTC时间同步不工作(CONFIG_RTC_SYSTOHC)

RTC时间同步不工作(CONFIG_RTC_SYSTOHC)
EN

Unix & Linux用户
提问于 2015-02-23 15:42:36
回答 2查看 5.7K关注 0票数 3

我在内核中启用了选项CONFIG_RTC_SYSTOHC

代码语言:javascript
运行
复制
Device Drivers  --->
    [*] Real Time Clock  --->
        [*]   Set the RTC time based on NTP synchronization

帮助说:

代码语言:javascript
运行
复制
CONFIG_RTC_SYSTOHC:

If you say yes here, the system time (wall clock) will be stored in the RTC
specified by RTC_HCTOSYS_DEVICE approximately every 11 minutes if userspace
reports synchronized NTP status.

但是,我的硬件时钟没有同步。我正确地设置了RTC_HCTOSYS_DEVICE

代码语言:javascript
运行
复制
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"

上面引用的帮助说明,如果“如果用户空间报告同步的NTP状态”,则同步工作。那是什么意思?我正在使用ntpdate定期同步我的时间(每4小时)使用cron。

如何告诉我的系统,我是ntp同步的,并且我希望我的硬件时钟被同步?

EN

回答 2

Unix & Linux用户

发布于 2015-11-20 14:34:28

从cron作业运行ntpdate将在每次运行时调整系统时间,但这并不意味着您的系统是"NTP同步“(时钟可以在周期性同步之间漂移),并且内核不会自动同步RTC。

您是否有什么特别的理由,您运行的ntpdate是从一个cronjob而不是运行ntpdntpd将保持更准确的时间,有更多的错误检查(这样一个错误的时间服务器不会给您造成混乱),并纪律系统的时钟频率,以补偿振荡器漂移。

此外,它将向内核报告"NTP同步状态“,然后内核将定期设置hwclock。

来自ntpdate手册页:

可以根据需要手动运行ntpdate以设置主机时钟,也可以从主机启动脚本运行ntpdate,以便在启动时设置时钟。在某些情况下,这对于在启动NTP守护进程ntpd之前设置时钟非常有用。还可以从cron脚本运行ntpdate。但是,需要注意的是,带有人为cron脚本的ntpdate不能替代NTP守护进程,它使用复杂的算法来最大化准确性和可靠性,同时最小化资源的使用。最后,由于ntpdate不像ntpd那样约束主机时钟频率,所以使用ntpdate的准确性是有限的。

通常,最好使用ntpd来保持时钟同步,除非您有特殊的理由不这样做(例如,传输数据非常昂贵的远程或隔离系统)。

票数 2
EN

Unix & Linux用户

发布于 2016-11-16 10:46:17

ntpdate在调整系统时间时不清除STA_UNSYNC标志。因此内核认为系统时间无效,不更新RTC。它没有清除STA_UNSYNC,因为它使用adjtime()来设置系统时间,而不是adjtimex()

为了使用CONFIG_RTC_SYSTOHC特性,您必须使用清除STA_UNSYNC标志的工具,即ntpd

可能问题应该向ntpdate开发人员报告。

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

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

复制
相关文章

相似问题

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