System clock always unsynced
Christian Weisgerber
naddy at mips.inka.de
Mon Apr 27 15:11:20 UTC 2015
I run OpenNTPD, from ports/net/openntpd, and I've noticed that after
each reboot, the initial system time is further off. (This is quite
noticeable with OpenNTPD, since by default it does *not* jump the
clock on startup like the base ntpd does.) It's as if the RTC was
never synchronized to the system clock.
Some digging in sys/kern/kern_ntptime.c shows indeed that the RTC is
only synced if STA_UNSYNC is not set, and dumping the value of the
timex struct...
offset: 0
freq: 2730304
maxerror: 84860000
esterror: 500000
status: UNSYNC
constant: 0
precision: 0
tolerance: 32500000
state: ERROR
... reveals that the clock remains permanently unsynced. Clearly,
OpenNTPD, which uses adjtime(2) to correct offsets and ntp_adjtime(2)
with MOD_FREQUENCY to correct the frequency, doesn't handle this
quite right.
What *does* an ntpd daemon need to do to sync the clock?
The ntp_adjtime(2) man page documents struct timex in detail, but
is very vague on what all of this means.
--
Christian "naddy" Weisgerber naddy at mips.inka.de
More information about the freebsd-hackers
mailing list