Como reverter o nome da interface wifi USB (de wlxXXXXXXXXXXXXXX para wlanX)?

9

Com o Ubuntu 16.04, a interface USB wifi agora é wlxXXXXXXXXXXXX, onde X são os dígitos do endereço mac do dispositivo (política de nome previsível da interface) Mais informações sobre isso podem ser encontradas aqui: systemd: PredictableNetworkInterfaceNames

na verdade, todos os nomes de interface foram alterados, mas eu pude voltar à moda antiga (ethX para interface Ethernet, wlanX para placa wifi inetrnal) modificando / etc / default / grub, conforme sugerido no terceiro post deste tópico, alterando o nome das interfaces de rede ubuntu 16-04 Meu problema é que esta solução não funciona para as interfaces USB e ainda tenho esse nome muito irritante (eu uso muito a linha de comando para brincar com minhas interfaces wifi) problema de nomeação de interface

 So here is my question: 

O que devo fazer para desativar essas novas regras para minha interface wifi USB? Obrigado por seus conselhos e desculpe meu inglês pobre. Tchau

kcdtv
fonte
Por que você deseja desativá-lo?
Kaz Wolfe
Porque eu uso a linha de comando para gerenciar minha interface USB wifi e uso scripts que usam nomes antigos. Do que poderíamos falar horas sobre o que eu considero como uma interface "política previsível" muito inútil systemd mas ... isso não é realmente o ponto aqui :)
kcdtv
Se você possui scripts que gerenciam e usa o mesmo cartão, por que não mudar os scripts para usar os nomes corretos (e melhores)? Dessa forma, você sempre saberá com quem está trabalhando. Se você sempre tiver apenas esses dois cartões conectados, faça com que o script encontre o outro cartão e configure-o.
Kaz Wolfe
Não há nomes melhores ... eu não vou entrar em considerações mais profundas sobre isso, esse não é realmente o ponto aqui, você considera que eles são melhores, mas você pode usar seu sistema de uma maneira, eu o uso de uma maneira diferente ... realmente tem um monte de cartão ... mas realmente que não é o ponto aqui ....
kcdtv
1
O novo esquema de nomenclatura é uma porcaria. Agora precisamos de um script separado quando o dispositivo USB for alterado - por causa do nome, vinculado ao endereço mac.
Nuclear Nuclear

Respostas:

9

Você perdeu uma coisa em https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

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

Então reinicie

Eu acho que ele precisa ser o arquivo 80-net-setup-link.rules em / etc / udev / como o laptop que atualizei para o Ubuntu 16.04 a partir da 15.10 ainda continha um arquivo chamado /lib/udev/rules.d/73- usb-net-by-mac.rules e continha

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

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

Este arquivo não existe em nenhuma das minhas instalações limpas do Ubuntu 16.04, mas parte disso deve existir em outro código-fonte

Jeremy31
fonte
1
Oi Jeremy31 e obrigado por você responder
kcdtv
. Meu diretório /etc/udev/rules.d/ está vazio. Eu tenho um 80-net-setup-link.rules em /lib/udev/rules.d . Fiz o mesmo que o sugerido neste diretório, mas o dispositivo wifi USB ainda é nomeado com o endereço mac. Vou tentar encontrar um caminho e vai atualizar quando eu encontrar algo ... obrigado novamente
kcdtv
Basta fazê-lo no /etc/udev/rules.d/80-net-setup-link.rules quando acabei de verificar minha máquina ubuntu 16.04 e conectar um dispositivo wifi USB mais antigo mostra como wlan1 no iwconfig. Não estou certo por que os net.ifnames = 0 no arquivo grub não é o suficiente para mantê-lo de mudar dispositivos USB
Jeremy31
Funcionou! Copiei a regra 80 do /lib/udev/rules.d para /etc/udev/rules.d . Então eu o dupliquei neste diretório, renomeando-o como 80-net-setup-link.rules.bak . E finalmente criei o link simbólico para / dev / null_. Após a reinicialização, minha placa USB WiFi não aparece mais como interface " wlan1 ". Muito obrigado! :)
kcdtv 20/09/16
2

Uma observação para quem procura um caso de uso semelhante:

Eu tive um problema com o driver de um dongle USB WiFi incapaz de autenticar devido a um nome de interface bastante longo no Debian (stretch).

Passos para resolução:

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

  2. alterado $env{ID_NET_NAME}para$env{ID_NET_SLOT}

Isso manteve a exclusividade do nome da interface, enquanto o reduzia.

Atualização: Isso não parece mais ser um problema no Debian 10.

Code Maverick
fonte
0

Eu tenho o ubuntu studio e tive o mesmo problema: um longo nome wlxxxxx E o wifi conectado, mas NÃO FUNCIONA!

O Ubuntu studio possui um kernel especial de baixa latência e eu suspeitava que o nome longo pudesse ser um problema.

Então, eu o renomeio para wlan0, inspirado neste tópico. Eu fiz o seguinte:

1) copiou o /lib/udev/rules.d/80-net-setup-link.rules para a pasta /etc/udev/rules.d/

2) editou o nome lá. No meu caso, havia uma linha: NAME == "", ENV {ID_NET_NAME}! = "", NAME = "$ env {ID_NET_NAME}"

Acabei de colocar "wlan0" em vez de "$ env {ID_NET_NAME}".

E agora o wifi funciona!

GR

mchrgr2000
fonte
0

Em vez de desativar completamente a renomeação, você pode substituí-la para dar às suas interfaces seus próprios nomes personalizados. Isso mantém a nomeação estática, mas fornece um nome que você pode lembrar e digitar.

O sistema de nomes existente ( /lib/udev/rules.d/80-net-setup-link.rules) renomeia uma interface apenas se ainda não recebeu um nome. Portanto, você pode adicionar suas próprias regras com uma prioridade mais alta, /etc/udev/rules.dque nomeie as interfaces à sua maneira, o que impede o sistema padrão de nomear essas interfaces.

Eu tenho o arquivo 70-wifi.rulesno meu sistema que nomeia as interfaces de acordo com a rede à qual estão 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"

É digitado pelo endereço MAC da interface e resulta em:

$ 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

Você pode renomeá-los como wlan0, wlan1 etc. A vantagem desse método é obter os nomes desejados e se beneficiar da nomeação estática da interface de rede. Portanto, as interfaces sempre terão o mesmo nome.

Majenko
fonte