¿Cómo revertir el nombre de la interfaz wifi USB (de wlxXXXXXXXXXXXX a wlanX)?

9

Con Ubuntu 16.04, la interfaz wifi USB ahora es wlxXXXXXXXXXXXX, donde la X son los dígitos de la dirección mac del dispositivo (política del nombre de interfaz predecible) Puede encontrar más información sobre esto aquí: systemd: PredictableNetworkInterfaceNames

En realidad, todos los nombres de interfaz han cambiado, pero pude volver a la forma antigua (ethX para interfaz ethernet, wlanX para tarjeta wifi interna) modificando / etc / default / grub como se sugiere en la tercera publicación de este hilo cambiando el nombre de las interfaces de red ubuntu 16-04 Mi problema es que esta solución no funciona para las interfaces USB y todavía tengo este nombre largo muy molesto (uso mucho la línea de comandos para jugar con mis interfaces wifi) problema de nomenclatura de interfaz

 So here is my question: 

¿Qué debo hacer para deshabilitar estas nuevas reglas para mi interfaz wifi USB? Gracias por tus consejos y disculpa mi pobre inglés. Adiós

kcdtv
fuente
¿Por qué lo quieres deshabilitado?
Kaz Wolfe
Porque uso la línea de comandos para administrar mi interfaz USB wifi y uso scripts que usan nombres antiguos. De lo que podríamos hablar horas sobre lo que considero como una "política predecible" de interfaz de sistema muy inútil pero ... ese no es realmente el punto aquí :)
kcdtv
Si tiene secuencias de comandos que administran y usa la misma tarjeta, ¿por qué no simplemente cambiar las secuencias de comandos para usar los nombres correctos (y mejores)? De esta manera, siempre sabrá con cuál está trabajando. Si siempre tiene estas dos tarjetas conectadas, haga que el script encuentre la otra tarjeta y configúrela.
Kaz Wolfe
No hay mejores nombres ... No voy a entrar en consideraciones más profundas sobre esto, ese no es realmente el punto aquí, usted considera que son mejores, pero podría usar su sistema de alguna manera, lo uso de una manera diferente ... I en realidad tengo muchas cartas ... pero realmente ese no es el punto aquí ...
kcdtv
1
El nuevo esquema de nombres apesta. Ahora necesitamos un script separado cuando se cambia el dispositivo USB, debido al nombre, vinculado a la dirección mac.
Nuclear

Respuestas:

9

Te perdiste una cosa de https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

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

Luego reiniciar

Creo que debe ser el archivo 80-net-setup-link.rules en / etc / udev / ya que la computadora portátil que actualicé a Ubuntu 16.04 desde 15.10 todavía contenía un archivo llamado /lib/udev/rules.d/73- usb-net-by-mac.rules y contenía

# 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"

Y especifica /etc/udev/rules.d/80-net-setup-link.rules

Este archivo no existe en ninguna de mis instalaciones limpias de Ubuntu 16.04, pero parte de esto debe existir en otro código fuente

Jeremy31
fuente
1
Hola Jeremy31 y gracias por tu respuesta
kcdtv
. Mi directorio /etc/udev/rules.d/ está vacío. Tengo un 80-net-setup-link.rules en /lib/udev/rules.d . Hice lo mismo que lo sugerido en este directorio, pero el dispositivo wifi USB todavía se nombra con la dirección mac. Trataré de encontrar una manera y actualizaré cuando encuentre algo ... gracias de nuevo
kcdtv
Simplemente hágalo en /etc/udev/rules.d/80-net-setup-link.rules, ya que acabo de comprobar mi máquina ubuntu 16.04 y enchufar un dispositivo wifi USB más antiguo lo muestra como wlan1 en iwconfig. No estoy seguro de por qué net.ifnames = 0 en el archivo grub no es suficiente para evitar que cambie los dispositivos USB
Jeremy31
¡Funcionó! Copié la regla 80 de /lib/udev/rules.d a /etc/udev/rules.d . Luego lo dupliqué en este directorio, renombrándolo 80-net-setup-link.rules.bak . Y finalmente creé el enlace simbólico a / dev / null_. Después de reiniciar mi tarjeta WiFi USB no aparece ahora como interfaz " wlan1 ". ¡Muchas gracias! :)
kcdtv
2

Una nota para aquellos que buscan un caso de uso similar:

Tuve un problema con el controlador de un dongle USB WiFi que no se pudo autenticar debido a un nombre de interfaz bastante largo en Debian (estiramiento).

Pasos para la resolución:

  1. copiado /lib/udev/rules.d/80-net-setup-link.rulesa/etc/udev/rules.d/

  2. cambiado $env{ID_NET_NAME}a$env{ID_NET_SLOT}

Esto mantuvo la unicidad del nombre de la interfaz mientras lo acortaba.

Actualización: Esto ya no parece ser un problema con Debian 10.

Code Maverick
fuente
0

Tengo ubuntu studio y tuve el mismo problema: un largo nombre wlxxxxx Y el wifi conectado pero ¡NO FUNCIONA!

Ubuntu Studio tiene un núcleo especial de baja latencia y sospeché que el nombre largo podría ser un problema.

Entonces, lo renombré a wlan0 inspirado en este hilo. Hice lo siguiente:

1) copié /lib/udev/rules.d/80-net-setup-link.rules en la carpeta /etc/udev/rules.d/

2) editó el nombre allí. En mi caso, había una línea: NAME == "", ENV {ID_NET_NAME}! = "", NAME = "$ env {ID_NET_NAME}"

Acabo de poner "wlan0" en lugar de "$ env {ID_NET_NAME}".

¡Y ahora wifi FUNCIONA!

GRAMO

mchrgr2000
fuente
0

En lugar de deshabilitar completamente el cambio de nombre, puede anularlo para dar a sus interfaces sus propios nombres personalizados. Eso mantiene el nombre estático, pero le da un nombre que puede recordar y escribir.

El sistema de nombres existente ( /lib/udev/rules.d/80-net-setup-link.rules) solo cambia el nombre de una interfaz si aún no se le ha dado un nombre. Por lo tanto, puede agregar sus propias reglas con una prioridad más alta en las /etc/udev/rules.dque nombra las interfaces a su manera, lo que luego impide que el sistema predeterminado nombre esas interfaces.

Tengo el archivo 70-wifi.rulesen mi sistema que nombra las interfaces de acuerdo con la red a la que están conectadas:

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"

Está codificado por la dirección MAC de la interfaz y da como resultado:

$ 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

Puede cambiarles el nombre a wlan0, wlan1, etc. La belleza de este método es que obtiene los nombres que desea y se beneficia de los nombres de interfaz de red estática. Entonces las interfaces siempre serán nombradas de la misma manera.

Majenko
fuente