Zbudowałem wbudowanego Linuksa za pomocą Buildroot i mam problemy z utrzymaniem połączenia z moim AP. Nie można uzyskać adresu IP więcej niż raz.
Korzystam z wpa_supplicant, aby połączyć się z moim AP za pomocą WPA2-PSK. Działa z innym AP, takim jak mój smartfon w trybie AP.
Kiedy używam iwconfig wlan0
, widzę, że jestem powiązany z moim 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
Ale nie mogę uzyskać adresu IP ifup wlan0
udhcpc (v1.22.1) started
Sending discover...
Sending discover...
Sending discover...
No lease, failing
Powinienem powiedzieć, że mogę uzyskać adres IP tylko raz. Jeśli zrestartuję się, nie będzie to już możliwe.
Udało mi się zainstalować dhclient
zamiast korzystać z domyślnego klienta DHCP Busybox, ale nic się nie dzieje (pozostaję zablokowany na czas nieokreślony)
dhclient wlan0
Według moich komunikatów jądra wydaje się, że nie jestem ciągle związany
[ 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)
...
Dzienniki mojego 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
Dzienniki, kiedy to działa (tylko raz)
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
Jak to rozwiązać?
Odpowiedzi:
Zmieniłem opcję „Automatyczny kanał” na stały kanał, a opcję „Szerokość kanału” na 20 MHz w moim AP i to rozwiązało mój problem.
źródło