
Tengo una NIC RTL8125B-CG que, por lo que deduzco desu página de producto, tiene soporte de hardware para PTP. Sin embargo, sudo ethtool -T
no detecta ninguna capacidad de marca de tiempo de HW.
Lo intenté con el r8169
controlador y con el r8125
controlador de Realtek (amboseste de Githubyeste de la página de descarga de Realtek), pero sin éxito. En el Makefile del código fuente, parece haberuna bandera que indica que la compatibilidad con PTP no está habilitada de forma predeterminada, pero cuando habilito este indicador no puedo compilar (aparece el error presentado eneste problema).
¿Alguien tiene alguna experiencia o sabe qué puedo hacer para habilitar la compatibilidad con PTP?
Estoy ejecutando Ubuntu 20.04 y el 5.11.0-36-generic
kernel.
Respuesta1
Vea el problema en Github para obtener una respuesta:https://github.com/awesometic/realtek-r8125-dkms/issues/9
En resumen, el problema con la compilación fue que en la versión más reciente del controlador (9.006.04) Realtek eliminó la spinlock_t lock
variable miembro de struct rtl8125_private
, pero no actualizó el archivo PTP en consecuencia. Por lo tanto, todas las rutinas spin_lock_irqsave
y spin_lock_irqrestore
no se compilarán. Hay dos formas de solucionar este problema:
- Comente todas las rutinas
spin_lock_irqsave
yspin_lock_irqrestore
en el archivo PTP, o - Vuelva a agregar el
spinlock_t lock
miembro en el archivostruct rtl8125_private
.
Probablemente esto último sea más seguro ya que no sabemos si las IRQ son vitales para el funcionamiento del conductor. Dicho esto, probé ambas soluciones y ambas hicieron que el controlador compilara e informara las capacidades de PTP HW, así que no sé cuál es la mejor.
Sin embargo, sigo pensando que el controlador tiene bastantes errores, ya que todavía no puedo usar la marca de tiempo HW en modo esclavo y tengo problemas para obtener resultados confiables. A menudo me encuentro con el problema de que ptp4l
muchas linuxptp
veces intento obtener una marca de tiempo del controlador. Tengo dos computadoras diferentes con r8125
NIC y a veces funciona en una computadora y muy raramente en la otra. Sospecho que Realtek no ha probado bien la función PTP, aunque esto es sólo una especulación de mi parte.