Comment rétablir le nom de l'interface wifi USB (de wlxXXXXXXXXXXXX à wlanX)?

9

Avec Ubuntu 16.04, l'interface USB wifi est maintenant wlxXXXXXXXXXXXX où les X sont les chiffres de l'adresse mac de l'appareil (politique de nom d'interface prévisible) Plus d'informations à ce sujet peuvent être trouvées ici: systemd: PredictableNetworkInterfaceNames

en fait, tous les noms d'interface ont changé, mais j'ai pu revenir à l'ancienne méthode (ethX pour l'interface Ethernet, wlanX pour la carte wifi inetrnal) en modifiant / etc / default / grub comme suggéré dans le troisième article de ce thread, en changeant le nom des interfaces réseau ubuntu 16-04 Mon problème est que cette solution ne fonctionne pas pour les interfaces USB et j'ai toujours ce nom long très ennuyeux (j'utilise beaucoup la ligne de commande pour jouer avec mes interfaces wifi) problème de dénomination de l'interface

 So here is my question: 

Que dois-je faire pour désactiver ces nouvelles règles pour mon interface USB wifi? Merci pour vos conseils et excusez mon pauvre anglais. Au revoir

kcdtv
la source
Pourquoi voulez-vous qu'il soit désactivé?
Kaz Wolfe
Parce que j'utilise la ligne de commande pour gérer mon interface USB wifi et j'utilise des scripts qui utilisent d'anciens noms. Que nous pourrions parler pendant des heures de ce que je considère comme une interface systemd très inutile "politique prévisible" mais ... ce n'est pas vraiment le point ici :)
kcdtv
Si vous avez des scripts qui gèrent et que vous utilisez la même carte, pourquoi ne pas simplement changer les scripts pour utiliser les noms corrects (et meilleurs)? De cette façon, vous saurez toujours avec lequel vous travaillez. Si vous n'avez toujours que ces deux cartes branchées, faites en sorte que le script trouve l'autre carte et configurez-la.
Kaz Wolfe
Il n'y a pas de meilleurs noms ... je n'entrerai pas dans des considérations plus approfondies à ce sujet, ce n'est vraiment pas le point ici, vous considérez qu'ils sont meilleurs mais vous pouvez utiliser votre système entre autres, je l'utilise d'une manière différente ... I ont en fait beaucoup de cartes ... mais vraiment ce n'est pas le point ici ....
kcdtv
1
Le nouveau schéma de dénomination est nul. Maintenant, nous avons besoin d'un script séparé lorsque le périphérique USB est changé - en raison du nom, lié à l'adresse mac.
Nuclear

Réponses:

9

Vous avez manqué une chose de https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

Redémarrez ensuite

Je pense qu'il doit s'agir du fichier 80-net-setup-link.rules dans / etc / udev / car le seul ordinateur portable que j'ai mis à jour vers Ubuntu 16.04 à partir du 15.10 contenait toujours un fichier nommé /lib/udev/rules.d/73- usb-net-by-mac.rules et il contenait

# Use MAC based names for network interfaces which are directly or indirectly
on USB and have an universally administered (stable) MAC address (second bit
is 0).

IMPORT{cmdline}="net.ifnames", ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end" PROGRAM="/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules", RESULT=="/dev/null", GOTO="usb_net_by_mac_end"

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \ ATTR{address}=="?[014589cd]:*", \ IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"

LABEL="usb_net_by_mac_end"

Et il spécifie /etc/udev/rules.d/80-net-setup-link.rules

Ce fichier n'existe dans aucune de mes installations propres d'Ubuntu 16.04 mais une partie de celui-ci doit exister dans un autre code source

