
나는 내가 수집한 것에서 RTL8125B-CG NIC를 가지고 있습니다.해당 제품 페이지, PTP에 대한 하드웨어 지원이 있습니다. 그러나 sudo ethtool -T
HW 타임스탬프 기능은 감지하지 않습니다.
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_irqsave
및 spin_lock_irqrestore
루틴이 컴파일되지 않습니다. 이 문제를 해결하는 방법에는 두 가지가 있습니다.
- PTP 파일의 모든
spin_lock_irqsave
및 루틴을 주석 처리합니다. 또는spin_lock_irqrestore
spinlock_t lock
에 구성원을 다시 추가합니다struct rtl8125_private
.
IRQ가 드라이버 기능에 필수적인지 모르기 때문에 후자가 더 안전할 것입니다. 즉, 저는 두 가지 솔루션을 모두 시도했고 둘 다 드라이버를 컴파일하고 PTP HW 기능을 보고하도록 만들었으므로 어느 것이 가장 좋은지 모르겠습니다.
그러나 HW 타임스탬프는 슬레이브 모드로 사용할 수 없고 신뢰할 수 있는 결과를 얻는 데 어려움을 겪기 때문에 여전히 드라이버에 버그가 있다고 생각합니다. 나는 종종 드라이버로부터 타임스탬프를 얻으려고 시도할 ptp4l
때 시간이 초과 되는 문제에 직면합니다 . NIC linuxptp
가 있는 두 대의 컴퓨터가 있는데 r8125
한 컴퓨터에서는 가끔 작동하지만 다른 컴퓨터에서는 거의 작동하지 않습니다. PTP 기능은 Realtek에서 제대로 테스트되지 않은 것 같습니다. 이는 단지 제 추측일 뿐입니다.