Wpa-suplicante sobrescrevendo o iwconfig

0

Wpa-supplicant não está limpando suas configurações quando eu desconectar e está substituindo iwconfig na minha próxima conexão. Essas configurações estão persistindo mesmo durante a reinicialização - a única maneira de voltar a ficar online é tirar o wpa-suplicante do pipeline.

Eu me desconecto usando um script que inclui tudo que eu conseguia pensar:

sudo dhcpcd --release "$INTERFACE"
sudo iwconfig "$INTERFACE" essid off
sudo iwconfig "$INTERFACE" ap off
sudo ifconfig "$INTERFACE" down

Isso funcionou bem até que eu tentei integrar wpa-supplicant nele.

Meu script de "conexão" inclui essas linhas, que achei que limpariam todas as configurações restantes:

sudo killall wpa_supplicant 2>/dev/null
sudo rm "/var/run/wpa_supplicant/$INTERFACE" 2>/dev/null
sudo killall dhcpcd 2>/dev/null
sudo rm "/var/lib/dhcpcd/$INTERFACE" 2>/dev/null

Como faço para "redefinir" wpa-supplicant ?

[editar]

Eu tentei

wpa_cli -i "$INTERFACE" reconfigure

mas isso me deu

Failed to connect to non-global ctrl_ifname: wlp2s3  error: No such file or directory
    
por operalala 07.02.2014 / 01:00

1 resposta

1

Parece que wpa-supplicant não está, de fato, mantendo suas configurações, mas está OVERRIDING iwconfig e o SSID que eu passo para ele.

Quando eu passar um SSID não wpa para iwconfig , dhcpcd por padrão invoca wpa-supplicant para todas as conexões WiFi, então wpa-s desce a lista ITS das redes wpa que eu configurei para ele e decide que Eu realmente não quero a rede aberta que pedi.

Colocar uma configuração de rede "curinga" no arquivo de configuração do wpa-s faz com que o wpa-s simplesmente escolha a rede aberta mais próxima, não importa qual SSID eu passe para ela.

Remover o "caractere curinga" faz com que wpa-s cometa erros na primeira rede wpa (fora do intervalo) da lista, ignorando totalmente o SSID.

Isso parece ser uma violação da regra do Linux "fazer uma coisa e fazê-lo bem" - wpa-s parece estar rastejando para o gerenciamento de rede e fazendo o pior trabalho possível imaginável!

Eu consertei isso adicionando nohook wpa_supplicant ao meu arquivo dhcpcd config e alterando meu script "connect" para invocar somente o wpa-suplicante para redes wpa.

sudo iwconfig "$INTERFACE" essid "$SSID" key "$PSK" 2>/dev/null
WPA=$(printf "$TABLE" | grep "$SSID" | cut -s -d $'\t' -f 2- | grep "WPA")
    if [[ $WPA ]]; then
        sudo wpa_supplicant -B -D wext -i "$INTERFACE" -c "$WPA_SUPPLICANT_CONFIGURATION_FILE"'
    fi
sudo dhcpcd "$INTERFACE"
    
por 10.02.2014 / 03:52