Time sync de

From MuonPi-Wiki
Jump to navigation Jump to search

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.

lsmod zeigt das geladene pps_gpio Kernelmodul

Um die Funktionalität von pps zu testen, kann das Kommandozeilen-Tool ppstest verwendet werden (Installation mit sudo apt install pps-tools).

Prüfen des Zeitimpulssignals mit ppstest.

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.