atribuição de número wlan

atribuição de número wlan

Como ou onde o Linux determina a atribuição de um dispositivo de rede? Especificamente, wlan0ou wlan1para dispositivos USB sem fio.

Conectei um TP USB sem fio há um tempo e ele foi atribuído wlan0. Eu removi isso. Esta semana conectei um dispositivo sem fio USB da Edimax e ele apareceu como wlan1. Removi-o hoje para experimentar um segundo dispositivo sem fio USB Edimax (comprei dois) e agora aparece wlan2.

Conheço o suficiente sobre Unix/Linux para saber que isso está sendo configurado em algum lugar, e se eu excluir o arquivo de configuração não utilizado, posso fazer com que o Edimax mais recente se torne wlan0. Mas como/onde?

Responder1

Udevé o componente do sistema que determina os nomes dos dispositivos no Linux - principalmente nomes de arquivos em /dev, mas também nomes de interfaces de rede.

As versões do udev de 099 a 196 vêm com regras para registrar os nomes das interfaces de rede e usar sempre o mesmo número para o mesmo dispositivo. Estas regras estão desabilitadas por padrão a partir do udev 174, mas ainda assim podem ser habilitadas pela sua distribuição (por exemplo, o Ubuntu as mantém). Algumas distribuições fornecem conjuntos de regras diferentes.

O script que registra e reserva nomes de interface para uso futuro é o /lib/udev/rules.d/75-persistent-net-generator.rules. Ele escreve regras em /etc/udev/rules.d/70-persistent-net.rules. Portanto, remova as entradas existentes wlan0e wlan1do seu /etc/udev/rules.d/70-persistent-net.rulese mude wlan2para wlan0. Execute udevadm --trigger --attr-match=vendor='Edimax'(ou qualquer --attr-matchparâmetro que você encontrar que corresponda ao seu dispositivo) para reaplicar as regras ao dispositivo já conectado.

Responder2

Este problema foi resolvido a partir da systemdv197 com a introdução de nomenclatura persistente para dispositivos de rede.

De acordo com o freedesktopNomes de interface de rede previsíveispágina, o kernel simplesmente atribuiu nomes com base na ordem em que foram testados pelos drivers relevantes:

O esquema clássico de nomenclatura para interfaces de rede aplicado pelo kernel é simplesmente atribuir nomes começando com "eth0", "eth1", ... a todas as interfaces à medida que são testadas pelos drivers. Como a investigação do driver geralmente não é previsível para a tecnologia moderna, isso significa que, assim que múltiplas interfaces de rede estiverem disponíveis, a atribuição dos nomes "eth0", "eth1" e assim por diante geralmente não será mais corrigida e pode muito bem acontecer que " eth0" em uma inicialização acaba sendo "eth1" na próxima.

Se sua distribuição usa o systemd, você pode usar os nomes atribuídos de forma previsível, mas talvez difíceis de manejar wlp0s11, ou pode escrever uma udevregra para dar a eles um nome com o qual você se sinta mais confortável, como wifi1, com base no endereço mac ...

Incluir um arquivo /etc/udev/rules.d/chamado 10-network-device.rules:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="22:bb:cc:33:44:dd", NAME="wifi1"

informação relacionada