[ntp:questions] ntp drops gps/pps - lets time drift

M Z mcrunch2 at yahoo.com
Wed Jun 8 18:00:44 UTC 2011


I am trying to get an independently clocked SuSE 11.2 machine based on just 
GPS/PPS. I am using
gpsd 2.95 with garmin 17 serial port but also have tried this with globalsat 
mr350p. gpsd/cgps shows 3D 

signal lock. ntpq Ver. 4.2.6p2

*** HERE IS THE PROBLEM/Question ***
When I have an outside source, like 0.us.pool.ntp.org or tick.usask.ca, ntp uses
the PPS signal perfectly. When I drop the outside source or substitute with 
127.127.0.1,
NTP x's out my PPS and then GPS (when reach is 177) even though it is a good 
signal.
How can I force ntp to use the PPS signal or at least not drop it?
************************************

clocksource is tsc which seems to work a little better (also tried hpet, same 
problem)
I also tried it with none of the 'restrict' clauses and without 'disable'.

clip from ntp.conf:
#Must use disable for SuSe since the internal micro-nano timekeeping
#conflicts with ntp and causes excess jitter ( > .010 microsec ).
disable kernel
server 127.127.28.0  minpoll 4
fudge 127.127.28.0  time1 0.290 refid GPS stratum 3  #garmin
server 127.127.28.1  minpoll 4 prefer
fudge 127.127.28.1  refid PPS
server tick.usask.ca iburst    #stratum one canada server
driftfile /var/lib/ntp/drift/ntp.drift   #(has had values from -70 to 13)
restrict -6  ::1
restrict 127.0.0.1
restrict default  kod nomodify notrap nopeer noquery
restrict tick.usask.ca  mask 255.255.255.255 nomodify notrap noquery

Soon after restart:
ra2:# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+SHM(0)          .GPS.            3 l    3   16    3    0.000   14.703   1.701
*SHM(1)          .PPS.            0 l    2   16    3    0.000  -119.90   1.930
+tick.usask.ca   .GPS.            1 u    7   64    1   92.725  -109.97   3.086

after 12+ HOURS  looks good to me:
ra2:~> /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l    7   16  377    0.000  108.591  32.540
*SHM(1)          .PPS.            0 l    6   16  377    0.000    0.007   0.000
xtick.usask.ca   .GPS.            1 u   41   64  377   92.184    6.839   0.316
ra2:~> /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l    2   16  377    0.000   62.204  24.780
*SHM(1)          .PPS.            0 l    1   16  377    0.000    0.007   0.000
+tick.usask.ca   .GPS.            1 u    3   64  377   92.184    6.839   0.318
ra2:~> /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l   15   16  377    0.000   83.603  17.002
*SHM(1)          .PPS.            0 l   14   16  377    0.000    0.009   0.001
xtick.usask.ca   .GPS.            1 u   48   64  377   92.184    6.839   0.318


So, to run without external sources I run both without and with localclock:

without 127.127.1.0 (SHM (GPS/PPS) only):
ra2:# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l   13   16  177    0.000  122.103   6.617
xSHM(1)          .PPS.            0 l   12   16  177    0.000   -0.113   0.153
ra2:# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l    7   16  377    0.000  112.004  10.735
xSHM(1)          .PPS.            0 l    6   16  377    0.000   -0.186   0.018
ra2:# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l   11   16  377    0.000   23.303  11.474
xSHM(1)          .PPS.            0 l   10   16  377    0.000  -114.74   2.993

# With localclock
# LCL is unsynchronized
server 127.127.1.0 minpoll 8
fudge 127.127.1.0 refid clk_internal stratum 15

ra2:# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l   11   16  177    0.000   75.604  25.541
*SHM(1)          .PPS.            0 l   10   16  177    0.000   -0.119   0.136
 LOCAL(0)        .clk_.          15 l    -  256    0    0.000    0.000   0.000
ra2:# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l    4   16  377    0.000   67.604  30.856
xSHM(1)          .PPS.            0 l    3   16  377    0.000   -0.107   0.124
 LOCAL(0)        .clk_.          15 l    -  256    0    0.000    0.000   0.000
ra2:# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            3 l    2   16  377    0.000   58.803   8.170
xSHM(1)          .PPS.            0 l    1   16  377    0.000    0.077   0.014
*LOCAL(0)        .clk_.          15 l   32  256    7    0.000    0.000   0.000

using ntpd -ddd there are some early lines:
select: survivor 127.127.28.1 5.291672
select: survivor 127.127.28.0 8.291827
select: combine offset -0.047243999 jitter 0.000000477
event at 2 SHM(1) 963a 8a sys_peer
but then later:
select: survivor 127.127.28.0 3.057312
select: combine offset 0.087603614 jitter 0.021384352
event at 97 SHM(0) 961a 8a sys_peer
and then no survivors at all:
event at 98 0.0.0.0 0418 08 no_sys_peer



More information about the questions mailing list