[ntp:questions] PPS not working on newer kernel/distros
vitezslav at samel.cz
Sun Oct 14 17:16:07 UTC 2018
On Tue, Oct 09, 2018 at 01:04:05PM -0400, Brandon Applegate wrote:
> > On Oct 9, 2018, at 5:43 AM, Joachim Fabini <Joachim.Fabini at tuwien.ac.at> wrote:
> > Hello Brandon,
> > Which version of ntp is deployed on your system?
> > Any relevant/suspect output in syslog when restarting ntpd?
> > What does ntpq report?
> > First guess: please remember http://bugs.ntp.org/show_bug.cgi?id=3367 -
> > this was staged (only) for ntp-4.2.8p11. Make sure that either your ntp
> > has the patch already or patch your sources manually.
IMHO this patch is completely wrong! If we want kernel PPS (flag3 1) and
time_pps_kcbind() fails with EOPNOTSUPP we should fail the same way as
with outher errors because we get no kernel PPS! With this patch we
don't have any message and we don't fail and we have no kernel PPS.
Without this patch we fail correctly when time_pps_kcbind() fails with
> > br Joachim
> Hey Joachim,
> Actually I think you helped me out a few years ago when I first found
> this issue. You gave me a patch which I put against 4.2.8p6 I believe
> at the time. I was getting the kcbind error on Ubuntu 14.04.
> So yes, now that I’ve installed 4.2.8p12 (that includes the patch) - I
> no longer get this error. The bad news though is that it seems like I
> never lock on to PPS. I never get an ‘o’ in my billboard. If I put
> fudge flag3 back to 0, I seem to be in business (I get ‘o’ quickly and
> my offset settles down to near 0). But (and I don’t have actual
> before/after graphs or hard data to confirm this) but it seems like it
> wavers a bit more now than it did previously on Ubuntu 14.04 with
> fudge flag 3 set to 1.
In case of 'flag3 0' you are using userlevel PPS handling, in case of
'flag3 1' and proper kernel support (and proper timepps.h header file
and properly compiled ntpd sources) you are using kernel PPS.
To have proper kernel PPS support you need to have timepps.h header
file from git://github.com/ago/pps-tools.git installed in the right
place and then ntpd sources recompiled. timepps.h file from this
repository has properly implemented the time_pps_kcbind() function.
More information about the questions