Ich verwende Debian Jessie von einer SD-Karte auf einem Atmel xPlained SAMA5D3 SBC. Ich habe ein Python-Programm, das ein anderes Gerät über eine serielle Leitung abtastet. Das Gerät hat eine ziemlich zuverlässige 20s Countdown-Uhr. Ich stellte fest, dass sich die berechneten Zykluszeiten ziemlich schnell bewegten.
Dies führte zu der Entdeckung, dass systemd-timesyncd die Uhr alle 32s um 0,5s-1,0s anpasste. Es scheint die Tickrate nicht zu verändern, sondern nur zu kompensieren. Da es so viel ist, weicht es nie zurück und trifft es alle 32s. Ich stellte fest, dass sich die vollständigen ntp-Pakete und openntpd ähnlich verhielten.
Also habe ich systemd-timesyncd ausgeschaltet. Ich stellte fest, dass ich zu diesem Zeitpunkt kontinuierlich etwa 1,5 s pro Minute verlor.
Dies hat mich dazu gebracht, ntpdate und adjtimex zu installieren. Ich habe einen Cron-Job geschrieben, der alle 10 Minuten ein NTP-Update durchführte und diese Ergebnisse in einer Datei protokollierte. Mit der Gleichung
tickAdjust = ntpAdjustmentMilliseconds / 10minutes
Ich könnte adjtimex -t verwenden, um den Tick-Wert anzupassen. Mit einem Wert von 10158 wurden die 10-Minuten-Aktualisierungen sehr klein und schwebten auf beiden Seiten von 0.
Meine Frage an dieser Stelle ist also, was zu tun ist. Ich habe ein bisschen über Linux und die Zeit gelernt, aber ich scheine jetzt mehr Fragen zu haben. Ich weiß nicht, ob dieser Wert von 10158 akzeptabel ist oder nicht. Soll ich einfach ein kleines Python-Programm schreiben, das meine Protokolle analysiert und wie manuell vorgeht? Warum ist es anfangs so wild verzerrt, dass systemd-timesyncd es nicht anpassen kann? Zeigt mein Kernel überhaupt auf die richtige Taktquelle? In der Bedienungsanleitung wird angegeben, dass zwei Prozessortakte vorhanden sind. Die folgende Tabelle zeigt jedoch 3:
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
> tcb_clksrc pit jiffies
Wie verhalten sie sich? Ich habe mit dem Ändern der Taktquelle gespielt, aber es schien nichts zu ändern, warum? Wo ist die Systemuhr und die Hardwareuhr dabei? Wird die RTC-Hardware überhaupt verwendet?
Ich habe keine Angst davor, mit ntpdate und adjtimex nur meine eigenen zu "rollen", aber ich habe das Gefühl, dass ich einfach kein gutes Verständnis dafür habe, wie stabil die Zeit wirklich sein soll.