Another option is "gpsd": http://gpsd.berlios.de/
It provides access to the usual GPS functionality for local clients
(mainly useful on a mobile system where you want to run tracking software etc) but it also has an option to monitor the PPS signal and sync the NTP server via
the shared memory driver method.  It provides both absolute time (from the
serial messages) and PPS time, so no external reference is needed to get
the time synced.   Example from my system:

remote refid st t when poll reach delay offset jitter
==============================================================================
-SHM(0) .GPSa. 0 l 13 16 377 0.000 7.752 0.516 *SHM(1) .PPSa. 0 l 8 16 377 0.000 0.027 0.012

For this solution no kernel patches are required, but as the PPS handling is
done in a user process it is less precise than a kernel-supported method.
Still, the offset between PPS and kernel time is usually within the tens of
microseconds range.  When you update your kernel via some distributor's
update mechanism and don't need the microsecond-or-better precision of
a patched kernel, I would recommend the user process approach.

I don't recommend solutions that depend on NMEA. The time in an NMEA message is the time-of-fix, not the current time. At the moment the message is sent it may be tens to hundreds of milliseconds behind, and with some receivers there may be an uncertainty that is so bad that the PPS signal is resolved to the wrong second.

Rob
_______________________________________________
timekeepers mailing list
[email protected]
https://fortytwo.ch/mailman/cgi-bin/listinfo/timekeepers

Reply via email to