Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Apr 2015 14:39:27 +0000 (UTC)
From:      Christian Weisgerber <naddy@mips.inka.de>
To:        freebsd-hackers@freebsd.org
Subject:   System clock always unsynced
Message-ID:  <slrnmjsigv.8j.naddy@lorvorc.mips.inka.de>

next in thread | raw e-mail | index | archive | help
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@mips.inka.de



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?slrnmjsigv.8j.naddy>