如何让 ntp 使用 gpsd 更新具有较大偏移量的系统日期/时间

如何让 ntp 使用 gpsd 更新具有较大偏移量的系统日期/时间

我的系统连接了 GPS,如果我将系统时间更改为领先/落后 GPS 时间不到 4 小时,ntpd确保系统时间更新以匹配 GPS 时间。但是,如果该偏移量超过 4 小时,则不会进行更新。

我已确保运行ntpd使用该-g选项,但它仍然不起作用,除非我使用普通的 ntp 服务器,server 0.debian.pool.ntp.org iburst例如/etc/ntp.conf。但是,我们假设相关系统在正常运行期间无法访问互联网。

该文件中的其他相关设置是:

server 127.127.28.0 minpoll 4 maxpoll 4
fudge 127.127.28.0 time1 0.420 refid GPS

server 127.127.28.1 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.1 refid GPS1

(来源:gpsd手册页)

我什至添加了tinker panic 0该配置,只是为了确保,但仍然没有运气。

答案1

我决定去一次解决方法... 我用了慢性的

这是我在配置文件中/etc/chrony/chrony.conf使用 GPS 作为参考时钟的内容(来源):

refclock SHM 0

然后,要真正得到chrony为了进行较大的偏移调整,而不是正常的逐步调整,我将其添加到同一个配置文件中:

makestep 1000 -1

这意味着当硬件时钟关闭至少 1000 秒时,将发生步长调整。-1意味着尝试尽可能多的次数来匹配参考时钟。

我保留了 Debian Wheezy 提供的其他设置不变。

答案2

4 小时限制检查在 ntpd/refclock_shm.c (ntp-4.2.8p7) 中实现,并且在 /etc/ntp.conf 中将值“1”设置为 flag1 似乎会停止此检查。

 server 127.127.28.0 minpoll 4 maxpoll 4 prefer
 fudge 127.127.28.0 refid GPS stratum 4
 fudge 127.127.28.0 time1 0.113  # coarse processing delay offset
 fudge 127.127.28.0 flag1 1      # ignore difference limit

我在 RaspberryPi 上运行 ntpd 4.2.8p3。

相关内容