TX2 wlan0 can't associate with access point

Hello,

I’m having a ton of trouble getting my TX2 to reliably associated with wireless access points. It works maybe 5% of the time, and the few times it does work is only after a hard reboot (power off and back on).

I’ve tried it with two separate access points… both of which are using WPA2 personal. All of my other linux boxes are able to connect without any issues, and they have the same exact settings configured as the TX2 (e.g. /etc/network/interfaces, /etc/wpa_supplicant/wpa_supplicant.conf).

I keep getting the same error information from dmesg:

[  187.136511] 
               
               Dongle Host Driver, version 1.201.82 (r)
               Compiled from 
[  187.136521] wl_android_wifi_on in
[  187.136526] wifi_platform_set_power = 1
[  187.348469] vdd-1v8: voltage operation not allowed
[  187.348494] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[  187.368635] vdd-1v8: voltage operation not allowed
[  187.368657] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[  187.389452] vdd-1v8: voltage operation not allowed
[  187.389471] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[  187.391871] vdd-1v8: voltage operation not allowed
[  187.391886] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[  187.490970] vdd-1v8: voltage operation not allowed
[  187.490996] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[  187.491892] vdd-1v8: voltage operation not allowed
[  187.491907] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[  187.493439] vdd-1v8: voltage operation not allowed
[  187.493458] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[  187.493488] sdhci-tegra 3440000.sdhci: Tuning done, restoring the best tap value : 20
[  187.494011] F1 signature read @0x18000000=0x17214354
[  187.499853] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x2
[  187.500684] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[  187.590561] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[  187.632676] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[  187.632964] gpio tegra-gpio-aon wake69 for gpio=59(FF:3)
[  187.632986] gpio tegra-gpio-aon wake69 for gpio=59(FF:3)
[  187.632988] Enabling wake69
[  187.634278] wifi_platform_get_mac_addr
[  187.635949] Firmware up: op_mode=0x0005, MAC=00:04:4b:8c:e8:24
[  187.640318] clm path from default:/lib/firmware/brcm/bcmdhd.clm_blob
[  187.640333] Skipping the clm download. len:0 memblk:          (null)
[  187.642590] dhd_preinit_ioctls pspretend_threshold for HostAPD failed  -23
[  187.647484] Firmware version = wl0: May 17 2019 16:59:40 version 7.35.349.79 (r714996 CY) FWID 01-e527e2ad
[  187.649824] dhd_interworking_enable: failed to set WNM info, ret=-23
[  187.682609] dhd_ndo_add_ip: ndo ip addr add failed, ret = -23
[  187.682618] dhd_inet6_work_handler: Adding host ip for NDO failed -23
[  187.717057] CFGP2P-ERROR) wl_cfgp2p_add_p2p_disc_if : 
[  187.717060] P2P interface registered
[  187.726503] WLC_E_IF: NO_IF set, event Ignored
[  189.410239] [08-06 20:42:29.379] wl_cfg80211_connect: Connectting with 20:aa:4b:ab:50:7b channel (1) ssid "bernard-router", len (14)

[  189.726890]  wl_notify_connect_status : 
[  189.726894] connect failed event=0 e->status 1 e->reason 0 
[  189.741403]  wl_bss_connect_done : 
[  189.741406] Report connect result - connection failed

Any ideas what the problem could be? It’s odd that it is intermittent.

Here’s an excerpt from wpa_supplicant logs, showing that for some reason there is a PSK mismatch. I’m 100% certain that the key is correct, as sometimes the connection works and sometimes it doesnt.

nl80211: Drv Event 48 (NL80211_CMD_DISCONNECT) received for wlan0
nl80211: Disconnect event
wlan0: Event DEAUTH (12) received
wlan0: Deauthentication notification
wlan0:  * reason 15
Deauthentication frame IE(s) - hexdump(len=0): [NULL]
wlan0: CTRL-EVENT-DISCONNECTED bssid=20:aa:4b:ab:50:7b reason=15
wlan0: WPA: 4-Way Handshake failed - pre-shared key may be incorrect
wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="bernard-router" auth_failures=1 duration=10 reason=WRONG_KEY

I looked at probably over 100 separate forum posts related to this error/situation, and pretty much every single one points to a bug in the associated wifi device driver.

Bump… any thoughts or similar experiences?

Could we confirm this issue is from WPA2 first? Is TX2 wifi able to connect if the AP is opened?

Sorry for the delayed response… yes, the TX2 is able to connect without issue if the AP is open.

->reason=WRONG_KEY

We cannot tell what is the root cause. I think it depends on the authentication protocol your AP is using.
There are lots of thread over ubuntu forum for such problem.

Are you guys able to connect a TX2 running Jetpack 4.2.1 to an AP secured with WPA2 using wpa_supplicant? If you guys are able to do it, then there’s gotta be something wrong with my setup somewhere. If you guys experience the same issue, it’s likely a driver or kernel-related problem with 4.2.1.

I’ve tried with two different routers (Verizon AC1750 and Linksys), both using WPA2. Raspberry Pi works just fine with wpa_supplicant… I even used the same wpa_supplicant.conf file on both the Pi and the TX2.

I’ve read many many posts on ubuntu forums, stack overflow, etc about this error… and as I’ve mentioned, the majority of them were “solved” by discovering a driver issue with the wireless interface.

Hi pcdangio,

Yes, my test is based on a WPA2 AP and it is working. Are you using the network manager to do the wifi connection?

No, I’m not using network manager for the connection. I’ve disabled the NetworkManager service entirely, and I’m defining the interface in /etc/network/interfaces, and providing a wpa_supplicant config under /etc/wpa_supplicant/wpa_supplicant.conf. Here are the contents of my files:

/etc/network/interfaces

auto lo
iface lo inet loopback
dns-nameservers 8.8.8.8 8.8.4.4

auto wlan0
iface wlan0 inet static
address 192.168.1.51
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/run/wpa_supplicant
update_config=1
country=US

network={
        ssid="my_router_ssid"
        psk="my_wpa2_ascii_password"
}

This configuration works with my Raspberry Pi, but not my TX2.

I have exactly the same problem. The TX2 logs look exactly like yours. We can connect only when the board is really near to the access point (even if the signal quality reported by the driver/nmcli looks always good).

When we are further than 4 meters from the AP pings stop working, the connection goes down (with exactly the same error messages you are seeing) and it is impossible to reconnect without killing the supplicant or rebooting (in some cases). I suspect a driver problem when the signal is not “full”. Other devices (USB keys, laptops, phones) can connect, in the same environment ut to at least 20 meters away.
I discovered this behavior on the field because in lab the AP would always be close to the board.

Did you solve your problem?