7

I have a GPS connected to my system, and if I change system time to be ahead/behind GPS time by less than 4 hours, ntpd ensures that the system time is updated to match that of the GPS. If, however, that offset is beyond 4 hours, no update takes place.

I have ensured to run ntpd with the -g option, but it still doesn't work, unless I use normal ntp servers, for example having server 0.debian.pool.ntp.org iburst in /etc/ntp.conf. Let us, however, assume that the system in question will not have internet access during normal operation.

The other relevant settings in that file are:

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

(source: gpsd manpage)

I even added tinker panic 0 to that config, just to make sure, but still no luck.

tshepang
  • 64,472
  • 86
  • 223
  • 290

2 Answers2

3

4 hours limit checking is implemented in ntpd/refclock_shm.c (ntp-4.2.8p7) and setting value '1' to flag1 in /etc/ntp.conf seems to stop this checking.

 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

I am running ntpd 4.2.8p3 on a RaspberryPi.

  • 1
    Although I have my concerns whether it is the same code of `ntpd` that may have been running in 2012 this likely does clear up from where the limit comes from (+1). – grochmal Jan 19 '17 at 02:11
3

I decided to go for a work-around... I used chrony.

Here is what I have in the config file at /etc/chrony/chrony.conf to use the GPS as the reference clock (source):

refclock SHM 0

Then, to actually get chrony to do large offset adjustments, instead of the normal gradual ones, I added this to the same config file:

makestep 1000 -1

That means that the step adjustment will happen when the hardware clock is off by at least a 1000 seconds. -1 means try as many times as it takes to get to match the reference clock.

I left the other settings intact, as provided by Debian Wheezy.

tshepang
  • 64,472
  • 86
  • 223
  • 290