Mon système fonctionne sous la version 20.04.3 LTS, et je l'utilise comme serveur multimédia Plex (entre autres services). J'utilise un réseau lié pour l'équilibrage de charge adaptatif sur le système. Je rencontre un problème avec le système lorsqu'il reçoit une nouvelle mise à jour du noyau.
Il y a 2 cartes réseau dans le système. L'une est dans un slot (RTL8169 PCI Gigabit Ethernet Controller) et l'autre est embarquée (RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller). Le problème auquel je me heurte est que le RTL8111/8168/8411 n'aime pas le pilote r8169 (des choses imprévisibles se produisent, comme l'impossibilité de communiquer avec Internet). Je dois donc exécuter les commandes suivantes pour délier le pilote r8169 et lier le pilote r8168 :
address=$(lspci | awk '/8168/ {print "0000:"$1}')
echo $address | sudo tee /sys/bus/pci/drivers/r8169/unbind
echo $address | sudo tee /sys/bus/pci/drivers/r8168/bind
Après l'exécution de ces commandes, le pilote s'affiche correctement dans le répertoire de l'utilisateur. lshw
et je n'ai aucun problème lorsque le bon pilote est configuré pour la bonne carte :
terrance@Intrepid:~$ sudo lshw -C network
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 03
serial: c8:3a:35:d6:ec:a0
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.048.00-NAPI duplex=full latency=0 link=yes multicast=yes port=twisted pair slave=yes speed=1Gbit/s
resources: irq:25 ioport:d800(size=256) memory:fdfff000-fdffffff memory:fdff8000-fdffbfff
*-network
description: Ethernet interface
product: RTL8169 PCI Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 5
bus info: pci@0000:03:05.0
logical name: eth1
version: 10
serial: bc:5f:f4:79:66:fe
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 66MHz
capabilities: pm bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.13.0-30-generic duplex=full latency=64 link=yes maxlatency=64 mingnt=32 multicast=yes port=twisted pair slave=yes speed=1Gbit/s
resources: irq:20 ioport:e800(size=256) memory:febffc00-febffcff memory:febc0000-febdffff
*-network
description: Ethernet interface
physical id: 1
logical name: bond0
serial: bc:5f:f4:79:66:fe
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=bonding driverversion=5.13.0-30-generic duplex=full firmware=2 ip=10.0.0.220 link=yes master=yes multicast=yes
Cela dure à travers les redémarrages juste bien jusqu'à la prochaine mise à jour du noyau. Mais, si je lance exactement les mêmes commandes dans un script, il me dit "No such device".
terrance@Intrepid:~/bin$ sudo ./driver_fix.bsh
0000:02:00.0
tee: /sys/bus/pci/drivers/r8169/unbind: No such device
0000:02:00.0
tee: /sys/bus/pci/drivers/r8168/bind: No such device
Quel serait le meilleur moyen de rendre ce changement permanent, soit en le modifiant au démarrage, soit en le modifiant uniquement lors d'une mise à jour du noyau ?
Gracias.