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.