Time sync de
Dieses Tutorial beschreibt, wie man die Zeitsynchronisation der Systemuhr einrichtet, indem man den Kernel des RPi mit dem PPS (Pulse-Per-Second) Signal von Ublox diszipliniert chronyd.
Installieren Sie das pps-Kernel-Treibermodul
Bearbeiten Sie die Datei /boot/config.txt und fügen Sie die folgende Zeile hinzu:
dtoverlay=pps-gpio,gpiopin=18
Dadurch wird das Kernel pps-Treibermodul beim Start aktiviert und hört auf GPIO-Pin 18, an den der Timepulse-Ausgang des uBlox auf dem MuonPi HAT-Board angeschlossen ist. Nach einem Neustart sollte man den aktivierten Treiber in der Kernel-Modul-Liste sehen.
Um die Funktionalität von pps zu testen, kann das Kommandozeilen-Tool ppstest
verwendet werden (Installation mit sudo apt install pps-tools
).
Einrichtung des Chrony-Daemons
Um die Systemuhr zu disziplinieren, muss das pps-Signal betrachtet werden und aus der mittleren Zeitdifferenz eine Korrektur auf die Taktrate vorgenommen werden. Dies kann mit dem chrony-Daemon realisiert werden. Installieren Sie chrony mit sudo apt install chrony
und bearbeiten Sie die Konfigurationsdatei in /etc/chrony/chrony.conf
. Ändern Sie die Zeilen wie unten gezeigt oder fügen Sie sie hinzu.
# Welcome to the chrony configuration file. See chrony.conf(5) for more # information about usuable directives. # use a server from a public pool of ntp servers pool 2.debian.pool.ntp.org iburst # add another server within the local network to prevent synchronization loss in case of internet outages, not mandatory server 192.168.2.1 iburst
# add the pps device as a trusted synchronization source refclock PPS /dev/pps0 refid PPS trust ...
Schließlich starten Sie chronyd mit sudo systemctl restart chrony.service
neu und beobachten die Aktivität z.B. mit:
pi@raspberrypi:~ $ chronyc sources 210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PPS 0 4 377 17 +195ns[ +823ns] +/- 208ns ^? fb07-unbekannt2.physik.u> 0 10 0 - +0ns[ +0ns] +/- 0ns ^- ns1.hrz.uni-giessen.de 2 9 377 184 -239us[ -238us] +/- 39ms ^- ns2.hrz.uni-giessen.de 2 9 377 240 -129us[ -127us] +/- 30ms
Sie können sich auch detailliertere Ausgaben mit chronyc sourcestats
und chronyc tracking
ansehen.
Beachten Sie, dass die Synchronisation über pps nur dann funktioniert, wenn eine zuverlässige ntp-Quelle für die Grobsynchronisation verfügbar ist. Das bedeutet, dass bei Netzwerkausfällen das Ziehen der Systemuhr über den pps-Zeitimpuls nicht gewährleistet ist. Eine Abhilfe wäre die Einbeziehung der von GNSS gelieferten absoluten Zeit als Zeitquelle für die Chronologie. Dies muss jedoch noch getestet und dokumentiert werden.