> From: Gregory Bond <gnb@itga.com.au>
> Date: Fri, 30 Jul 2004 09:38:32 +1000
> Sender: owner-freebsd-stable@freebsd.org
>
>
> We've got a GPS receiver to make an NTP server, and it has PPS output.
> Is there a guide to how to set up PPS on recent (4.10-ish) FreeBSD
> boxes? Or I can put it on a 5.x box if that is better. I've had a
> look in all the obvious places but the only references I can find are
> to old (load a line discipline or patch a kernel) solutions.
I'd suggest the documentation at www.ntp.org, but it has a few errors
and lacks a bit of FreeBSD specific bits.
First off, you will need to rebuild ntpd with the appropriate reference
clocks, pps and whatever type of GPS you have. The software is in
/usr/src/contrib/ntp/ntpd. You can look at the list of clock drivers and
pick the one you need. If you look at the driver source, you will see
that REFCLOCK and a driver specific variable need to be defined.
Go to /usr/src/usr.sbin/ntp/ntpd and rebuild ntpd with the clock driver:
make clean
make -DREFCLOCK -DCLOCK_yourclock
make install
You need to rebuild you kernel with "options PPS_SYNC". You can run
PPS
without this and the man page even says it's more accurate that way, but
my experience is that it is much more accurate with the kernel option.
I use CDMA clocks and they my time is stable within 10 microseconds.
I did find that nptd 4.2 seemed to converge better than 4.1, so I built
the ntp port instead of the standard one. I then just installed the ntpd
from the port over the one in /usr/sbin. 4.2 is now the standard NTP in
version 5 and I suspect it will be MFCed to STABLE soon.
Read the manual pages for pps and your GPS clock driver for how to set
up ntp.conf for that clock. You will need to set up kernel PPS there.
--
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman@es.net Phone: +1 510 486-8634