Consultați problema pe Github pentru un răspuns: https://github.com/awesometic/realtek-r8125-dkms/issues/9
Pe scurt, problema cu compilarea a fost că în cea mai nouă versiune a driverului (9.006.04) Realtek a eliminat spinlock_t blocare
variabila membru din struct rtl8125_private
, dar nu a actualizat fișierul PTP în consecință. Prin urmare, toate spin_lock_irqsave
și spin_lock_irqrestore
rutinele nu se vor compila. Există două moduri de a remedia acest lucru:
- Comentează toate
spin_lock_irqsave
și spin_lock_irqrestore
rutine din fișierul PTP sau
- Adăugați înapoi
spinlock_t blocare
membru în struct rtl8125_private
.
Acesta din urmă este probabil mai sigur, deoarece nu știm dacă IRQ-urile sunt vitale pentru funcția șoferului. Acestea fiind spuse, am încercat ambele soluții și ambele au făcut ca driverul să compileze și să raporteze capabilitățile PTP HW, așa că nu știu care este cel mai bun.
Cu toate acestea, încă cred că driverul este destul de greșit, deoarece încă nu pot folosi marcarea temporală a HW este modul slave și am probleme cu obținerea unor rezultate fiabile. Mă întâlnesc adesea cu problema că ptp4l
din linuxptp
expiră încercând să obțină un marcaj de timp de la șofer. Am două computere diferite cu r8125
NIC și funcționează uneori pe un computer și foarte rar pe celălalt. Bănuiesc că funcția PTP nu a fost bine testată de Realtek, deși acestea sunt doar speculații din partea mea.