Я построил встроенный Linux с помощью Buildroot, и у меня возникли некоторые проблемы с тем, чтобы оставаться на связи с моей точкой доступа. Невозможно получить IP-адрес более одного раза.
Я использую wpa_supplicant для подключения к своей точке доступа с использованием WPA2-PSK. Он работает с другими точками доступа, такими как мой смартфон, в режиме точки доступа.
Когда я использую, 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
Но я не могу получить IP-адрес с ifup wlan0
udhcpc (v1.22.1) started
Sending discover...
Sending discover...
Sending discover...
No lease, failing
Я должен сказать, что я могу получить IP-адрес только один раз. Если я перезагружаюсь, это больше невозможно.
Мне удалось установить dhclient
вместо использования DHCP-клиента по умолчанию Busybox, но ничего не происходит (я остаюсь заблокированным на неопределенный срок)
dhclient wlan0
Судя по моим сообщениям в ядре, я не постоянно связан
[ 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)
...
Логи моего 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
Логи когда работает (только один раз)
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
Как это решить?
Ответы:
Я изменил опцию «Автоматический канал» на фиксированный канал и опцию «Ширина канала» на 20 МГц в моей точке доступа, и это решило мою проблему.
источник