Jeremy31
la source
1
Salut Jeremy31 et merci de votre réponse
kcdtv
. Mon répertoire /etc/udev/rules.d/ est vide. J'ai un 80-net-setup-link.rules dans /lib/udev/rules.d . J'ai fait la même chose que ce qui est suggéré dans ce répertoire, mais le périphérique wifi USB est toujours nommé avec l'adresse mac. Je vais essayer de trouver un moyen et je mettrais à jour quand je trouverai quelque chose ... merci encore
kcdtv
Il suffit de le faire sur /etc/udev/rules.d/80-net-setup-link.rules car je viens de vérifier ma machine ubuntu 16.04 et de brancher un ancien périphérique wifi USB le montre comme wlan1 dans iwconfig. Je ne sais pas pourquoi le net.ifnames = 0 dans le fichier grub n'est pas suffisant pour l'empêcher de changer de périphérique USB
Jeremy31
Ça a marché! J'ai copié la règle 80 de /lib/udev/rules.d vers /etc/udev/rules.d . Ensuite, je l'ai dupliqué dans ce répertoire, en le renommant 80-net-setup-link.rules.bak . Et j'ai finalement créé le lien symbolique vers / dev / null_. Après le redémarrage, ma carte USB WiFi n'apparaît plus comme interface " wlan1 ". Merci beaucoup! :)
kcdtv
2

Une note pour ceux qui recherchent un cas d'utilisation similaire:

J'ai eu un problème avec un pilote de dongle WiFi USB incapable de s'authentifier à cause d'un nom d'interface assez long dans Debian (stretch).

Étapes de résolution:

  1. copié /lib/udev/rules.d/80-net-setup-link.rulesdans/etc/udev/rules.d/

  2. changé $env{ID_NET_NAME}en$env{ID_NET_SLOT}

Cela a maintenu l'unicité du nom de l'interface tout en le raccourcissant.

Mise à jour: cela ne semble plus être un problème avec Debian 10.

Code Maverick
la source
0

J'ai ubuntu studio et j'ai eu le même problème: un long nom wlxxxxx ET le wifi connecté mais NE FONCTIONNE PAS!

Le studio Ubuntu a un noyau spécial à faible latence et je soupçonnais que le nom long pourrait être un problème.

Donc, je le renomme wlan0 inspiré par ce fil. J'ai fait ce qui suit:

1) copié le /lib/udev/rules.d/80-net-setup-link.rules dans le dossier /etc/udev/rules.d/

2) y a modifié le nom. Dans mon cas, il y avait une ligne: NAME == "", ENV {ID_NET_NAME}! = "", NAME = "$ env {ID_NET_NAME}"

Je viens de mettre "wlan0" au lieu de "$ env {ID_NET_NAME}".

Et maintenant le wifi FONCTIONNE!

GR

mchrgr2000
la source
0

Au lieu de désactiver complètement le changement de nom, vous pouvez le remplacer pour donner à vos interfaces vos propres noms personnalisés. Cela conserve le nom statique, mais vous donne un nom dont vous vous souvenez et que vous tapez.

Le système de nommage existant ( /lib/udev/rules.d/80-net-setup-link.rules) ne renomme une interface que si elle n'a pas déjà reçu de nom. Vous pouvez donc ajouter vos propres règles à une priorité plus élevée dans /etc/udev/rules.dlaquelle nomme les interfaces à votre manière, ce qui empêche ensuite le système par défaut de nommer ces interfaces.

J'ai le fichier 70-wifi.rulesdans mon système qui nomme les interfaces en fonction du réseau auquel elles sont connectées:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0f:00:4a:c4:c9", NAME="wifi-root"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:19:86:31:dd:b7", NAME="wifi-main"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="38:2c:4a:48:27:49", NAME="wifi-local"

Il est saisi par l'adresse MAC de l'interface et se traduit par:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 3c:d9:2b:73:ad:5d brd ff:ff:ff:ff:ff:ff
15: wifi-main: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:19:86:31:dd:b7 brd ff:ff:ff:ff:ff:ff
16: wifi-local: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 38:2c:4a:48:27:49 brd ff:ff:ff:ff:ff:ff
17: wifi-root: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:0f:00:4a:c4:c9 brd ff:ff:ff:ff:ff:ff

Vous pouvez les renommer wlan0, wlan1, etc. La beauté de cette méthode est que vous obtenez les noms que vous voulez et que vous bénéficiez d'un nom d'interface réseau statique. Ainsi, les interfaces seront toujours nommées de la même manière.

Majenko
la source