Ich denke du willst clock_gettime
mit CLOCK_TAI
richtig arbeiten. Ich habe das auch so gemacht.
Der kritische Satz in der Antwort, auf die verwiesen wird, lautet: "Bitte beachten Sie, dass der Offset von CLOCK_REALTIME beim Booten auf Null initialisiert wird und weder ntpd noch chronyd standardmäßig auf den korrekten Wert setzen (derzeit 35)."
Dies kann immer noch wahr sein, abgesehen davon, dass der Versatz jetzt 37 ist, aber ein aktuelles ntpd kann zumindest so konfiguriert werden, dass es den Versatz festlegt. Ich habe folgendes auf einem openSUSE-Rechner gemacht:
vi /etc/ntp.conf # Add the line: leapfile /var/lib/ntp/etc/ntp.leapseconds update-leap service ntpd restart less /var/log/ntp # Check for errors
Dann clock_gettime(CLOCK_TAI, &res)
schien es richtig zu funktionieren.
Ich denke, dass NTP den Offset mit ntp_adjtime
mit setzt MOD_TAI
. Durchsuchen der Chrony-Quelle mit grep -P '(ADJ|MOD)_TAI'
findet keine Übereinstimmungen, daher scheint Chrony diese Funktion noch nicht zu haben.