1. Einleitung
Die exakte Zeitsynchronisation spielt in modernen Netzwerken eine entscheidende Rolle. Während das klassische Network Time Protocol (NTP) für viele Alltagsanwendungen ausreichend ist, stoßen seine Möglichkeiten bei hochgenauen Prozessen an Grenzen. Hier kommt das Precision Time Protocol (PTP, IEEE 1588) ins Spiel. Mit einem PTP Client unter Linux lassen sich Abweichungen im Bereich von Mikrosekunden bis hin zu Nanosekunden ausgleichen – eine Genauigkeit, die NTP nicht erreichen kann.
1.1 Vorteile von PTP
- Höchste Präzision: Durch Hardware-Timestamping (PHC – PTP Hardware Clocks) in Netzwerkkarten und Switches können Verzögerungen minimiert und Zeitabweichungen extrem reduziert werden.
- Breite Einsatzmöglichkeiten: PTP wird in der Finanzbranche, bei der Synchronisation von Börsensystemen, in 5G- und Mobilfunknetzen, in der Industrieautomatisierung, in Energie- und Smart-Grid-Systemen sowie in der Forschung genutzt.
- Skalierbarkeit: Das Protokoll eignet sich sowohl für kleine Testaufbauten als auch für großflächige Netzwerke mit tausenden Knoten.
- Genauigkeit gegenüber NTP: Im direkten Vergleich PTP vs NTP liegt der Vorteil klar bei PTP, wenn es auf Mikrosekunden-genaue Synchronität ankommt.
1.2 Nachteile und Herausforderungen
- Hardwareabhängigkeit: Die höchste Genauigkeit erreicht man nur mit spezieller Hardware (Netzwerkkarten oder Switches mit PTP-Unterstützung). Günstige Geräte, etwa ein Raspberry Pi, können PTP nur mit Software-Timestamping nutzen. Das verbessert zwar die Synchronisation, erreicht aber nicht das Niveau einer echten Hardware-Lösung.
- Komplexere Einrichtung: Ein PTP-Setup erfordert mehr Konfiguration als NTP. Insbesondere bei größeren Netzen braucht es Know-how, um Grandmaster, Boundary- und Slave-Clocks korrekt einzurichten.
- Höherer Ressourcenbedarf: Im Vergleich zu NTP ist PTP oft rechenintensiver, was auf schwächeren Geräten eine Rolle spielen kann.
Trotz dieser Einschränkungen ist ein PTP Client auf Linux eine spannende Möglichkeit, die Technologie kennenzulernen. Selbst ohne spezielle Hardware können Systeme wie ein Raspberry Pi im Softwaremodus an einem PTP-Master teilnehmen. Für Lernzwecke oder nicht-kritische Umgebungen ist dies ein guter Einstieg, bevor man auf professionelle Hardwarelösungen setzt.
In diesem Beitrag zeige ich,
- was PTP (Precision Time Protocol, IEEE 1588) ist,
- wie es sich von NTP unterscheidet,
- welche Vorteile und Nachteile der Einsatz bringt,
- und wie sich ein PTP Client unter Linux Schritt für Schritt konfigurieren lässt.
So erhälsts Du einen praxisnahen Überblick über eine Technologie, die mit dem Vormarsch von 5G, IoT und Industrie 4.0 immer mehr Bedeutung gewinnt.
2. Voraussetzungen für einen PTP Client unter Linux
Damit ein PTP Client unter Linux sinnvoll genutzt werden kann, müssen einige Voraussetzungen erfüllt sein. Die Unterschiede zwischen einem reinen Software-Client und einem Hardware-unterstützten PTP-Client sind dabei entscheidend, wenn es um Genauigkeit und Stabilität geht.
2.1 Hardware-PTP vs. Software-PTP
- Hardware-PTP-Client
Ein vollwertiger PTP-Client nutzt spezielle Netzwerkkarten oder Switches mit integrierten PTP Hardware Clocks (PHC). Diese Hardware kann Zeitstempel direkt auf der Netzwerkschicht erfassen. Der große Vorteil: Verzögerungen im Betriebssystem und Treiberstack entfallen weitgehend. Damit sind Synchronisationen im Mikrosekunden- oder sogar Nanosekundenbereich möglich. Für kritische Anwendungen wie Börsenhandel, Mobilfunknetze (5G) oder Energieverteilung (Smart Grids) ist diese Präzision unverzichtbar. - Software-PTP-Client
Auf Geräten ohne PHC, wie z. B. einem Raspberry Pi, läuft PTP im sogenannten Software-Timestamping-Modus. Hier werden die Zeitstempel im Kernel-Netzwerkstack erzeugt. Das führt zwangsläufig zu höheren Latenzen und Jitter. Die Genauigkeit bewegt sich typischerweise im Millisekunden- bis unteren Mikrosekundenbereich. Für Heimanwender ist das völlig ausreichend, für professionelle Szenarien jedoch nur eingeschränkt nutzbar.
2.2 Die Rolle einer RTC (Real Time Clock)
Ein weiterer wichtiger Punkt ist eine RTC (Real Time Clock), also eine kleine Hardware-Uhr, die unabhängig vom Betriebssystem läuft und von einer Knopfzelle oder einem Akku gepuffert wird.
- Warum eine RTC wichtig ist:
Ohne RTC startet ein Linux-System nach jedem Neustart mit einer stark verfälschten Systemzeit (oft 1970 oder ein zufälliger Wert). PTP oder NTP können die Uhr zwar wieder korrigieren, doch bis die Synchronisation hergestellt ist, arbeitet das System mit falschen Zeitstempeln. - Mit RTC:
Eine RTC sorgt dafür, dass das System nach dem Booten sofort eine „halbwegs richtige“ Uhrzeit hat. PTP muss dann nur noch kleine Korrekturen durchführen. Das macht die Synchronisation zuverlässiger und vermeidet Probleme bei Protokollen oder Diensten, die eine korrekte Zeit sofort nach dem Start benötigen.
2.3 Sinn und Nutzen für Heimanwendungen
Für den Heimgebrauch ist PTP in den meisten Fällen keine Notwendigkeit. Dienste wie systemd-timesyncd, chrony oder klassische NTP-Server reichen in der Regel vollkommen aus, da sie im Millisekunden-Bereich arbeiten, mehr Genauigkeit ist für typische Heimanwendungen nicht nötig.
Dennoch kann ein Software-PTP-Client unter Linux für Technik-Enthusiasten spannend sein:
- Man lernt die Grundlagen des Precision Time Protocol (IEEE 1588) kennen.
- Man kann mit Tools wie
ptp4lundphc2syserste Erfahrungen sammeln. - Für Heimlabore, Testumgebungen oder kleine Forschungsprojekte ist PTP eine interessante „Spielerei“ mit Lerneffekt.
👉 Wer allerdings wirklich hochpräzise Zeit benötigt, etwa für Messgeräte oder industrielle Steuerungen, kommt um einen Hardware-PTP-Client mit PHC und RTC nicht herum.
🔑 Zusammengefasst:
- Software-PTP: leicht einsetzbar, günstig, gute Lernmöglichkeit, aber begrenzte Genauigkeit.
- Hardware-PTP: teurer, aber extrem präzise, unverzichtbar für kritische Systeme.
- RTC: wichtig, um auch nach Neustarts eine sinnvolle Ausgangsbasis für die Zeitsynchronisation zu haben.
2.4 Vergleich: Hardware-PTP vs. Software-PTP
| Merkmal | Hardware-PTP-Client (PHC) | Software-PTP-Client (z. B. Raspberry Pi) |
|---|---|---|
| Genauigkeit | Mikrosekunden bis Nanosekunden | Millisekunden bis wenige Mikrosekunden |
| Zeitstempel | Direkt in der Netzwerkkarte (Hardware-Timestamping) | Im Kernel-Netzwerkstack (Software-Timestamping) |
| Hardware-Anforderung | Netzwerkkarte oder Switch mit PTP Hardware Clock (PHC) | Standard-Netzwerkkarte ohne spezielle Unterstützung |
| Kosten | Höher (spezielle NICs oder Switches nötig) | Sehr gering, läuft auf fast jeder Hardware |
| Komplexität | Aufwendigere Einrichtung, oft mit dedizierten Grandmastern | Einfacher Testbetrieb möglich, Konfiguration über Software |
| Einsatzbereich | Finanzhandel, Telekommunikation (5G), Industrie, Smart Grids | Heimanwendungen, Labortests, Lern- und Forschungsprojekte |
| RTC notwendig | Ja, für stabile Basiszeit nach Neustarts | Ebenfalls sinnvoll, sonst startet System mit falscher Zeit |
2.5 PTP vs. NTP – Ein Vergleich der Zeitsynchronisationsprotokolle
Sowohl das Network Time Protocol (NTP) als auch das Precision Time Protocol (PTP, IEEE 1588) dienen demselben Zweck: Systeme innerhalb eines Netzwerks zeitlich zu synchronisieren. Doch die Anforderungen und die Präzision unterscheiden sich deutlich.
2.5.1 Network Time Protocol (NTP)
- Verbreitung: NTP ist seit den 1980er-Jahren im Einsatz und gilt als Standard für Zeitsynchronisation im Internet.
- Funktionsweise: Zeitstempel werden per UDP über Port 123 übertragen. Die Genauigkeit hängt stark von Netzwerklatenzen und Jitter ab.
- Genauigkeit: typischerweise im Bereich von einigen Millisekunden. Für fast alle Büro-, Server- und Internetanwendungen mehr als ausreichend.
- Vorteile:
- Einfach einzurichten
- Läuft auf praktisch jeder Plattform
- Riesige Auswahl an öffentlichen Zeitservern
- Sehr ressourcenschonend
- Nachteile:
- Begrenzte Genauigkeit
- Empfindlich gegenüber variablen Latenzen im Netzwerk
2.5.2 Precision Time Protocol (PTP, IEEE 1588)
- Verbreitung: Seit 2002 Standardisiert, speziell für industrielle, wissenschaftliche und hochpräzise Umgebungen.
- Funktionsweise: Nutzt Master-Slave-Architektur und kann Hardware-Timestamping einsetzen, um Verzögerungen auf der Netzwerkstrecke praktisch auszuschalten.
- Genauigkeit: Mikrosekunden bis Nanosekunden, deutlich präziser als NTP.
- Vorteile:
- Extrem hohe Genauigkeit
- Ideal für 5G, Energienetze, Industrieautomatisierung, Finanztransaktionen
- Durch Hardware-Unterstützung unabhängig von Netzwerkjitter
- Nachteile:
- Teurere Hardware (PHC-fähige Netzwerkkarten und Switches) nötig für Höchstleistung
- Komplexere Einrichtung (Grandmaster, Boundary-Clocks, Konfiguration)
- Höherer Ressourcenbedarf als NTP
2.5.3 Vergleichstabelle: NTP vs. PTP
| Merkmal | NTP | PTP (IEEE 1588) |
|---|---|---|
| Genauigkeit | Millisekunden | Mikrosekunden bis Nanosekunden |
| Hardware-Anforderung | Keine | PHC-fähige Netzwerkkarten oder Switches |
| Komplexität | Sehr einfach | Mittel bis hoch, abhängig von Setup |
| Verbreitung | Weltweit Standard (Internet, Server, PCs) | Industrie, 5G, Smart Grids, Finanzsysteme |
| Kosten | Keine Zusatzkosten | Zusätzliche Hardware oft erforderlich |
| Einsatzbereich | Alltag, Server, Office, Internetdienste | Kritische Systeme mit höchster Genauigkeit |
2.5.4 Fazit: PTP vs. NTP
- Für den Alltag: NTP bleibt die erste Wahl, stabil, einfach und kostenlos.
- Für hochpräzise Anwendungen: PTP ist unschlagbar, wenn es auf Nanosekunden ankommt.
- Für Heimanwender: Ein Software-PTP-Client unter Linux ist eine spannende Lern- und Experimentierumgebung, praktisch aber meist „Spielerei“, weil NTP völlig ausreicht.
3. PTP Client unter Linux einrichten – Voraussetzungen testen und Stolperfallen vermeiden
Bevor man einen PTP Client unter Linux einrichtet, sollte man unbedingt prüfen, ob die eigene Hardware für Precision Time Protocol (IEEE 1588) geeignet ist. Denn nicht jede Netzwerkkarte oder jeder Treiber unterstützt die nötigen PTP Hardware Clocks (PHC). Und selbst wenn ein Gerät offiziell PTP-fähig ist, bedeutet das nicht automatisch, dass es in der Praxis wirklich präzise arbeitet.
3.1 Test: Unterstützt mein Interface PTP-Hardware-Timestamps?
Der wichtigste Check erfolgt mit ethtool:
sudo ethtool -T eth0
Im Ergebnis findet sich ein Block „Time stamping capabilities“. Entscheidend sind diese Zeilen:
- hardware-transmit
- hardware-receive
- hardware-raw-clock
Wenn alle drei supported anzeigen, verfügt die Karte über eine PHC (PTP Hardware Clock).
Beispiel (gute Unterstützung):
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
Beispiel (nur Software möglich):
Capabilities:
software-transmit
software-receive
software-raw-clock
→ In diesem Fall läuft PTP nur mit Software-Timestamping und ist entsprechend ungenauer.
3.2 Zugriff auf die PHC prüfen
Wenn eine PHC vorhanden ist, taucht ein Gerät wie /dev/ptp0 auf. Das kann man mit ls -l /dev/ptp* prüfen.
Zusätzlich zeigt ptp4l beim Start an, ob eine Hardware-Clock erkannt wurde oder ob es nur Software-Timestamps nutzen kann.
3.3 Praxishinweis: Hardware ist nicht gleich Qualität
Selbst wenn die Hardware eine PHC bereitstellt, bedeutet das noch nicht automatisch, dass die Ergebnisse brauchbar sind. Viele Onboard-Chipsätze in Mainboards (z. B. bei Intel NUCs) haben zwar PHC-Support im Treiber, liefern aber in Tests extrem schwankende Ergebnisse (Jitter im Millisekunden-Bereich).
Warum?
- Onboard-NICs teilen sich oft Ressourcen mit anderen Komponenten.
- Die Taktgeber sind nicht temperaturstabil (kein TCXO/OCXO).
- Die Implementierung im Treiber ist manchmal rudimentär.
Für wirklich stabile Resultate setzen Profis deshalb auf spezielle PTP-NICs (z. B. Intel i210, i350, X520 in guter Revision) oder auf Switches mit Boundary-Clock-Funktion.
3.4 Zeitdienste exklusiv nutzen
Ein häufiger Fehler: gleichzeitig mehrere Zeitdienste laufen lassen (z. B. systemd-timesyncd oder chrony parallel zu ptp4l).
Das Problem:
- Jeder Dienst versucht, die Systemuhr nach seinen eigenen Regeln anzupassen.
- Ergebnis: die Uhr „springt“ oder wird ständig gegeneinander korrigiert.
👉 Deshalb gilt: Vor dem Start von PTP alle anderen Zeitdienste deaktivieren.
Beispiel unter Debian/Ubuntu:
sudo systemctl disable --now systemd-timesyncd sudo systemctl disable --now chrony sudo systemctl disable --now ntp
3.5 PTP Client starten und erste Ergebnisse sehen
Ein Minimalbeispiel im Softwaremodus:
sudo ptp4l -i eth0 -m -S
-i eth0= Interface-m= Logmeldungen auf stdout-S= Software-Timestamping erzwingen
Im Log sollte nach kurzer Zeit die Auswahl eines Masters erscheinen:
ptp4l[xxx]: selected best master clock ... ptp4l[xxx]: port 1 (eth0): UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
Wenn eine PHC vorhanden ist, läuft ptp4l direkt gegen die Hardwareuhr. Ohne PHC ist es nur eine Software-Simulation.
Mit PHC startet man danach phc2sys, um die Systemuhr zu koppeln:
sudo phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -O 0 -m
Im Log erscheinen dann regelmäßige Meldungen wie:
phc2sys[yyy]: CLOCK_REALTIME offset -123 ns freq +567 delay 345
→ Das ist das Zeichen, dass die Systemzeit jetzt wirklich an den PTP-Master angepasst wird.
3.6 Was sollte man erwarten?
- Mit Software-PTP (kein PHC):
Genauigkeit im Millisekundenbereich. Gut für Tests, wenig stabil, nicht für harte Anforderungen geeignet. - Mit Hardware-PTP (PHC):
Stabile Synchronisation im Mikrosekundenbereich, abhängig von der Netzwerkkarte und Umgebung. - Mit professioneller Hardware (z. B. dedizierte PTP-Switches, TCXO/OCXO):
Nanosekunden-Genauigkeit möglich.
🔑 Zusammenfassung:
- Erst mit
ethtool -Tprüfen, ob die Hardware PHC unterstützt. ptp4lim richtigen Modus starten und Logs beobachten.phc2syskoppelt die PHC an die Systemuhr.- Andere Zeitdienste unbedingt deaktivieren, sonst gibt es Konflikte.
- Onboard-Hardware kann täuschen: „fähig“ heißt nicht automatisch „präzise“.
4. Schritt-für-Schritt Einrichtung eines PTP Clients unter Linux
Ein PTP Client unter Linux besteht aus zwei zentralen Bausteinen:
- ptp4l (führt das Precision Time Protocol aus, spricht mit dem Master)
- phc2sys (koppelt die PTP-Hardware-Clock oder Software-Clock an die Systemuhr
CLOCK_REALTIME)
Beide Komponenten gehören zum Paket linuxptp.
4.1 Installation
Unter den gängigen Distributionen:
- Debian/Ubuntu:
sudo apt install linuxptp - RHEL/CentOS/Fedora:
sudo dnf install linuxptp - openSUSE:
sudo zypper install linuxptp
4.2 Konfigurationsdatei ptp4l.conf erstellen
Datei: /etc/linuxptp/ptp4l.conf
Beispiel (für einen Slave im Hardware-Timestamping-Modus):
sudo mkdir -p /etc/linuxptp sudo tee /etc/linuxptp/ptp4l.conf >/dev/null <<'EOF' [global] # PTP Domain (Standard ist 0, kann bei Bedarf geändert werden) domainNumber 0 # Ausführliche Logs logging_level 6 # Verzögerungsmessung: End-to-End oder Peer-to-Peer delay_mechanism E2E # Zeitstempel-Modus: hardware | software | legacy # Für Systeme mit PHC: hardware # Für reine Software-Clients (z.B. Raspberry Pi): software time_stamping hardware # Verhindern, dass der Client selbst zum Master wird slaveOnly 1 [eth0] # Hier das richtige Interface eintragen (z.B. eno1, enp3s0 ...) network_transport UDPv4 EOF
Anpassungen erforderlich:
eth0→ Name der eigenen Netzwerkkarte (z. B.eno1,enp3s0,ens33… mitip link showherausfinden).time_stamping→ falls die NIC PHC unterstützt, aufhardwarestellen.
4.3 Testlauf von ptp4l
Start mit:
sudo ptp4l -f /etc/linuxptp/ptp4l.conf -i eth0 -m
-f= Konfigurationsdatei verwenden-i= Interface (Name der Netzwerkkarte, anpassen!)-m= Logmeldungen auf stdout
Erwartetes Ergebnis:
- Es erscheinen Meldungen wie:
ptp4l[xxx]: port 1 (eth0): UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED ptp4l[xxx]: selected best master clock ... - Danach folgen regelmäßig Offset- und Delay-Meldungen (bei Hardwaremodus präziser, bei Softwaremodus weniger stabil).
4.4 Testlauf von phc2sys
Wenn eine PHC vorhanden ist (z. B. /dev/ptp0):
sudo phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -O 0 -m
-s= Quelle (hier die Hardwareuhr/dev/ptp0)-c= Ziel (SystemuhrCLOCK_REALTIME)-O 0= Offset (normalerweise 0, für Debug ggf. variieren)-m= Meldungen auf stdout
Erwartetes Ergebnis:
- Ausgabe wie:
phc2sys[yyy]: CLOCK_REALTIME offset -123 ns freq +567 delay 345 - Diese Meldungen erscheinen regelmäßig (im Sekundentakt oder nach Konfig).
👉 Wenn keine PHC existiert (z. B. Raspberry Pi onboard-Ethernet):
- Dann ist nur Softwaremodus möglich.
phc2sysbringt hier wenig Mehrwert, daptp4lkeine eigene PHC bereitstellt.
4.5 Default-Datei für Parameter
Datei: /etc/default/linuxptp-client
sudo tee /etc/default/linuxptp-client >/dev/null <<'EOF' # Interface mit PTP-Unterstützung INTERFACE=eth0 # Optionen für ptp4l PTP4L_OPTS="-f /etc/linuxptp/ptp4l.conf -i $INTERFACE -m" # Optionen für phc2sys (nur mit PHC!) PHC2SYS_OPTS="-s /dev/ptp0 -c CLOCK_REALTIME -O 0 -m" EOF
👉 Hier unbedingt Interface-Namen und ggf. Pfade anpassen.
4.6 Systemd-Units anlegen
/etc/systemd/system/ptp4l-slave.service
sudo tee /etc/systemd/system/ptp4l-slave.service >/dev/null <<'EOF' [Unit] Description=PTP Client (ptp4l) Slave Mode After=network.target [Service] Type=simple EnvironmentFile=-/etc/default/linuxptp-client ExecStart=/usr/sbin/ptp4l $PTP4L_OPTS Restart=on-failure [Install] WantedBy=multi-user.target EOF
/etc/systemd/system/phc2sys-slave.service
sudo tee /etc/systemd/system/phc2sys-slave.service >/dev/null <<'EOF' [Unit] Description=PTP System Clock Synchronization (phc2sys) After=ptp4l-slave.service Requires=ptp4l-slave.service [Service] Type=simple EnvironmentFile=-/etc/default/linuxptp-client ExecStart=/usr/sbin/phc2sys $PHC2SYS_OPTS Restart=on-failure [Install] WantedBy=multi-user.target EOF
👉 Auch hier musst Du sicherstellen, dass INTERFACE und ggf. PHC2SYS_OPTS zu Ihrer Hardware passen.
4.7 Dienste aktivieren und starten
sudo systemctl daemon-reexec sudo systemctl enable --now ptp4l-slave.service sudo systemctl enable --now phc2sys-slave.service
4.8 Tests im Dauerbetrieb
- Status abfragen
systemctl status ptp4l-slave systemctl status phc2sys-slave
- Logs live verfolgen:
journalctl -u ptp4l-slave -f journalctl -u phc2sys-slave -f
Erwartete Logs:
ptp4l: „selected best master clock …“ und Zustandswechsel aufSLAVE.phc2sys: regelmäßige Offset-Meldungen mit Werten im Mikrosekunden-/Nanosekundenbereich (abhängig von Hardware).
🔑 Zusammenfassung:
- Hardware-PTP →
time_stamping hardware,phc2syskoppelt PHC ↔ Systemuhr. - Software-PTP →
time_stamping software, kein PHC, nur Lern- und Testzwecke. - Alle Schritte als fertige
cat <<EOF-Blöcke → sofort einsetzbar.
4.9 Typische Fehlerquellen
- Falsches Interface:
eth0ist oft nicht mehr der echte Name → prüfen mitip link show. - Mehrere Zeitdienste aktiv:
systemd-timesyncd,ntpd,chronydvorher deaktivieren, sonst konkurrieren sie. - Keine PHC vorhanden: dann ist
phc2sysnicht sinnvoll nutzbar, man bleibt im Softwaremodus. - Onboard-NICs: können zwar „PTP supported“ melden, liefern aber unbrauchbare Genauigkeit.
✅ Damit hast Du ein vollwertiges Setup:
ptp4lspricht mit dem Master,phc2syskoppelt (falls möglich) die Hardwareuhr an die Systemuhr,- systemd sorgt für automatischen Start beim Booten.
5. Fehlerbehebung beim PTP Client unter Linux
Die Einrichtung eines PTP Clients unter Linux klingt zunächst einfach: ptp4l starten, einen Master finden, fertig. In der Praxis treten jedoch häufig Probleme auf, die von falschen Schnittstellennamen bis hin zu ungeeigneter Hardware reichen. Hier eine Übersicht typischer Stolperfallen und wie man sie behebt.
5.1 Falscher Interface-Name
Symptom:
ptp4l[xxx]: ioctl SIOCETHTOOL failed: No such device
Ursache:
Das angegebene Interface (eth0) existiert nicht oder heißt anders.
Lösung:
- Mit
ip link showdie vorhandenen Interfaces auflisten. - In
/etc/linuxptp/ptp4l.confund in/etc/default/linuxptp-clientden richtigen Namen eintragen (z. B.enp3s0,eno1,ens33).
5.2 Keine PHC vorhanden
Symptom bei phc2sys:
interface eth0 does not have a PHC valid source clock must be selected.
Ursache:
Die Netzwerkkarte unterstützt keine PTP-Hardware-Clock.
Lösung:
- Mit
ethtool -T eth0prüfen. - Wenn
hardware-transmit/receive/raw-clocknicht supported sind, dann läuft PTP nur mittime_stamping software. - In
ptp4l.confden Eintrag ändern:time_stamping software phc2sys-slave.servicenicht verwenden, da es keine PHC gibt.
5.3 Mehrere Zeitdienste aktiv
Symptom:
Die Systemzeit springt oder wird ständig korrigiert, Logs zeigen widersprüchliche Offsets.
Ursache:systemd-timesyncd, ntpd oder chronyd laufen noch parallel.
Lösung:
Alle anderen Zeitdienste deaktivieren:
sudo systemctl disable --now systemd-timesyncd sudo systemctl disable --now ntp sudo systemctl disable --now chrony
5.4 Onboard-NIC meldet „PTP supported“, liefert aber schlechte Werte
Symptom:
ethtool -Tzeigt PHC-Support, aberphc2sysmeldet Offsets im Millisekundenbereich.- Logs zeigen starke Schwankungen, keine stabile Synchronisation.
Ursache:
Viele Onboard-Controller (z. B. in Intel NUCs oder günstigen Boards) haben zwar PHC-Support, aber keinen stabilen Taktgeber oder schlechte Treiberimplementierungen.
Lösung:
- Für ernsthafte Anwendungen eine dedizierte Netzwerkkarte mit guter PTP-Implementierung einsetzen (z. B. Intel i210, i350, X520).
- Für Labortests reicht auch der ungenaue Onboard-Chip, aber man darf keine Präzision erwarten.
5.5 Keine Master-Clock gefunden
Symptom:ptp4l bleibt im Status LISTENING, es erscheint nie „selected best master clock …“.
Ursache:
- Im Netzwerk gibt es keinen PTP-Master.
- PTP läuft in einem anderen Domain- oder VLAN-Bereich.
- Firewalls blockieren die UDP-Ports (319, 320).
Lösung:
- Prüfen, ob es einen aktiven PTP-Master gibt (z. B. mit
tcpdump -ni eth0 udp port 319 or udp port 320). domainNumberinptp4l.confanpassen, falls ein anderer Wert genutzt wird.- Sicherstellen, dass Multicast (
224.0.1.129) nicht gefiltert wird.
5.6 ptp4l läuft, aber Systemzeit ändert sich nicht
Symptom:ptp4l-Logs zeigen Master und Delay-Werte, aber date liefert immer noch ungenaue Zeit.
Ursache:
ptp4lsynchronisiert nur die PHC, nicht automatisch die Systemuhr.phc2syswurde nicht gestartet oder bricht ab.
Lösung:
- Prüfen, ob
phc2sys-slave.serviceläuft (systemctl status phc2sys-slave). - Logs ansehen:
journalctl -u phc2sys-slave -f. - Ohne PHC: Die Systemzeit kann nicht per PTP nachgeführt werden → hier lieber NTP/chrony nutzen.
5.7 Werte sehen „falsch“ aus
Symptom:
Off-sets springen stark oder sind viel größer als erwartet.
Mögliche Ursachen:
- Schlechter Taktgeber (kein TCXO/OCXO, starke Temperaturschwankungen).
- Switches im Pfad unterstützen kein Transparent- oder Boundary-Clocking.
- Netzwerk ist überlastet oder stark jitterbehaftet.
Lösungen:
- Wenn Präzision entscheidend ist → dedizierte PTP-Switches einsetzen.
- Für einfache Tests im Heimnetz reichen auch normale Switches, Ergebnisse schwanken aber.
- Temperaturstabile Hardware nutzen, wenn es wirklich genau sein muss.
🔑 Zusammenfassung Fehlerbehebung:
- Interface prüfen (
ip link show,ethtool -T). - PHC vorhanden? Wenn nicht →
time_stamping softwareund keinphc2sys. - Andere Zeitdienste deaktivieren.
- Master-Clock prüfen (Pakete mit tcpdump sichtbar?).
- Hardwarequalität realistisch einschätzen, „PTP supported“ heißt nicht „präzise“.
6. Fazit: PTP Client unter Linux – wann lohnt es sich wirklich?
Das Precision Time Protocol (PTP, IEEE 1588) ist ein mächtiges Werkzeug, wenn es um hochpräzise Zeitsynchronisation im Netzwerk geht. Mit einem geeigneten PTP Client unter Linux lassen sich Abweichungen im Mikrosekunden- oder sogar Nanosekundenbereich erreichen, weit präziser, als es mit NTP möglich ist.
Für kritische Anwendungen wie Finanzhandel, 5G-Mobilfunk, Industrieautomatisierung oder Smart Grids ist diese Genauigkeit unverzichtbar. Hier führt kein Weg an Hardware-PTP mit PHC-fähigen Netzwerkkarten und Switches vorbei. In solchen Umgebungen liefert PTP den entscheidenden Unterschied zwischen „ausreichend“ und „verlässlich exakt“.
Für Heimanwender und Labore sieht die Realität etwas anders aus:
- Mit einem Raspberry Pi oder einer Onboard-NIC lässt sich PTP im Softwaremodus zwar betreiben, die Genauigkeit bleibt jedoch im Millisekundenbereich.
- Damit eignet sich PTP zuhause eher als technisch spannende Spielerei: Man lernt das Protokoll kennen, kann Pakete analysieren, ein Testnetz aufbauen und erste Erfahrungen sammeln.
- Für die alltägliche Nutzung, sei es beim Surfen, Medienstreaming oder Office, ist NTP oder systemd-timesyncd völlig ausreichend und einfacher zu handhaben.
🔑 Kernaussage:
- PTP mit Hardware-Unterstützung lohnt sich überall dort, wo Zeit wirklich kritisch ist.
- Software-PTP ist nützlich zum Lernen und für Experimente, ersetzt aber keine präzise Zeitquelle.
- Für die meisten privaten Umgebungen reicht NTP vollkommen aus.
Wer jedoch Freude daran hat, tief in Netzwerktechnologien einzutauchen, wird mit einem PTP Client unter Linux ein spannendes Feld entdecken, vom ersten Testlauf mit ptp4l bis hin zu komplexen Setups mit Grandmaster und Boundary-Clocks.
