Моя система работает под управлением 20.04.3 LTS, и я использую ее в качестве Plex Media Server (среди других служб). Я использую связанную сеть для адаптивной балансировки нагрузки в системе. Я сталкиваюсь с проблемой в системе, когда она получает новое обновление ядра.
В системе 2 сетевые карты. Один находится в слоте (контроллер RTL8169 PCI Gigabit Ethernet), а другой встроен (контроллер RTL8111/8168/8411 PCI Express Gigabit Ethernet). Проблема, с которой я сталкиваюсь, заключается в том, что RTL8111/8168/8411 не нравится драйвер r8169 (будут происходить непредсказуемые вещи, например, невозможность связи с Интернетом), поэтому мне нужно выполнить следующие команды, чтобы отвязать драйвер r8169 и привязать драйвер r8168:
адрес=$(lspci | awk '/8168/ {print "0000:"$1}')
эхо $адрес | sudo tee /sys/bus/pci/drivers/r8169/отвязать
эхо $адрес | sudo tee /sys/bus/pci/drivers/r8168/bind
После выполнения этих команд драйвер правильно отображается в лшв
команда, и у меня нет никаких проблем, когда правильный драйвер установлен для правильной карты:
terrance@Intrepid:~$ sudo lshw -C сеть
*-сеть
описание: Интерфейс Ethernet
продукт: RTL8111/8168/8411 Контроллер PCI Express Gigabit Ethernet
поставщик: Realtek Semiconductor Co., Ltd.
физический идентификатор: 0
информация о шине: pci@0000:02:00.0
логическое имя: eth0
версия: 03
серийный номер: c8:3a:35:d6:ec:a0
размер: 1 Гбит/с
пропускная способность: 1 Гбит/с
ширина: 64 бита
часы: 33 МГц
возможности: pm msi pciexpress msix vpd bus_master cap_list ethernet физический tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd автосогласование
конфигурация: автосогласование=по широковещанию=да драйвер=r8168 версия драйвера=8.048.00-дуплекс NAPI=полная задержка=0 ссылка=да многоадресная рассылка=да порт=ведомая витая пара=да скорость=1 Гбит/с
ресурсы: irq:25 ioport:d800(size=256) память:fdfff000-fdffffff память:fdff8000-fdffbfff
*-сеть
описание: Интерфейс Ethernet
продукт: Контроллер RTL8169 PCI Gigabit Ethernet
поставщик: Realtek Semiconductor Co., Ltd.
физический идентификатор: 5
информация о шине: pci@0000:03:05.0
логическое имя: eth1
версия: 10
серийный номер: bc: 5f: f4: 79: 66: fe
размер: 1 Гбит/с
пропускная способность: 1 Гбит/с
ширина: 32 бита
часы: 66 МГц
возможности: pm bus_master cap_list rom ethernet Physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd автосогласование
конфигурация: автосогласование=на широковещании=да драйвер=r8169 версия драйвера=5.13.0-30-общий дуплекс=полная задержка=64 ссылка=да максимальная задержка=64 миннт=32 многоадресная передача=да порт=ведомая витая пара=да скорость=1 Гбит/с
ресурсы: irq:20 ioport:e800(size=256) память:febffc00-febffcff память:febc0000-febdffff
*-сеть
описание: Интерфейс Ethernet
физический идентификатор: 1
логическое имя: bond0
серийный номер: bc: 5f: f4: 79: 66: fe
возможности: Ethernet физический
конфигурация: автосогласование=выкл. трансляция=да драйвер=связывание версия драйвера=5.13.0-30-универсальный дуплекс=полная прошивка=2 ip=10.0.0.220 ссылка=да мастер=да многоадресная рассылка=да
Это длится через перезагрузки просто отлично до следующего обновления ядра. Но если я запускаю те же самые команды в сценарии, он говорит мне: «Нет такого устройства».
terrance@Intrepid:~/bin$ sudo ./driver_fix.bsh
0000:02:00.0
тройник: /sys/bus/pci/drivers/r8169/unbind: нет такого устройства
0000:02:00.0
tee: /sys/bus/pci/drivers/r8168/bind: нет такого устройства
Каким будет лучший способ сделать это постоянным, чтобы оно либо вносило это изменение во время запуска, либо изменялось только при обновлении ядра?
Спасибо!