Ubuntu 20.04 中對 RTL8125B-CG NIC 的 PTP 支持

Ubuntu 20.04 中對 RTL8125B-CG NIC 的 PTP 支持

我有一個 RTL8125B-CG NIC,根據我收集的信息他們的產品頁面,具有對 PTP 的硬體支援。但是,sudo ethtool -T不偵測任何硬體時間戳功能。

我嘗試過使用該r8169驅動程式和r8125Realtek 的驅動程式(兩者都這個來自 Github這個來自 Realtek 的下載頁面),但沒有成功。原始碼中的Makefile中好像有指示預設未啟用 PTP 支援的標誌,但是當我啟用此標誌時,我無法編譯(我收到中出現的錯誤這個問題)。

有人有任何經驗或知道我可以做什麼來啟用 PTP 支援嗎?

我正在運行 Ubuntu 20.04 和5.11.0-36-generic核心。

答案1

請參閱 Github 上的問題以獲得答案:https://github.com/awesometic/realtek-r8125-dkms/issues/9

簡而言之,編譯的問題在於,在最新版本的驅動程式(9.006.04)中,Realtek 已刪除了spinlock_t lock中的成員變量struct rtl8125_private,但沒有相應地更新 PTP 檔案。因此,所有的spin_lock_irqsavespin_lock_irqrestore例程都不會編譯。有兩種方法可以解決此問題:

  1. 註解掉PTP 檔案中的所有spin_lock_irqsave和例程,或者spin_lock_irqrestore
  2. 新增spinlock_t lock回中的成員struct rtl8125_private

後者可能更安全,因為我們不知道 IRQ 對驅動程式的功能是否至關重要。話雖這麼說,我確實嘗試了兩種解決方案,並且都使驅動程式編譯並報告 PTP 硬體功能,所以我不知道哪個是最好的。

但是,我仍然認為該驅動程式有很多錯誤,因為我仍然無法在從屬模式下使用硬體時間戳,我很難獲得可靠的結果。我經常遇到這樣的問題:嘗試從驅動程式獲取時間戳時超時ptp4llinuxptp我有兩台帶有r8125網卡的不同計算機,有時在一台計算機上可以工作,而在另一台計算機上則很少。我懷疑PTP功能還沒有經過Realtek的充分測試,儘管這只是我的猜測。

相關內容