有沒有辦法在具有 igb 驅動程式的 Intel I211 Gigabit 上停用精確時間協定 (PTP)?

有沒有辦法在具有 igb 驅動程式的 Intel I211 Gigabit 上停用精確時間協定 (PTP)?

我有一塊華碩 Pro WS X570-ACE 主機板,配備 AMD Ryzen 5700G,板載英特爾 I211 以太網,運行驅動程式 igb 版本。 5.11.0-27。它還具有 Realtek 板載以太網,但在 BIOS 中已停用。作業系統是 Linux Mint 20.2,運行核心 5.11.0-27-generic。

每當作業系統啟動時,在「dmesg」輸出中都會顯示以下內容:

 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

出現 2 個裝置:/dev/pps0 和 /dev/ptp0

我知道是 Intel I211 連接埠執行此操作,因為如果我ethtool -T enp5s0在適配器上運行,它會顯示:

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)

這意味著PTP Hardware Clock: 0 這會創建 /dev/ptp0,從而創建 /dev/pps0。以下是 /dev/ 中相關設備的清單:

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

這個 PTP 對我來說是個問題,因為我使用 GPS 接收器來設定時間。

我有一個透過板載 COM/串行 DB9 連接器連接的 GPS 接收器,我使用它透過串行埠輸入針腳 1 的每秒脈衝 (PPS) 將電腦上的時間設定為微秒精度。 GPSD 和 CHRONY 負責剩下的工作...但問題是,由於 PTP,GPSD 在 /dev/pps1 而不是 /dev/pps0 建立其 PPS 裝置。 GPSD 通常預期其 PPS 源為 /dev/pps0。如果我在命令列中指定引用 /dev/pps1 作為 PPS 來源,GPSD 確實可以工作...但與根本沒有 PTP 的電腦相比,鎖定和同步需要更多幾分鐘的時間...

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

我查看了Ethtool手冊和Intel IGB驅動程式建置指南,但沒有可以設定關閉HARDWARE_TIMESTAMPS的參數。 Ethtool 只有 -T 開關,顯示時間戳功能...但沒有可以透過 ethtool -T/-t 設定的實際選項。

問題:有沒有辦法讓我完全停用這個 PTP 系統?

答案1

2011 年左右增加了一些 intel 卡上支援 HC 的代碼。英特爾® 乙太網路控制器 I211-AT支援基於硬體的精確時間同步。之所以啟用它,是因為模組開發人員是這樣考慮的:(來源

如果 MAC 具有 PTP 功能,那麼使用者肯定希望啟用它。

更短:你的結論是正確的。不過,您仍然可以做幾件事:

  • 聯絡模組開發人員並展示您的用例。讓他們相信有充分的理由禁用某個功能,即使該功能通常被認為是需要的並且默認情況下是打開的。
  • 刪除 HC 後重新編譯模組。
  • 嘗試使用 Realtek 網路卡。
  • 嘗試將 gpsd 配置為忽略設備為/dev/pps0/dev/ptp0- 根據文件應該是可能的:

若要告訴守護程式裝置已斷線且不再可用,請傳送減號 ('-'),後面接著 LF 或 CR-LF。因此,要從搜尋清單中刪除 /dev/foo,請發送“-/dev/foo\n”。

這也應該透過修改/etc/gpsd/device-hook.

相關內容