首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不引用其他服务器的情况下设置ntpd服务器时间?

如何在不引用其他服务器的情况下设置ntpd服务器时间?
EN

Unix & Linux用户
提问于 2019-06-24 07:55:17
回答 1查看 506关注 0票数 3

我有一个嵌入式系统,它使用NTP在本地同步UTC。系统中的一个客户端充当其他客户端的时间参考。我想你可以把它想象成0层。该"NTP服务器“上的程序可能会从许多潜在的时间源中获得设置时间的消息,例如GPS系统或通过UI设置新时间的人。新的时间并不是NTP端口123上的实际NTP消息。

一段时间以来,我一直在寻找如何设置ntpd时间,但没有成功。我在想一个popen()在做些什么

如何在不引用外部NTP服务器的情况下设置ntpd服务器时间?

作为一个示例用例,时间源可能是其中之一:/oem7 7/Content/hom.htm (全球导航卫星系统接收者)。这只是一种可能的配置。其他客户使用自己独立的时间来源。它不包括NTP服务器,所以我必须从头开始实现一台。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-06-24 10:25:43

时间是一个比许多人意识到的要复杂得多的话题。虽然看起来您所需要做的就是“设置ntpd时间”,但实际上还有很多需要考虑的问题。

对于您的问题,一个非常盲目(糟糕)的答案可能是简单地使用命令行上的clock或程序中的stime设置系统时间。这将有效,因为NTP不存储它自己的内部时钟。但是这样做可能不会产生你真正想要的结果。

NTP不仅设置当前系统时间并将其分配给客户端,还跟踪时钟中的错误,允许它在轮询另一个时间源之间进行调整。简单地设置当前时间不会通知NTP错误,因此不会更新NTP用于调整系统时钟的“频率”。

如果您唯一的实时源是设置系统时间的人,则可能是您唯一的选择。

如果您希望使用GPS作为ntpd服务器的时间源,那么正确的术语是,您试图将ntpd配置为第1层服务器。

在对这个问题做了一些解读之后,ntpd似乎确实有一种内置的方式,可以与硬件时钟(包括GPS )进行对话。它是使用虚拟地址范围配置的127.127.0.0/16。这里有一个例子:

如果由于时间设备实际上没有附加到NTP服务器框,所以您也无法使用它,那么您可以编写自己的内核模块来模拟基于传入数据包的硬件时钟。

但到目前为止,您最好的选择是使用其他人为此目的而建立的驱动程序。如果有可能,您应该将您的GNSS接收器附加到一个实际运行ntpd的盒子上,以便ntpd在需要时自动获得时间。

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

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

复制
相关文章

相似问题

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