Forum: PC-Programmierung Uhrzeit synchronisieren: Simpler SNTP-Server für Linux?


von Time Seeker (Gast)


Lesenswert?

Ich möchte die Uhrzeit auf zwei verschiedenen Embedded-Computern, welche 
von zwei verschiedenen Lieferanten stammen, miteinander synchronisieren:

1
  GPS-Antenne
2
3
     \   /
4
      \_/
5
       |
6
       |
7
+------+-------+                +--------------+
8
|              |                |              |
9
|  Rechner 1   +----------------+  Rechner 2   |
10
|              |    Ethernet    |              |
11
|  SNTP-Server +----------------+  SNTP-Client |
12
|              |                |              |
13
+--------------+                +--------------+

Für den Rechner 2 liefert der Hersteller bereits einen SNTP-Client mit. 
Hier muss man quasi nur noch die IP-Adresse des SNTP-Servers 
konfigurieren und dann läuft es.

Auf dem Rechner 1 existiert bisher keine Software für SNTP. 
Betriebssystem auf diesem Rechner ist Linux.

Kollegen berichten mir, dass man in einem anderen Projekt NTP bzw. einen 
NTP Daemon auf dem Rechner 1 aufgesetzt hatte. Dieser will aber 
anscheinend auch die Uhrzeit auf dem Rechner 1 selbst anpassen. Das soll 
nicht geschehen. Die Quelle für die Uhrzeit auf Rechner 1 ist ein 
GPS-Empfänger und da soll kein anderer Dienst reinpfuschen.

Gesucht ist also ein einfacher SNTP-Server, der nichts anderes macht als 
Datum und Uhrzeit über Ethernet mittels SNTP zu verschicken. Wo finde 
ich sowas?

von Jim M. (turboj)


Lesenswert?

Paket xntpd.

von Time Seeker (Gast)


Lesenswert?

Jim M. schrieb:
> Paket xntpd.

"xntpd is an operating system daemon which sets and maintains the 
system time-of-day"

Genau das will ich nicht. Der SNTP-Server soll die Uhrzeit auf dem 
Server nicht beeinflussen, sondern praktisch nur weiterleiten.

von Thomas Z. (thomas_z41)


Lesenswert?

Du kannst beim ntpd dein GPS als einzige Quelle eintragen, dann wird er 
die Uhrzeit auf die vom GPS setzen und diese Dann zur Verfügung stellen.

von Time Seeker (Gast)


Lesenswert?

Thomas Z. schrieb:
> Du kannst beim ntpd dein GPS als einzige Quelle eintragen, dann wird er
> die Uhrzeit auf die vom GPS setzen und diese Dann zur Verfügung stellen.

Mag sein. Dann spricht allerdings noch dies hier gegen xntpd:

"ntpd has gotten rather fat. While not huge, it has gotten larger than 
might be desirable for an elevated-priority ntpd running on a 
workstation, particularly since many of the fancy features which consume 
the space were designed more with a busy primary server, rather than a 
high stratum workstation in mind."

Gibt es vielleicht eine simplere Implementierung?

von ./. (Gast)


Lesenswert?

busybox ntpd

Ein ntpd -l startet "nur" den Server. Der dreht nicht an der Uhr.

Der kann auch parallel zu einem Client:

ntpd -p peer-ip

laufen.


Viel Erfolg.

von Kaj (Gast)


Lesenswert?


von Thomas Z. (thomas_z41)


Lesenswert?

Ich würde auch immer den ganz normalen NTP nehmen: http://www.ntp.org/
Der ist garantiert bei eurem embedded system auch schon dabei. Oder der 
buysbox ntp, wenn buysbox installiert ist.

von Christian B. (casandro)


Lesenswert?

Time Seeker schrieb:
> Genau das will ich nicht. Der SNTP-Server soll die Uhrzeit auf dem
> Server nicht beeinflussen, sondern praktisch nur weiterleiten.

Ich glaube Du hast da einen logischen Dreher drin.

Natürlich kannst Du alle NTP-Server auch so konfigurieren, dass sie nur 
Deinen GPS-Empfänger als Zeitquelle haben, aber selbst wenn Du noch eine 
zweite Zeitquelle hast, ist das nicht schlimm.

Der NTP-Server stellt die Uhrzeit des Rechners immer nach den genauesten 
Zeitquellen die er hat, und gibt diese Zeit weiter.
Eine typische Konfiguration sieht so aus:

Dein Rechner ist mit dem PPS-Ausgang eines GPS-Empfängers verbunden. 
Darüber kriegt er prinzipiell die richtige Zeit, hat aber keine Ahnung 
welche Sekunde gerade ist. Deshalb konfigurierst Du zusätzlich zum 
GPS-Empfänger einen NTP-Server irgendwo im Internet. Da kriegst Du zwar 
nur grob die richtige Zeit, dafür weißt Du jedoch, welche Sekunde Du 
gerade hast.

Was jetzt passiert ist Folgendes, der Rechner synchronisiert sich erst 
mal am NTP-Server bis er so grob die richtige Zeit hat und gleichmäßig 
läuft. Dann stellt er fest, dass der PPS-Eingang ja eigentlich viel 
besser ist, und stellt sich darauf ein. Sollte das PPS-Signal ausfallen, 
so geht er halt wieder auf NTP.

von Time Seeker (Gast)


Lesenswert?

Christian B. schrieb:
> Dein Rechner ist mit dem PPS-Ausgang eines GPS-Empfängers verbunden.
> Darüber kriegt er prinzipiell die richtige Zeit, hat aber keine Ahnung
> welche Sekunde gerade ist. Deshalb konfigurierst Du zusätzlich zum
> GPS-Empfänger einen NTP-Server irgendwo im Internet.

Das ist in diesem Fall nicht möglich, da der Rechner nicht ans Internet 
angeschlossen ist. Ist wie gesagt ein Embedded System.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.