LINUX.ORG.RU
ФорумAdmin

Как сменить драйвер по ssh

 ,


0

1

Начал виснуть сервер, точнее сеть. Второй раз при пиковой сетевой нагрузке посыпались сообщения от драйвера r8169. Провайдер посоветовал сменить драйвер на r8168

Там вроде все просто описано, компилируешь (./autorun.sh), потом проверяешь lsmod | grep r8168.

Нужно ли для этого выключать интерфейс? Там написано что после установки драйвера выполните ifconfig ethX up. Значит до установки нужно выключать сеть? И как старый драйвер выгрузить (и нужно ли?), он же в ядре, что для этого нужно?

★★★★

https://github.com/mtorromeo/r8168

Kernel source tree (supported Linux kernel 2.6.x and 2.4.x)

LICENSE: not found

Какой-то мутный репозиторий.

как старый драйвер выгрузить (и нужно ли?),

В autorun.sh есть строчка /sbin/rmmod r8169 так что он попытается его выгрузить самостоятельно. Правда до обработки ошибок автор скрипта не дошёл, поэтому при ошибке в этом месте (и во многих других) будет всякое прикольное.

Как сменить драйвер по ssh

В этот момент у тебя разорвётся ssh-соединение. Поэтому процедуру надо выполнять через KVM, а не ssh.

Ещё имей в виду, что описанную процедуру следует повторять после каждого обновления ядра.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 5)
Ответ на: комментарий от vbr

LICENSE: not found
Какой-то мутный репозиторий

Хм, а где ты такое нашел? Да я даже хз, первая строчка из гугла, может что другое есть? Есть какой то в дебе пакет

Я вообще с таким первый раз сталкиваюсь, никогда проблем таких ен было и вот...

В этот момент у тебя разорвётся ssh-соединение

В момент установки? Но он же установится и сеть... не заработает автоматом?

Ещё имей в виду, что описанную процедуру следует повторять после каждого обновления ядра

Собирать заново модуль?

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 1)
Ответ на: комментарий от gobot

Хм, а где ты такое нашел?

В том-то и дело, что НЕ нашёл.

Есть какой то в дебе пакет

Ну так ставь пакет, зачем тебе собирать непонятный код от непонятного Массилимиана?

Я вообще с таким первый раз сталкиваюсь, никогда проблем таких ен было и вот…

Потому, что у нормальных хостеров нормальное железо, которое нормально работает с линуксом из коробки.

В этот момент у тебя разорвётся ssh-соединение

В момент установки?

В момент выполнения этой строчки в скрипте.

Но он же установится

Тут как повезёт. Может прилететь SIGHUP от управляющего терминала и скрипт грохнется посередине. Может какая-нибудь ошибка произойдёт и твой сервер останется без сети с удалённым r8169.ko.zst.

и сеть… не заработает автоматом?

Новый модуль он попытается загрузить. Что потом будут делать скрипты дебиана - я не знаю. Я бы поставил на то, что до перезагрузки ничего не заработает.

В общем если ты ВЕРИШЬ в успех, я бы посоветовал выполнить в ssh такую команду:

nohup sh -c './autorun.sh && systemctl reboot'

И надеяться на то, что всё сработает и после перезагрузки сеть поднимется. Лично я - не верю и настоятельно рекомендую хотя бы через KVM всё это проводить. Чтобы была возможность вернуть удалённые старые модули и восстановить хоть какую-то работоспособность сети.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от Ololo_Trololo

Да, кстати и тут есть вроде https://www.realtek.com/Download/List?cate_id=584


8.055.00 2025/02/03

Только я не понимаю, откуда ноги растут драйвера r8169, который в ядре? Его кто писал?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

и все? Просто если не загрузится это будет капец полный, там KVM нет

Так общайся с тем, у кого сервер стоит. У тебя и просто при замете может не взлететь, так как драйвер не подойдёт почему-то. У тебя же точно такого нет рядом, чтобы попробовать и убедиться для начала?

AS ★★★★★
()
Ответ на: комментарий от gobot

В момент установки? Но он же установится и сеть... не заработает автоматом?

Да. По-этому тебе уже написали, как: собираешь, ядерный записываешь в блэклист, перезагружаешь сервер. Надеешься.

Чисто теоретически можешь попробовать перед стартом сети добавить загрузку старого модуля. Если новый будет загружен, старый точно не загрузится, а вот если новый не загрузится, может быть сработает, как бакап. Но надо протестить, только что в голову пришло.

Собирать заново модуль?

При обновлении ядра - да. Модуль под конкретное ядро собирается. Там, конеяно, проверку можно отключить при загрузке, но как пойдёт.

AS ★★★★★
()
Ответ на: комментарий от thesis

Загрузился новый модуль r8168 вроде норм!

r8168: loading out-of-tree module taints kernel.
r8168: module verification failed: signature and/or required key missing - tainting kernel
r8168 Gigabit Ethernet driver 8.055.00-NAPI loaded
r8168  Copyright (C) 2024 Realtek NIC software team <nicfae@realtek.com>
kernel: r8168: eth0: link up


ядерный записываешь в блэклист

А надо? Для чего?

Посмотрим что он даст в итоге!

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 1)
Ответ на: комментарий от gobot

Собирать заново модуль?

Есть ещё один вариант кстати, как защита от забывчивости. Можно переименовать модуль при сборке в r8169 и положить его в /lib/modules/<название ядра>/updates, тогда будет грузиться это обновление, а если забыть собрать для нового ядра, загрузится ядерный. И не надо прописывать в блэклист в этом случае.

AS ★★★★★
()
Ответ на: комментарий от Dimez

да я тоже в гугле видел что-то промелькивало в пакетах, но мне кажется напрямую с сайта реалтек посвежее будет версия все-же или одни и те же яйца

Проверял на хецнеровских серверах

А сейчас кстати от них какой то смысл есть, если в РФ трафик гоняешь?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Я про то как узнать в kernel space OR user space загружен модуль

Ой, а когда это ядерные модули (в том числе и отдельно собранные) стали уметь в user space грузиться? Я пропустил что-то?

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от gobot

да я тоже в гугле видел что-то промелькивало в пакетах, но мне кажется напрямую с сайта реалтек посвежее будет версия все-же или одни и те же яйца

dkms из дистрибутива гарантированно будет собираться при прилетании нового ядра, драйвер через make install - будет совсем не гарантированно.

Dimez ★★★★★
()
Ответ на: комментарий от Dimez

А понятно. Так ядро и не обновляется вроде. А что его обновлять надо? Как-то обновилось у меня ядро на убунте...ну нахер такое

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 1)
Ответ на: комментарий от vbr

В этот момент у тебя разорвётся ssh-соединение

это совсем не проблема
раньше делал много раз

надо просто подготовить и проверить в лабе свой скрипт, сводится к:

ip l set old-eth down
rmmod r8169
insmod r8168
ip l set new-eth up
ip a a IP/MASK dev new-eth
ip r a default via provider-gw-IP

его можно даже по cron пустить

mumpster ★★★★★
()
Ответ на: комментарий от vbr

И надеяться на то, что всё сработает и после перезагрузки сеть поднимется. Лично я - не верю и настоятельно рекомендую хотя бы через KVM всё это проводить. Чтобы была возможность вернуть удалённые старые модули и восстановить хоть какую-то работоспособность сети.

Я в подобных случаях, когда нет никаких квм и т.п., делал копии изменяемого/заменяемого, писал скрипт возвращающий оригиналы и прописывал его в крон на выполнение раз в N минут. До ребута проверили, что не накосячил и все вернулось, ну а потом можно и в ребут.

anc ★★★★★
()