Ubuntu 20.04에서 RTL8125B-CG NIC에 대한 PTP 지원

Ubuntu 20.04에서 RTL8125B-CG NIC에 대한 PTP 지원

나는 내가 수집한 것에서 RTL8125B-CG NIC를 가지고 있습니다.해당 제품 페이지, PTP에 대한 하드웨어 지원이 있습니다. 그러나 sudo ethtool -THW 타임스탬프 기능은 감지하지 않습니다.

r8169나는 드라이버와 Realtek의 드라이버를 사용해 보았습니다 r8125(둘 다이것은 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 HW 기능을 보고하도록 만들었으므로 어느 것이 가장 좋은지 모르겠습니다.

그러나 HW 타임스탬프는 슬레이브 모드로 사용할 수 없고 신뢰할 수 있는 결과를 얻는 데 어려움을 겪기 때문에 여전히 드라이버에 버그가 있다고 생각합니다. 나는 종종 드라이버로부터 타임스탬프를 얻으려고 시도할 ptp4l때 시간이 초과 되는 문제에 직면합니다 . NIC linuxptp가 있는 두 대의 컴퓨터가 있는데 r8125한 컴퓨터에서는 가끔 작동하지만 다른 컴퓨터에서는 거의 작동하지 않습니다. PTP 기능은 Realtek에서 제대로 테스트되지 않은 것 같습니다. 이는 단지 제 추측일 뿐입니다.

관련 정보