Synchronizing Networks with NTP
Subject:   you can roll your own stratum 1 server quite cheaply
Date:   2003-01-16 09:14:22
From:   anonymous2
I bought a Garmin GPS unit that has Pulse-per-second (PPS) output and hooked it up to the serial port of my overloaded 233MHz Pentium MMX laptop running RedHat 7.3. I then installed the PPSkit patch from and rebuilt my kernel (now 2.4.18-5customNANO though later patch is available for later kernels). After compiling ntpd and configuring it with GPS_NMEA and PPS here are the results:

ntpdc> kerninfo
pll offset: 4.817e-06 s
pll frequency: 95.529 ppm
maximum error: 0.002434 s
estimated error: 1.5e-05 s
status: 2107 pll ppsfreq ppstime ppssignal nano
pll time constant: 6
precision: 2.576e-06 s
frequency tolerance: 496 ppm
pps frequency: 95.529 ppm
pps stability: 0.020 ppm
pps jitter: 3.572e-06 s
calibration interval: 256 s
calibration cycles: 7714
jitter exceeded: 10997
stability exceeded: 334
calibration errors: 7

I could make these numbers better if I moved the GPS unit to another location with a better view of the sky (to see more satellites). But this is a huge improvement over its previous accuracy and good enough for my purposes. I'm sure a faster less loaded machine would help too. I recently rebooted the laptop after an uptime of 9 months(!) so the patch has been quite stable for me. Too bad nanosecond granularity isn't in the kernel yet...

- A happy reader