Gibt es eine Möglichkeit, das Precision Time Protocol (PTP) auf Intel I211 Gigabit mit IGB-Treiber zu deaktivieren?

Gibt es eine Möglichkeit, das Precision Time Protocol (PTP) auf Intel I211 Gigabit mit IGB-Treiber zu deaktivieren?

Ich habe ein ASUS Pro WS X570-ACE-Motherboard mit AMD Ryzen 5700G, integriertem Intel I211 Ethernet und dem Treiber igb ver. 5.11.0-27. Es verfügt auch über ein integriertes Realtek Ethernet, das jedoch im BIOS deaktiviert ist. Das Betriebssystem ist Linux Mint 20.2 mit Kernel 5.11.0-27-generic.

Immer wenn das Betriebssystem hochfährt, wird in der „dmesg“-Ausgabe Folgendes angezeigt:

 pps_core: LinuxPPS API ver. 1 registered
 pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
 pps pps0: new PPS source ptp0
 pps_ldisc: PPS line discipline registered

Und es werden 2 Geräte angezeigt: /dev/pps0 und /dev/ptp0

Ich weiß, dass dies am Intel I211-Port liegt, denn wenn ich es ethtool -T enp5s0auf dem Adapter ausführe, erscheint die Meldung:

Time stamping parameters for enp5s0:
Capabilities:
    hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
    software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
    hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
    software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
    software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
    hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
    off                   (HWTSTAMP_TX_OFF)
    on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
    none                  (HWTSTAMP_FILTER_NONE)
    all                   (HWTSTAMP_FILTER_ALL)

Das PTP Hardware Clock: 0 bedeutet, dass /dev/ptp0 und damit /dev/pps0 erstellt werden. Hier ist eine Liste der relevanten Geräte in /dev/:

/dev/port  /dev/ppp  /dev/pps0  /dev/pps1  /dev/psaux  /dev/ptmx  /dev/ptp0  /dev/ptp1  /dev/ptp2

Der Grund, warum dieser PTP für mich ein Problem darstellt, liegt darin, dass ich zum Einstellen der Zeit einen GPS-Empfänger verwende.

Ich habe einen GPS-Empfänger über den integrierten COM/Serial DB9-Anschluss angeschlossen, mit dem ich die Zeit auf dem Computer mithilfe der Impulse pro Sekunde (PPS), die über die serielle Schnittstelle an Pin 1 eingehen, auf die Mikrosekunde genau einstelle. GPSD und CHRONY kümmern sich um den Rest ... aber das Problem ist, dass GPSD sein PPS-Gerät aufgrund des PTP unter /dev/pps1 und nicht unter /dev/pps0 erstellt. GPSD erwartet normalerweise, dass seine PPS-Quelle /dev/pps0 ist. GPSD funktioniert, wenn ich in der Befehlszeile angebe, dass /dev/pps1 als PPS-Quelle bezeichnet wird ... aber es dauert mehrere Minuten länger, um zu sperren und zu synchronisieren, als bei einem Computer, der überhaupt kein PTP hat ...

pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
pps pps0: new PPS source ptp0
pps_ldisc: PPS line discipline registered
pps pps1: new PPS source serial0
pps pps1: source "/dev/ttyS0" added

Ich habe mir das Ethtool-Handbuch und die Anleitung zum Erstellen des Intel IGB-Treibers angesehen, aber es gibt keinen Parameter, mit dem HARDWARE_TIMESTAMPS deaktiviert werden kann. Ethtool hat nur den Schalter -T, der die Zeitstempelfunktion anzeigt ... aber keine tatsächlichen Optionen, die Sie über ethtool -T/-t festlegen können.

Frage: Gibt es für mich eine Möglichkeit, dieses PTP-System vollständig zu deaktivieren?

Antwort1

Der Code zur Unterstützung von HC auf einigen Intel-Karten wurde etwa 2011 hinzugefügt.Intel® Ethernet-Controller I211-ATunterstützt hardwarebasierte Präzisionszeitsynchronisierung. Es ist aktiviert, weil die Modulentwickler es folgendermaßen sehen: (Quelle)

Wenn ein MAC über PTP-Funktionen verfügt, möchten die Benutzer diese sicherlich aktivieren.

Kurz gesagt: Ihre Schlussfolgerung ist richtig. Dennoch können Sie mehrere Dinge tun:

  • Kontaktieren Sie die Modulentwickler und zeigen Sie Ihren Anwendungsfall. Überzeugen Sie sie davon, dass es gute Gründe gibt, eine Funktion zu deaktivieren, auch wenn sie allgemein als erwünscht gilt und standardmäßig aktiviert ist.
  • Kompilieren Sie das Modul neu, nachdem der HC entfernt wurde.
  • Versuchen Sie stattdessen, die Realtek-Netzwerkkarte zu verwenden.
  • Versuchen Sie, gpsd so zu konfigurieren, dass Geräte ignoriert werden als /dev/pps0oder /dev/ptp0- je nachDokumentationes sollte möglich sein:

Um dem Daemon mitzuteilen, dass ein Gerät getrennt wurde und nicht mehr verfügbar ist, senden Sie ein Minuszeichen ('-'), gefolgt vom Gerätenamen und LF oder CR-LF. Um /dev/foo aus der Suchliste zu entfernen, senden Sie daher "-/dev/foo\n".

Dies sollte auch automatisiert funktionieren, indem die Dateien unter geändert werden /etc/gpsd/device-hook.

verwandte Informationen