[[Vorlage(Getestet, )]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [:ntpd:ntp] arbeitet mit einer Vielzahl von lokalen Zeitquellen (serielle, USB-, PCI-Geräte) zusammen, z.B. DCF- oder GPS-Quellen. Die Nutzung von zwei möglichen externen Quellen wird im folgenden gezeigt: = DCF Funkuhr - Gude MouseClock II = Das folgende Beispiel zeigt, wie eine DCF-77 Uhr von [http://www.gude.info Gude] {de}, eine "MouseClock II Funkuhr", eingebunden wird. ntp erwartet DCF-Funkuhren unter `/dev/refclock-x` - daher wird eine [:udev:]-Regel benötigt, um dem meist seriell oder via USB angeschlossenen Gerät einen festen Namen zuzuweisen. Als Beispiel der Inhalt einer udev-Regel, z.B. '''/etc/udev/rules.d/05-persistent-dcf.rules''', passend zur Gude MouseClock II Funkuhr: {{{ KERNEL=="ttyUSB*", ATTRS{idProduct}=="e88a", SYMLINK+="refclock-%m" }}} udev-Regel aktivieren ntp neu starten[2][3]: {{{#!vorlage Befehl sudo udevadm trigger sudo service ntp restart }}} Nach der Installation des ntp-Dienstes wird die externe Funkuhr in der Konfigurationsdatei '''/etc/ntp.conf''' angegeben: {{{ # GUDE Expert mouseCLOCK USB II server 127.127.8.0 mode 19 prefer fudge 127.127.8.0 refid GUDE }}} * Die Angabe "...127.127.8.0..." ist keine IP-Adresse, sondern die genaue Spezifizierung einer "GUDE Expert mouseCLOCK". * Für jede von NTP unterstützte Referenz Uhr gibt es hier eine entsprechende vierstellige Zahlenkombination, beginnend mit '''127.127...''' die wie eine IP-Adresse aufgebaut ist, aber keine ist. * 127.127.'''8'''.0 - die "8" steht für Referenz Uhr Typ 8, eine generisch unterstütztes Modell ([http://www.eecis.udel.edu/~mills/ntp/html/refclock.html#list] {en}). * 127.127.8.'''0''' - die "0" beschreibt hier, dass /dev/refclock-'''0''' genutzt wird. * '''mode 19''' bedeutet, dass es ein "Gude Analog- und Digitalsystem GmbH 'Expert mouseCLOCK USB v2.0'" Gerät ist. Nach etwa 3 Minuten sollte eine korrekt ausgerichtete Funkuhr (nach Mainflingen/Hessen) synchronisiert sein. ntp und die Funkuhr können mit [:watch:] beobachtet und überprüft werden: {{{#!vorlage Befehl watch -n1 ntpq -c cv -c rv }}} {{{ associd=0 status=0020 , 2 events, clk_unspec, device="RAW DCF77 CODE (Expert mouseCLOCK USB v2.0)", timecode="--#--###---------D--S1-4-1-4p-24---p12----1-4---8--2--1---P", poll=12, noreply=0, badformat=0, baddata=1, fudgetime1=425.000, stratum=0, refid=GUDE, flags=2, refclock_time="d3c5d844.00000000 Fri, Aug 3 2012 4:55:32.000", refclock_status="DST; TIME CODE; (LEAP INDICATION; ANTENNA)", refclock_format="RAW DCF77 Timecode", refclock_states="*NOMINAL: 00:10:33 (88.16%); ILLEGAL DATE: 00:01:25 (11.83%); running time: 00:11:58" associd=0 status=0214 leap_none, sync_lf_radio, 1 event, freq_mode, version="ntpd 4.2.6p3@1.2290-o Tue Jun 5 20:12:08 UTC 2012 (1)", processor="x86_64", system="Linux/3.2.0-29-generic", leap=00, stratum=1, precision=-22, rootdelay=0.000, rootdisp=31.196, refid=GUDE, reftime=d3c5d838.75cb8306 Fri, Aug 3 2012 6:55:20.460, clock=d3c5d844.8f4457f4 Fri, Aug 3 2012 6:55:32.559, peer=44449, tc=6, mintc=3, offset=-43.458, frequency=-3.564, sys_jitter=1.685, clk_jitter=14.366, clk_wander=1.260 }}} In der Ausgabe erkennt man, dass die Funkuhr mit `stratum=0` und der zugehörige PC mit dem ntp-Dienst als `stratum=1` läuft. Zusätzlich kann es nötig sein, [:AppArmor:] den Zugriff auf das NTP-Gerät zu erlauben, und zwar nicht über den Symlink (`/dev/refclock-x`), sondern dem echten seriellen oder USB-Gerät. In der Datei '''/etc/apparmor.d/tunables/ntpd''' wird die die Variable NTPD_DEVICE auf das verwendete NTP-Gerät gesetzt: {{{ @{NTPD_DEVICE}="/dev/ttyUSB*" }}} Die Variable NTPD_DEVICE wird damit im AppArmor Profil `usr.sbin.ntpd` korrekt verwendet. AppArmor muss anschließend neu gestartet werden: {{{#!vorlage Befehl sudo service apparmor restart }}} = GPS-Maus - per gpsd = Ist am Rechner eine GPS-Maus angeschlossen, kann diese als Zeitquelle verwendet werden. Es sollte eine [:udev:]-Regel vorhanden sein, die der GPS Maus mit "SYMLINK+="gps0" einen festen Namen vergibt ('''/dev/gps0'''). Weitere Voraussetzung ist, dass die GPS-Maus von [:gpsd:] erkannt und verwendet wird, und gpsd als automatisch startender Dienst konfiguriert ist. Kurzhilfe für gpsd, Installieren und Konfigurieren[1]: {{{#!vorlage Befehl sudo apt-get install gpsd sudo dpkg-reconfigure gpsd }}} Die Fragen nach automatisch Starten und automatisch GPS Geräte erkennen wird mit Ja beantwortet. Als zusätzliche Option gibt man meist "-n" an, damit GPS Daten auch ohne Client permanent an den Rechner gesendet werden. Nach einem Neustart des gpsd mit {{{#!vorlage Befehl sudo service gpsd restart }}} werden die GPS Zeitdaten in den Shared Memory Driver (SHM) abgelegt. Nach einem Neustart der GPS-Maus kann es einige Minuten dauern, bis es einen SAT-fix hat und die Zeitdaten bereitstehen. Es können dabei weitere Clientprogramme gpsd gleichzeitig nutzen, die Nutzung als Zeitquelle für ntp blockiert die GSP Maus nicht. Clientprogramme dürfen '''/dev/gps0''' natürlich nicht direkt nutzten, sondern müssen so konfiguriert werden, dass sie gpsd nutzen. Die von gpsd bereitgestellten Zeitdaten in dem SHM können nun von ntp verwendet werden, die Konfiguration erfolgt in der '''/etc/ntp.conf''' : {{{ # SHM 0 server 127.127.28.0 fudge 127.127.28.0 refid GPSa # SHM 1 server 127.127.28.1 fudge 127.127.28.1 refid GPSp }}} SHM 1 mit PPS Daten wird nicht von allen GPS Mäusen unterstützt, und kann daher deaktiviert werden, falls hier keine Zeitdaten ankommen. Der ntp Dienst muss nun neu gestartet werden: {{{#!vorlage Befehl sudo service ntp restart }}} Die folgende Beispiel Ausgabe zeigt * die lokale Uhr (LOCAL(0)), * eine erreichbare (Spalte reach==377) GPS-Maus (SHM(0)), * eine genauer laufende DCF-Uhr der Firma [http://www.meinberg.de/ Meinberg] {de} (*SHM(2)), * sowie zwei Internet-Zeitquellen: {{{#!vorlage Befehl ntpq -c peers }}} {{{ remote refid st t when poll reach delay offset jitter ============================================================================== LOCAL(0) .LOCL. 10 l 155m 64 0 0.000 0.000 0.000 xSHM(0) .GPSu. 0 l 54 64 377 0.000 -104.24 1.684 *SHM(2) .DCFm. 0 l 4 16 377 0.000 -0.045 0.039 xzinc.v-yu.com 131.188.3.221 2 u 833 1024 377 73.571 -26.173 27.213 +char-ntp-pool.c .shm0. 1 u 771 1024 377 31.242 0.920 21.549 }}} #tag: Systemzeit