Смотрите вопрос на Github для ответа: https://github.com/awesometic/realtek-r8125-dkms/issues/9
Короче говоря, проблема с компиляцией заключалась в том, что в новейшей версии драйвера (9.006.04) Realtek удалил блокировка spinlock_t
переменная-член из структура rtl8125_private
, но не обновил файл PTP соответствующим образом. Следовательно, все spin_lock_irqsave
и spin_lock_irqrestore
подпрограммы не компилируются. Есть два способа исправить это:
- Закомментируйте все
spin_lock_irqsave
и spin_lock_irqrestore
подпрограммы в файле PTP или
- Добавьте обратно
блокировка spinlock_t
член в структура rtl8125_private
.
Последнее, вероятно, более безопасно, так как мы не знаем, жизненно важны ли IRQ для работы драйвера. При этом я пробовал оба решения, и оба заставили драйвер скомпилировать и сообщить о возможностях PTP HW, поэтому я не знаю, какое из них лучше.
Тем не менее, я все еще думаю, что драйвер довольно глючный, так как я все еще не могу использовать временную метку HW в ведомом режиме, и у меня возникают проблемы с получением надежных результатов. Я часто сталкиваюсь с проблемой, что ptp4l
от линуксптп
тайм-аут, пытаясь получить метку времени от драйвера. У меня есть два разных компьютера с р8125
NIC, и иногда это работает на одном компьютере и очень редко на другом. Я подозреваю, что функция PTP не была хорошо протестирована Realtek, хотя это всего лишь предположение с моей стороны.