Como corrigir "desautenticação por escolha local"?

10

Criei um Linux incorporado usando o Buildroot e tenho alguns problemas para permanecer conectado ao meu AP. Não é possível obter um endereço IP mais de uma vez.

Eu uso o wpa_supplicant para conectar-me ao meu AP usando o WPA2-PSK. Funciona com outro ponto de acesso, como meu smartphone, no modo ponto de acesso.

Quando uso iwconfig wlan0, vejo que estou associado ao meu AP

wlan0     IEEE 802.11bgn  ESSID:"ZyXEL_B3B5"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: 90:EF:68:D3:B3:B5   
          Bit Rate=58.5 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=53/70  Signal level=-57 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1   Missed beacon:0

Mas não consigo obter um endereço IP com ifup wlan0

udhcpc (v1.22.1) started
Sending discover...
Sending discover...
Sending discover...
No lease, failing

Devo dizer que sou capaz de obter um endereço IP apenas uma vez. Se eu reiniciar, isso não será mais possível.

Consegui instalar em dhclientvez de usar o cliente DHCP padrão do Busybox, mas nada acontece (permaneço bloqueado indefinidamente)

dhclient wlan0

De acordo com minhas mensagens do kernel, parece que não estou continuamente associado

[  355.459738] wlan0: authenticate with 90:ef:68:d3:b3:b5 (try 1)
[  355.461366] wlan0: authenticated
[  355.461416] wlan0: associate with 90:ef:68:d3:b3:b5 (try 1)
[  355.469353] wlan0: RX AssocResp from 90:ef:68:d3:b3:b5 (capab=0x431 status=0 aid=1)
[  355.469364] wlan0: associated
[  365.547863] wlan0: deauthenticating from 90:ef:68:d3:b3:b5 by local choice (reason=3)
[  365.672765] cfg80211: Calling CRDA to update world regulatory domain
[  367.169736] wlan0: authenticate with 90:ef:68:d3:b3:b5 (try 1)
[  367.171421] wlan0: authenticated
[  367.194859] wlan0: associate with 90:ef:68:d3:b3:b5 (try 1)
[  367.198561] wlan0: RX AssocResp from 90:ef:68:d3:b3:b5 (capab=0x431 status=0 aid=1)
[  367.198584] wlan0: associated
[  377.277864] wlan0: deauthenticating from 90:ef:68:d3:b3:b5 by local choice (reason=3)
[  377.412822] cfg80211: Calling CRDA to update world regulatory domain
[  378.899738] wlan0: authenticate with 90:ef:68:d3:b3:b5 (try 1)
[  378.901668] wlan0: authenticated
[  378.924732] wlan0: associate with 90:ef:68:d3:b3:b5 (try 1)
[  378.928437] wlan0: RX AssocResp from 90:ef:68:d3:b3:b5 (capab=0x431 status=0 aid=1)
[  378.928461] wlan0: associated
[  389.008120] wlan0: deauthenticating from 90:ef:68:d3:b3:b5 by local choice (reason=3)
[  389.182888] cfg80211: Calling CRDA to update world regulatory domain
[  390.689735] wlan0: authenticate with 90:ef:68:d3:b3:b5 (try 1)
[  390.691415] wlan0: authenticated
[  390.714734] wlan0: associate with 90:ef:68:d3:b3:b5 (try 1)
[  390.720847] wlan0: RX AssocResp from 90:ef:68:d3:b3:b5 (capab=0x431 status=0 aid=1)
[  390.720870] wlan0: associated
[  400.811246] wlan0: deauthenticating from 90:ef:68:d3:b3:b5 by local choice (reason=3)
...

Os logs do meu AP

338     Nov 16 15:50:53 udhcpd[2404]: Received DISCOVER
339     Nov 16 15:50:53 udhcpd[2404]: unicasting packet to client yiaddr
340     Nov 16 15:50:56 udhcpd[2404]: Received DISCOVER
341     Nov 16 15:50:56 udhcpd[2404]: unicasting packet to client yiaddr
342     Nov 16 15:50:59 udhcpd[2404]: Received DISCOVER
343     Nov 16 15:50:59 udhcpd[2404]: unicasting packet to client yiaddr

Os logs quando ele funciona (apenas uma vez)

325     Nov 16 15:48:37 udhcpd[2404]: Received DISCOVER
326     Nov 16 15:48:37 udhcpd[2404]: unicasting packet to client yiaddr
327     Nov 16 15:48:37 udhcpd[2404]: Received REQUEST
328     Nov 16 15:48:37 udhcpd[2404]: lease = 11854360
329     Nov 16 15:48:37 udhcpd[2404]: requested = b2a8eb7f
330     Nov 16 15:48:37 udhcpd[2404]: server_id = c0a80101
331     Nov 16 15:48:37 udhcpd[2404]: unicasting packet to client yiaddr

Como resolver isso?

didil
fonte
você já tentou matar o wpa_supplicant manualmente? Você já tentou um kernel diferente? Eu também definiria o país no arquivo de configuração.
Rui F Ribeiro
sim, eu tentei matar o wpa_supplicant, mas não tenho outro gerenciador de wifi, por isso não faz nada (exceto desassociado do AP). Não tenho um kernel diferente para testar e funciona com outro AP.
Didil
Outros dispositivos, como smartphones, se conectam ao seu AP com êxito? Você verificou logs / dmesg no próprio AP?
Sim, meu smartphone (Android) e meu notebook (Ubuntu 15.10) se conectam ao meu AP a qualquer momento (mesmo após uma reinicialização). os logs no meu AP ficam vazios.
Didil
Eu adicionei os logs do meu AP na minha pergunta.
didil

Respostas:

6

Alterei a opção "Canal automático" para um canal fixo e a opção "Largura do canal" para 20 MHz no meu AP e resolveu o meu problema.

didil
fonte