Xem vấn đề trên Github để biết câu trả lời: https://github.com/awesometic/realtek-r8125-dkms/issues/9
Nói tóm lại, vấn đề với việc biên dịch là trong phiên bản mới nhất của trình điều khiển (9.006.04), Realtek đã loại bỏ spinlock_t khóa
biến thành viên từ cấu trúc rtl8125_riêng tư
, nhưng không cập nhật tệp PTP tương ứng. Do đó, tất cả các spin_lock_irqsave
và spin_lock_irqrestore
thường trình sẽ không biên dịch. Có hai cách để khắc phục điều này:
- Nhận xét ra tất cả các
spin_lock_irqsave
và spin_lock_irqrestore
thói quen trong tệp PTP, hoặc
- thêm lại
spinlock_t khóa
thành viên trong cấu trúc rtl8125_riêng tư
.
Loại thứ hai có lẽ an toàn hơn vì chúng tôi không biết liệu IRQ có quan trọng đối với chức năng của trình điều khiển hay không. Điều đó đang được nói, tôi đã thử cả hai giải pháp và cả hai đều làm cho trình điều khiển biên dịch và báo cáo các khả năng của PTP HW, vì vậy tôi không biết cái nào là tốt nhất.
Tuy nhiên, tôi vẫn cho rằng trình điều khiển còn khá nhiều lỗi, vì tôi vẫn không thể sử dụng dấu thời gian HW ở chế độ nô lệ và tôi gặp khó khăn khi nhận kết quả đáng tin cậy. Tôi thường gặp phải vấn đề rằng ptp4l
từ linuxptp
hết thời gian cố gắng lấy dấu thời gian từ trình điều khiển. Tôi có hai máy tính khác nhau với r8125
NIC và nó đôi khi hoạt động trên một máy tính và rất hiếm khi hoạt động trên máy tính kia. Tôi nghi ngờ chức năng PTP chưa được Realtek kiểm tra kỹ lưỡng, mặc dù đây chỉ là suy đoán của tôi.