#1 Le 02/09/2015, à 17:29
- Tuxophile
Modifier le nom des interfaces réseau avec udev
Bonjour,
Je cherche à modifier le nom des interfaces réseau grâce à udev mais sans résultat pour le moment.
Voici la liste des périphériques réseau sur ma machine:
Bus info Device Class Description
=================================================
pci@0000:02:00.0 wlan0 network Wireless 7260
pci@0000:03:00.0 p2p1 network 82583V Gigabit Network Connection
pci@0000:04:00.0 p3p1 network 82583V Gigabit Network Connection
Si je fais un ifconfig j'ai bien mes 3 interfaces (wlan0, p2p1 et p3p1).
Je dois renommer p2p1 en eth0 et p3p1 en eth1.
Je décide donc de modifier le fichier /etc/udev/rules.d/70-persistent-net.rules.
Quand j'ouvre ce fichier j'ai la surprise de n'avoir qu'une seule ligne correspondant à wlan0.
# PCI device 0x8086:0x08b1 (iwlwifi)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="--:--:--:--:--:--", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
Les interfaces p2p1 et p3p1 ne sont pas présentes...
J'ai pas mal cherché sur le net et j'ai tout essayé pour regénérer le fichier avec les entrées manquantes.
Tentative1:
export INTERFACE=p2p1
export MATCHADDR=$(ip addr show $INTERFACE | grep ether | awk '{print $2}')
/lib/udev/write_net_rules
Le script plante. J'ai le message "missing $INTERFACE" alors que un echo de $INTERFACE donne bien p2p1!!
Est ce que c'est une histoire de portée de variable??
Pas moyen d'utiliser cette technique que j'ai vu un peu partout sur internet.
Tentative2:
Saisir manuellement les lignes pour les interfaces manquantes avec leurs addresses MAC et les nouveaux noms
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="--:--:--:--:--:--", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="--:--:--:--:--:--", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Les interface ne sont pas renommées après redémarrage... C'est comme si ces lignes ne servaient à rien.
Tentative3:
J'ai essayé divers commandes que j'ai trouvé sur d'autres forums
udevadm trigger --action=add --subsystem-match=pci
udevadm trigger --action=change
udevadm control --reload-rules
Sans résultat...
Auriez vous une idée? Ce qui m'embête le plus c'est la tentative 1. Je ne comprends vraiment pourquoi ça ne marche pas alors que ça semble fonctionner pour tout le monde.
Merci infiniment pour votre aide
Hors ligne
#2 Le 06/09/2015, à 09:22
- Vysserk3
Re : Modifier le nom des interfaces réseau avec udev
Salut,
Concernant la tentative 2 (qui, je pense, est la solution la plus propre), essaye plutôt :
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="eth1"
En remplaçant "aa:bb:cc:dd:ee:ff" par l'adresse MAC de p2p1 et "ff:ee:dd:cc:bb:aa" par celle de p3p1 (Il faut aussi bien mettre l'adresse MAC en minuscule).
Les règles que tu as écrites sont trop filtrantes à mon avis.
Pour tester la règle (avec p2p1 par exemple) :
ip link set down p2p1
udevadm --debug test /sys/class/net/p2p1/address
(Source : https://wiki.archlinux.org/index.php/Ne … vice_name)
Dernière modification par Vysserk3 (Le 06/09/2015, à 09:24)
Hors ligne