So bringen Sie ntp dazu, mit gpsd das Datum und die Uhrzeit des Systems mit einem großen Versatz zu aktualisieren

7

Ich habe ein GPS an mein System angeschlossen. Wenn ich die Systemzeit so ändere, ntpddass sie weniger als 4 Stunden vor / hinter der GPS-Zeit liegt, wird sichergestellt, dass die Systemzeit an die des GPS angepasst wird. Wenn dieser Versatz jedoch länger als 4 Stunden ist, findet keine Aktualisierung statt.

Ich habe sichergestellt, dass ntpddie -gOption ausgeführt wird, sie funktioniert jedoch immer noch nicht, es sei denn, ich verwende normale NTP-Server, z. B. server 0.debian.pool.ntp.org iburstin /etc/ntp.conf . Nehmen wir jedoch an, dass das betreffende System während des normalen Betriebs keinen Internetzugang hat.

Die anderen relevanten Einstellungen in dieser Datei sind:

server 127.127.28.0 minpoll 4 maxpoll 4
fudge 127.127.28.0 time1 0.420 refid GPS

server 127.127.28.1 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.1 refid GPS1

(Quelle: gpsdManpage)

Ich tinker panic 0habe diese Konfiguration sogar hinzugefügt , nur um sicherzugehen, aber immer noch kein Glück.

Tshepang
quelle
2
Habe ich richtig verstanden, dass Sie möchten, dass es überhaupt ohne Internetverbindung funktioniert?
Serge
Das ist richtig.
Tshepang

Antworten:

3

Ich entschied mich für ein gehen Work-around ... Ich benutze chrony .

Folgendes habe ich in der Konfigurationsdatei /etc/chrony/chrony.conf, um das GPS als Referenzuhr ( Quelle ) zu verwenden:

refclock SHM 0

Um dann tatsächlich chronygroße Offset-Anpassungen anstelle der normalen schrittweisen Anpassungen vornehmen zu können, habe ich dies derselben Konfigurationsdatei hinzugefügt:

makestep 1000 -1

Dies bedeutet, dass die Schrittanpassung erfolgt, wenn die Hardware-Uhr um mindestens 1000 Sekunden ausgeschaltet ist. -1bedeutet, versuchen Sie so oft wie nötig, um mit der Referenzuhr übereinzustimmen.

Ich habe die anderen Einstellungen intakt gelassen, wie von Debian Wheezy bereitgestellt.

Tshepang
quelle
3

Die Überprüfung des 4-Stunden-Limits ist in ntpd / refclock_shm.c (ntp-4.2.8p7) implementiert, und das Setzen des Werts '1' auf flag1 in /etc/ntp.conf scheint diese Überprüfung zu stoppen.

 server 127.127.28.0 minpoll 4 maxpoll 4 prefer
 fudge 127.127.28.0 refid GPS stratum 4
 fudge 127.127.28.0 time1 0.113  # coarse processing delay offset
 fudge 127.127.28.0 flag1 1      # ignore difference limit

Ich verwende ntpd 4.2.8p3 auf einem RaspberryPi.

Takayuki Matsui
quelle
1
Obwohl ich meine Bedenken habe, ob es sich um denselben Code handelt, der ntpdmöglicherweise 2012 ausgeführt wurde, klärt sich wahrscheinlich, woher das Limit stammt (+1).
gro♀