die Systemzeit auf meinem Raspi läuft recht schnell weg, so 2min/Halbjahr. Der Raspi hängt an einer Fritzbox, die die richtige Zeit natürlich kennt. Ich muss also die Zeit auf dem Raspi mal ab und zu neu stellen. timedatectl ist mir ein wenig bekannt, damit scheints aber nicht zu gehen.
Ich bin in Python unterwegs, vllt. kann man von dort direkt ntp anzapfen, ansonsten nehme ich auch gern das Linux Kommando.
Normalerweise installiert man den ntpd (ist im Paket ntpsec). Ohne stabiles Internet macht der aber keinen Spaß. Mit "rdate -anv pool.ntp.org" als root kann man die Systemzeit korrigieren, z.B. einmal am Tag. Der Aufruf funktioniert auf der Kommandozeile oder per cronjob oder auch mit Python. Für Python gibt es auch das Paket python-3-ntp.
Das -a bei rdate steht für adjust. Die Systemuhr wird dann nicht einfach verstellt, sondern rdate sagt dem Kernel um wie viel die Uhr falsch geht. Der Kernel lässt die dann um 0.05% schneller oder langsamer laufen bis die Zeit wieder stimmt. Wichtig ist, dass es keine Zeitsprünge gibt, vor allem nicht in die Vergangenheit.
Bei der Gelegenheit dann auch noch eine RTC nachrüsten, die kann man dann auch dem Linux beibringen und es kümmert sich selber darum, die interne Uhr mit NTP synchron zu halten
die Systemzeit auf meinem Raspi läuft recht schnell weg
Was für eine OS-Version hast Du installiert? Auf einem aktuellen Raspberry Pi OS (Debian 12) ist doch timedatectl aktiv, was die Zeit über ntp korrigiert.
Also bei ntpd, openntpd und vermutlich auch chrony, dürfte der Gangfehler der Uhr automatisch ausgeglichen werden. Dafür muss sich der Raspberry PI regelmäßig synchronisieren. Das geht auch vernünftig gut direkt über das Internet. Wenn man ein paar Euro zur Verfügung hat, kann man auch einen GPS-Empfänger verwenden und PPS mit einem entsprechenden GPIO-Pin verbinden, so dass man das als PPS-Eingangsgerät verwenden kann. (keinesfalls versuchen die Sekunde per UART zu lesen!)
Von den billigen Hüllkurven DCF77-Empfängern würde ich abraten, die sind weniger genau als wenn man sich die Zeit aus dem Internet holt.
keinesfalls versuchen die Sekunde per UART zu lesen!
Weil? Es könnte ja funktionieren? Alles eine Frage der Filter, und das kann der originale ntpd ziemlich gut. Zum Vergleich Internet und ublox-6, auf dem Schreibtisch, per USB-UART:
1
remote refid st t when poll reach delay offset jitter
... Wenn man ein paar Euro zur Verfügung hat, kann
man auch einen GPS-Empfänger verwenden und PPS mit einem entsprechenden
GPIO-Pin verbinden, so dass man das als PPS-Eingangsgerät verwenden
kann. (keinesfalls versuchen die Sekunde per UART zu lesen!)
Man sollte vor der Verwendung des PPS-Ausgangs zumindest einmal
die Plausibilitaet des Signals pruefen. Ich habe hier ein GPS-Modul,
dessen PPS-Ausgang mit Werten bis zu 100 µs jittert. :)
Das UART Telegramm wurd bei dem wohl auch nicht besser sein.
Von den billigen Hüllkurven DCF77-Empfängern würde ich abraten, die sind
weniger genau als wenn man sich die Zeit aus dem Internet holt.
Es gibt auch bessere, die ueber einen laengeren Zeitraum per
Korrelation zu einer genaueren Schaetzung kommen. In Zeiten von
G.P.S. lohnt sich der Aufwand aber nicht mehr wirklich.
Jeder kann sich heute fuer wenige Euro einen
ublox
ins Haus holen. Ein Platz am, oder noch besser vor dem Fenster,
sollte man ihm aber schon goennen.
Das UART Telegramm wurd bei dem wohl auch nicht besser sein.
Der Zeitpunkt zu dem das UART Telegramm kommt (welches), ist "irgendwann". Für Synchronisation im Sub-Sekundenbereich ist das ungeeignet, i.e. nicht spezififiert.
100us entspricht bei üblichen 9600Bd etwa der Bitdauer der seriellen Übertragung.
Was es nicht alles gibt, vielen Dank für den Link!
Aber rein für die Uhrzeit scheint es mir ein wenig übertrieben, verglichen mit "/sbin/rdate -pnv 192.168.178.1". Ja, "FRITZ!Box als Zeitserver im Heimnetz bereitstellen" muss angekreuzt sein (Heimnetz -> Netzwerk -> Netzwerkeinstellungen).
Aber rein für die Uhrzeit scheint es mir ein wenig übertrieben...
Naja, ich habe die Aussage:
„Der Raspi hängt an einer Fritzbox, die die richtige Zeit natürlich kennt”
so verstanden, dass die Zeit aus der FritzBox geholt werden soll, also händische Aktualisierung per hwclock und nicht als Zeitserver oder mit ntp (macht die FB selber).
Gut, nur für die Uhrzeit ists ein wenig übertrieben, das script bietet aber soviel mehr...