我有一个机器人,正在使用 timemaster 启动 chrony 并从我的 GPS 添加 PTP 源。当我在无法获得卫星定位的内部启动机器人时,GPS 声称它是 1980 年 1 月 5 日。结果,我得到了一个被选中的第 0 层源,时间步进到 1980 年(因为我有“makestep 1 3”配置为chrony),然后当我将机器人带到外面并且GPS开始发布正确的时间时,它开始向2021倾斜,它当然永远不会到达。例如,chrony 源列表如下所示:
[root@robot user]# chronyc sources
210 Number of sources = 5
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
#x PTP0 0 2 377 4 +15173d[+15173d] +/- 8760us
^* ipv4.ntp1.rbauman.com 2 6 377 38 -43ms[ -15ms] +/- 134ms
^- 150.136.0.232 2 7 377 148 -59ms[ -31ms] +/- 192ms
^+ 38.229.58.9 2 8 377 216 +30ms[ +55ms] +/- 124ms
^+ ntp.speculation.org 2 7 377 38 -5919us[ +22ms] +/- 130ms
我在捕获此数据时设置了正确的时间,因此您可以看到第一个源关闭了 15,173 天,因为 2021 - 1980 = 15000 天。
我们使用的简单而明显的解决方法是关闭所有东西,然后在我们外出后重新打开,但我希望有一个我缺少的 chrony 配置选项(或 timemaster 配置选项)会忽略源(即使他们声称是第 0 层)如果它在 20 年或其他一些如此巨大的时间内关闭。
我曾尝试更改 makestep 设置,但这实际上会使问题变得更糟,因为如果我们禁用 makestep,有人在里面的机器人上工作几个小时,时钟会向 1980 倾斜几个小时,然后时钟会出错,直到它可以在相同的时间内向后倾斜。
感谢您的任何想法。我实际上是在运行不同操作系统的三台嵌入式 PC 上执行此操作,因此我无法指定 Linux 版本或 chrony 版本。如果您有一个仅适用于最新版本 chrony 的修复程序,我很高兴听到它!