Recarregar interfaces de rede sem reinicializar

1

Estou fazendo um script BASH para o Arch Linux em um Raspberry Pi 2. A questão é que, em algum momento, gostaria de recarregar as interfaces de rede sem reinicializar e ter minhas novas interfaces de rede nomeadas (en0 e wl0) quando Eu insiro networkctl , por exemplo. A solução que encontrei é:

Reduza as interfaces de rede:

ip link set <net_if> down ;

Modifique /etc/udev/rules.d/70-persistent-net.rules (ou seu equivalente): no meu caso, é 10-network.rules. Contém:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:aa:aa:aa:aa:aa", NAME="en0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="bb:bb:bb:bb:bb:bb", NAME="wl0"

Recarregue com

udevadm control --reload-rules ;

Retrigger com

udevadm trigger --attr-match=subsystem=net ;

Traga as interfaces de rede para cima:

ip link set <net_if> up ;

Mas não funcionou no meu RbPi2.

Eu também encontrei em outro post que em algum momento você deve inserir

modprobe -r <driver module>

mas não consigo encontrar meu módulo de driver para meu dongle wifi (tentei com lsusb -v ).

BTW: não estou usando o Networkmanager. Eu configurei as interfaces de rede com systemd (/ etc / systemd / network /). Eu também tentei recarregar o serviço systemd-networkd.

Obrigado

    
por ctafur 30.07.2015 / 20:41

1 resposta

0

para obter o driver para uma interface de rede, basta usar: ethtool -i en0 e procurar a seção "driver":

root@odin ~ # ethtool -i eth0
driver: e1000e
version: 2.3.2-k
firmware-version: 0.13-4

Aqui, meu driver é e1000e.

Agora você pode rmmod seu driver e modprobe-lo novamente. Isso também redefinirá os contadores de rede, é claro.

    
por 30.07.2015 / 22:37