D1哪吒开发板wifi连接出错,这是什么情况?

错误信息

root@TinaLinux:/# wifi_connect_ap_test test test
==================================
connect wpa_supplicant failed,please check wifi driver!
wifi on failed
root@TinaLinux:/# wifi_connect_ap_test ssid_ubuntu 123456785
==================================
Connecting to the network(ssid_ubuntu)......
[   49.066175] [STA_WRN] Freq 2412 (wsm ch: 1) prev: 3.
[   49.072027] wlan0: authenticate with e4:26:8b:89:a9:f8 (try 1)
[   49.083424] [STA_WRN] [HT40][xradio_join_work][bss_ht_info]:
[   49.083424] [primary_chan  :0x00000001]
[   49.083424] [ht_param      :0x00000000]
[   49.083424] [operation_mode:0x00000017]
[   49.083424] [stbc_param    :0x00000000]
[   49.083424] [basic_set[0]  :0x00000000]
[   49.111324] [STA_WRN] [HT40][xradio_join_work][PhyModeCfg:0x0007]
[   49.111324] [ModemFlags    :0x00000007]
[   49.111324] [ChWidthCfg    :0x00000000]
[   49.111324] [PriChCfg      :0x00000000]
[   49.111324] [BandCfg       :0x00000000]
[   49.111324] [STBC_Enable   :0x00000000]
[   49.111324] [PreambleCfg   :0x00000000]
[   49.111324] [SGI_Enable    :0x00000000]
[   49.111324] GF_Enable      :0x00000000]
[   49.173244] wlan0: authenticated
[   49.177518] wlan0: associate with e4:26:8b:89:a9:f8 (try 1)
[   49.192728] wlan0: RX AssocResp from e4:26:8b:89:a9:f8 (capab=0x1431 status=0 aid=78)
[   49.202004] wlan0: associated
[   49.212504] [AP_WRN] [STA] ASSOC HTCAP 11N 58
[   49.217367] [AP_WRN] [HT40][xradio_bss_info_changed][ht_prot:0x0000000e][HtProtMode:0x0003][Green:0x0004]
[   49.217843] [AP_WRN] [HT40][xradio_bss_info_changed][PhyModeCfg:0x5007]
[   49.217843] [ModemFlags    :0x00000007]
[   49.217843] [ChWidthCfg    :0x00000000]
[   49.217843] [PriChCfg      :0x00000000]
[   49.217843] [BandCfg       :0x00000000]
[   49.217843] [STBC_Enable   :0x00000000]
[   49.217843] [PreambleCfg   :0x00000001]
[   49.217843] [SGI_Enable    :0x00000001]
[   49.217843] [GF_Enable     :0x00000000]
[   49.347203] [TXRX_WRN] [RX] IF=0, No key found.
[   49.652668] [TXRX_WRN] [RX] IF=0, No key found.
[   49.859090] [TXRX_WRN] [RX] IF=0, No key found.
[   51.700693] [TXRX_WRN] [RX] IF=0, No key found.
[   51.906338] [TXRX_WRN] [RX] IF=0, No key found.
[   53.646240] [TXRX_WRN] [RX] IF=0, No key found.
[   53.851963] [TXRX_WRN] [RX] IF=0, No key found.
[   55.694229] [TXRX_WRN] [RX] IF=0, No key found.
[   57.641342] [TXRX_WRN] [RX] IF=0, No key found.
[   59.288146] wlan0: deauthenticating from e4:26:8b:89:a9:f8 by local choice (reason=3)
[   59.297210] [WSM_WRN] Issue unjoin command(TX).
[   59.303604] [WSM_WRN] STA mode, send_deauth_to_self
[   59.309107] [TXRX_WRN] Issue unjoin command(TX) by self.

spi nand 自带的固件是这样的

整理一下Wi-Fi的启动流程:
1.系统启动通过sunxi-rf驱动读取board.dts配置,解析供电,sdio,引脚,时钟等配置。完成上电动作。
2.驱动加载时完成扫卡,下载firmware,add wlan0 interface。
3.系统的自启动脚本在etc/init.d/wpa_supplicant中启动服务,启wlan0。
4.利用wpa_cli/wifimanager进行应用的操作。

建议排查思路:
1.系统起来执行lsmod 查看xradio_mac/xradio_core/xradio_wlan(也有可能是单ko的形式xr829)驱动是否加载成功。
顺便提一下驱动加载失败最常见的错误:

1.供电不匹配。
2.扫卡时失败,sdio配置错误。
3.下载firmware失败。(注意路径:默认是/lib/firmware)

2.执行ps | grep wpa_supplicant查看服务是否启动。
也可以直接执行

./etc/init.d/wpa_supplicant start   //再次手动启动

服务启动失败的常见原因:

1.前面驱动加载已经失败了,导致没有wlan0 interface.
2.配置文件不存在比如:wpa_supplicant.conf。默认是在/etc/wifi、目录下
3.文件存在,但是文件系统只读,导致无法对配置文件写操作。

可以手动执行wpa_supplicant命令起服务就可以看到提示如下:

Successfully initialized wpa_supplicant
[  796.252780] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
mkdir[ctrl_interface=/etc/wifi/sockets]: **Read-only file system**
Failed to initialize control interface '/etc/wifi/sockets'.
You may have another wpa_supplicant process already running or the file was
left by an unclean termination of wpa_supplicant in which case you will need
to manually remove this file before starting wpa_supplicant again.

nl80211: deinit ifname=wlan0 disabled_11b_rates=0

解决办法:
1.直接修改文件系统,换成可读写的,例如ext4.
2.可以自己临时创建配置文件到/tmp目录。

上一篇:Codeforces Round #725 (Div. 3) G. Gift Set (神奇的二分)


下一篇:2021/09/05 bootstrap 日期时间戳 datetimepicker