Häufig gestellte Frage

GPS Zeit-Synchronisierung
Zuletzt aktualisiert vor einem Jahr

Wie kann ich eine Uhrzeit (und Datum) aktuell halten auf dem RaspberryPI? Warum GPS? Geht das nicht auch mit DCF77?

Schon bei der Notvallbox V2 fällt es auf: Die Uhrzeit des Raspberry PI ist nicht so genau, wie man das gerne hätte. Kann man dies im Notfall bei der V2 sicherlich noch verkraften, ist dies bei der V3 sicherlich schon ein auffallender Mangel.

OM Gerd (Funkmax) hat sich daher eine Synchronisierung der Computerzeit mit der Zeit des GPS-Signales gewünscht.

DCF77 ???

Grundsätzlich würde dies übrigens auch mit dem DCF77-Langwellenzeitzienst der Physikalisch Technischen Bundesanstalt in Braunschweig funktionieren. Aber es ist damit zu rechnen, dass dieser zuerst im Katastrophenfall ausfallen wird, auch wenn man diesen inzwischen schon als "kritische Infrastruktur" betrachten muss, da jede Einsatzformation immer mit Funkuhren arbeitet.

GPS-Zeit

Wir haben uns eine USB-GPS-Mouse besorgt (Bezugsquelle) und festgestellt, dass es ziemlich einfach ist, einen GPS-Empfänger einzurichten und die Systemzeit mit dem GPS Signal abzugleichen.

Empfänger in Betrieb nehmen

  • An einem freien USB-Port des PI oder PC anstecken. Wir gehen im folgenden vom PI aus.
  • ls -l /dev/serial/by-id
    Die Rückmeldung zeigt an, welcher GPS-Empfänger installiert ist und (WICHTIG!) an welcher (virtuellen) seriellen Schnittstelle dieser angeschlossen wurde. In unserem Fall ist dies /dev/ttyACM0.

Notwendige Software laden

  • sudo apt -y install gpsd gpsd-clients chrony
  • sudo nano /etc/default/gpsd
    Die Datei bitte editiern, damit sie anschliessend so aussieht:
# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
START_DAEMON=”true” 
### Bitte eigene korrekte Schnittstelle einsetzen!!!
DEVICES="/dev/ttyACM0" 
# Other options you want to pass to gpsd
GPSD_OPTIONS="-n"
# Automatically hot add/remove USB GPS devices via gpsdctl
USBAUTO="true"
  • Datei speichern und schliessen
  • sudo nano /etc/chrony/chrony.conf
    Folgende Zeile durch setzen eines # bitte auskommentieren:
pool 2.debian.pool.ntp.org iburst
  • Am Ende der Datei folgende Zeile einfügen:
refclock SHM 0 offset 0.5 delay 0.2 refid NMEA
  • Datei speichern und schliessen
  • sudo reboot

Prüfen ob alles läuft

  • systemctl is-active gpsd
    Ausgabe: active
  • systemctl is-active chronyd
    Ausgabe: active
  • Wenn beide Dienste auf „active“ stehen, dann werden die GPS-Daten ausgelesen (gpsd) und durch den Zeitserver chronyd regelmässig mit der Systemuhr abgeglichen.

Den GPS-Empfang prüfen

  • sudo gpsmon
  • Hier kann man nun die eingehenden GPS-Datenpakete beobachten.
  • In der linken Spalte werden die empfangenen Satelliten dargestellt. In der mittleren Spalt findet man die Uhrzeit wieder (ACHTUNG: UTC!!!) und unten sieht man die einlaufenden GPS-Daten.
  • Es kann durchaus einige Minuten dauern, bis ausreichend Satelliten empangen wurden.
image
  • Der GPS-Monitor ist aber zum Betrieb der Notfallbox nicht notwendig.
  • Auch ist bei heutigen GPS-Empfänger keine freie Sicht mehr zum Himmel erforderlich - zum Abgleich der Uhrzeit schon einmal gar nicht. Das Bild oben wurde gemacht bei geschlossenem Rolladen und der GPS-Mouse im Inneren meiner Wohnung ⇒ Voller Empfang!

Bitte warten!

Bitte warten... es dauert eine Sekunde!