Поддержка PTP для сетевой карты RTL8125B-CG в Ubuntu 20.04
У меня есть сетевая карта RTL8125B-CG, которая, насколько я понимаю на странице продукта , имеет аппаратную поддержку PTP. Однако,sudo ethtool -T
не обнаруживает каких-либо возможностей аппаратной метки времени.
Я пробовал сr8169
водитель и сr8125
драйвер от Realtek (и этот с Github , и этот со страницы загрузки Realtek ), но безуспешно. В Makefile исходного кода, кажется, есть флаг, указывающий, что поддержка PTP не включена по умолчанию , но когда я включаю этот флаг, я не могу скомпилировать (получаю ошибку, представленную в этой проблеме ).
Кто-нибудь имеет опыт или знает, что я могу сделать, чтобы включить поддержку PTP?
Я использую Ubuntu 20.04 и5.11.0-36-generic
ядро.
1 ответ
Ответ см. в этой проблеме на Github: https://github.com/awesometic/realtek-r8125-dkms/issues/9 .
Короче говоря, проблема с компиляцией заключалась в том, что в самой новой версии драйвера (9.006.04) Realtek удалил переменную-член из , но не обновил PTP-файл соответствующим образом. Следовательно, все процедуры и не будут компилироваться. Есть два способа это исправить:
- Закомментируйте все
spin_lock_irqsave
иspin_lock_irqrestore
процедуры в файле PTP или - Добавьте обратно
spinlock_t lock
член вstruct rtl8125_private
.
Последнее, вероятно, более безопасно, поскольку мы не знаем, важны ли IRQ для работы драйвера. При этом я попробовал оба решения, и оба заставили драйвер скомпилировать и сообщить о возможностях PTP HW, поэтому я не знаю, какое из них лучше.
Тем не менее, я все еще думаю, что драйвер содержит ошибки, поскольку я все еще не могу использовать временную метку HW в подчиненном режиме, и у меня возникают проблемы с получением надежных результатов. Я часто сталкиваюсь с проблемой, чтоptp4l
отlinuxptp
время ожидания при попытке получить временную метку от драйвера. У меня два разных компьютера сr8125
Сетевые адаптеры, и иногда это работает на одном компьютере и очень редко на другом. Я подозреваю, что функция PTP не была тщательно протестирована Realtek, хотя это всего лишь предположение с моей стороны.