如何解决“通过本地选择取消身份验证”?

did*_*dil 10 wifi dhcp busybox buildroot wlan

我使用Buildroot构建了一个嵌入式 Linux ,但在与 AP 保持连接时遇到了一些麻烦。无法多次获取 IP 地址。

我使用 wpa_supplicant 使用 WPA2-PSK 连接到我的 AP。它可以在 AP 模式下与其他 AP 一起使用,例如我的智能手机。

当我使用时,iwconfig wlan0我看到我与我的 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
Run Code Online (Sandbox Code Playgroud)

但我无法获得 IP 地址 ifup wlan0

udhcpc (v1.22.1) started
Sending discover...
Sending discover...
Sending discover...
No lease, failing
Run Code Online (Sandbox Code Playgroud)

我应该说我只能获得一次 IP 地址。如果我重新启动,这将不再可能。

我设法安装dhclient而不是使用 Busybox 的默认 DHCP 客户端,但没有任何反应(我无限期地被阻止)

dhclient wlan0
Run Code Online (Sandbox Code Playgroud)

根据我的内核消息,我似乎没有持续关联

[  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)
...
Run Code Online (Sandbox Code Playgroud)

我的 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
Run Code Online (Sandbox Code Playgroud)

运行时的日志(仅一次)

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
Run Code Online (Sandbox Code Playgroud)

如何解决?

did*_*dil 6

我将 AP 中的“自动通道”选项更改为固定通道,将“通道宽度”选项更改为 20 MHz,这解决了我的问题。