11

I built an embedded Linux using Buildroot and I have some trouble to stay connected to my AP. Cannot get an IP address more than once.

I use wpa_supplicant to connect to my AP using WPA2-PSK. It works with other AP such as my smartphone in AP mode.

When I use iwconfig wlan0 I see that I'm associated with my 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

But I cannot get an IP address with ifup wlan0

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

I should say that I'm able to get an IP address only once. If I reboot this is not possible anymore.

I managed to install dhclient instead of using the default DHCP client of Busybox but nothing happens (I stay blocked indefinitely)

dhclient wlan0

According to my kernel messages, it seems that I'm not continuously associated

[  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)
...

The logs of my 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

The logs when it works (only once)

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

How to solve it?

5
  • have you tried killing the wpa_supplicant by hand? Have you tried a different kernel? I would also define the country in the configuration file. Nov 16, 2015 at 10:46
  • yes I've tried to kill wpa_supplicant but I don't have another wifi manager so it does nothing (except deassociated from the AP). I haven't a different kernel to test and it works with other AP.
    – didil
    Nov 16, 2015 at 11:21
  • Are other devices such as smartphones do connect to your AP successfully? Did you check logs/dmesg on AP itself?
    – user140866
    Nov 16, 2015 at 13:12
  • Yes, both my smartphone (Android) and my notebook (Ubuntu 15.10) do connect to my AP any time (even after a reboot). logs on my AP stay empty.
    – didil
    Nov 16, 2015 at 13:24
  • I added the logs of my AP in my question.
    – didil
    Nov 16, 2015 at 14:52

1 Answer 1

6

I changed the "Auto channel" option to a fixed channel and the "Channel width" option to 20 MHz in my AP and it solved my problem.

1
  • which file? I need to do the same
    – Darshan
    Dec 24, 2022 at 3:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .