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

tsh*_*ang 7 ntpd gpsd

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

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

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

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
Run Code Online (Sandbox Code Playgroud)

(来源:gpsd联机帮助页)

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

tsh*_*ang 3

我决定采取解决方法......我使用了chrony

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

refclock SHM 0
Run Code Online (Sandbox Code Playgroud)

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

makestep 1000 -1
Run Code Online (Sandbox Code Playgroud)

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

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