anignatev / if_re

5 stars 0 forks source link

Thanks a lot for the driver! #1

Open quicktrick opened 2 years ago

quicktrick commented 2 years ago

Спасибо за драйвер, брат! Очень помог. На двух серверах периодически отваливался интерфейс:

re0: watchdog timeout
re0: link state changed to DOWN
re0: link state changed to UP

Сейчас тестирую уже почти сутки, вроде исчезла эта проблема.

Надеюсь, будешь обновлять. :)

quicktrick commented 2 years ago

А вот рано я радовался. Снова та же проблема проявилась. Может такое быть, что используется все-таки старый драйвер, несмотря на то, что загружен новый (?) модуль? Может быть, заменить старый модуль в /boot/kernel? Потому что непонятно, какой модуль используется: /boot/modules/if_re.ko или /boot/kernel/if_re.ko? И если я заменю модуль /boot/kernel/if_re.ko, что будет после обновления ядра? Придется снова его заменять вручную?

Edit: В общем, я сейчас заменил старый драйвер /boot/kernel/if_re.ko новым, перезагрузился. Действительно, раньше подгружался старый драйвер. Теперь стало так:

➜ ~ # dmesg | grep re0
re0: <Realtek PCIe GbE Family Controller> port 0xe000-0xe0ff mem 0x81200000-0x81200fff,0xa0000000-0xa0003fff irq 17 at device 0.0 on pci1
re0: Using Memory Mapping!
re0: Using line-based interrupt
re0: ASPM disabled
re0: version:1.96.04
re0: Ethernet address: 30:f7:d7:03:5a:00
re0: link state changed to UP

Посмотрим, как будет работать. И всё-таки непонятно, что будет после обновления ядра.

quicktrick commented 2 years ago

В итоге сделал так (воспользовавшись методом научного тыка, потому что нигде на эту тему ничего подробно не написано)

В /boot/kernel оставил старый модуль if_re.ko, поставляемый вместе с системой.

Новый файл модуля: /boot/modules/if_re_freebsd_13.0.ko

Конфиг /boot/loader.conf:

# Realtek FreeBSD Fix
if_re_name="if_re_freebsd_13.0"
if_re_load="YES"
hw.re.msi_disable=1
hw.re.msix_disable=1
hw.re.eee_enable=0
hw.re.phy_power_saving=0
hw.re.phy_mdix_mode=0

После перезагрузки:

➜ ~ # kldstat -v
 4    1 0xffffffff82149000   1152b8 if_re_freebsd_13.0.ko (/boot/modules/if_re_freebsd_13.0.ko)
        Contains modules:
                 Id Name
                  3 pci/if_re
➜ ~ # dmesg | grep re0
re0: <Realtek PCIe GbE Family Controller> port 0xe000-0xe0ff mem 0x81200000-0x81200fff,0xa0000000-0xa0003fff irq 17 at device 0.0 on pci1
re0: Using Memory Mapping!
re0: Using line-based interrupt
re0: ASPM disabled
re0: version:1.96.04
re0: Ethernet address: 30:f7:d7:03:5a:00
re0: link state changed to UP

Теперь, по идее, при обновлении ядра ничего перезаписываться не должно.

anignatev commented 2 years ago

Добрый день!

По идее при обновлении, если сигнатуры файлов отличаются, система ничего не перепишет, поэтому можно спокойно и заменять родной драйвер новым в папке /boot/kernel/

Но Ваша версия, возможно даже правильней!

10 дек. 2021 г., в 15:33, quicktrick @.***> написал(а):

В итоге сделал так (воспользовавшись методом научного тыка, потому что нигде на эту тему ничего подробно не написано)

В /boot/kernel оставил старый модуль if_re.ko, поставляемый вместе с системой.

Новый файл модуля: /boot/modules/if_re_freebsd_13.0.ko

Конфиг /boot/loader.conf:

Realtek FreeBSD Fix

if_re_name="if_re_freebsd_13.0" if_re_load="YES" hw.re.msi_disable=1 hw.re.msix_disable=1 hw.re.eee_enable=0 hw.re.phy_power_saving=0 hw.re.phy_mdix_mode=0 После перезагрузки:

➜ ~ # kldstat -v 4 1 0xffffffff82149000 1152b8 if_re_freebsd_13.0.ko (/boot/modules/if_re_freebsd_13.0.ko) Contains modules: Id Name 3 pci/if_re ➜ ~ # dmesg | grep re0 re0: port 0xe000-0xe0ff mem 0x81200000-0x81200fff,0xa0000000-0xa0003fff irq 17 at device 0.0 on pci1 re0: Using Memory Mapping! re0: Using line-based interrupt re0: ASPM disabled re0: version:1.96.04 re0: Ethernet address: 30:f7:d7:03:5a:00 re0: link state changed to UP Теперь, по идее, при обновлении ядра ничего перезаписываться не должно.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/anignatev/if_re/issues/1#issuecomment-990935857, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF74HMF6KYG6XRTIQ7UMCODUQHXSFANCNFSM5JYR4EKQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

С Уважением, Игнатьев Алексей Николаевич

Председатель совета директоров Группа компаний Информ-Системы

Телефон/факс: +7 (918) 190-09-01 - мобильный +7 (861) 201-12-21 - рабочий (доб. 23001)

Интернет: https://www.isg.dev https://www.allvend.ru https://www.fingerps.com https://www.neurontower.com https://www.skysend.ru https://taplink.cc/infsysgroup

Социальные сети: https://twitter.com/alexey_ignatev https://alexeyignatiev.livejournal.com https://www.instagram.com/ignatiev_alexey

Электронная почта: @. - отдел продаж @. - общие вопросы

quicktrick commented 2 years ago

Нашел в портах пакет net/realtek-re-kmod, человек там поддерживает, и, соответственно, он билдится под все версии FreeBSD.

Вот здесь есть обсуждение:

На 13-е версии FreeBSD (в частности, на 13.1) устанавливается так:

# pkg add https://pkg.freebsd.org/FreeBSD:13:amd64/latest/All/realtek-re-kmod-196.04.txz

Add the following lines to your /boot/loader.conf to override the built-in FreeBSD re(4) driver.

if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"