AP-STA WiFi 模块上同时出现 AP 和工作站模式问题

AP-STA WiFi 模块上同时出现 AP 和工作站模式问题

我有一块运行 Linux 的 iMX8MP 板。该板配备了具有 AP-STA 功能的 Wifi 模块。我希望这个系统在启动时启动一个接入点,并在提供凭据后连接到外部 wifi,而不会杀死 AP。 AP 使用 hostapd 启动:

#!/bin/bash
modprobe brcmfmac
iw dev wlan0 interface add wlan1 type __ap
ifconfig wlan1 192.168.3.1 up 
udhcpd /etc/udhcpd.conf
hostapd /etc/myhostapd.conf 

与 wifi 的连接是使用 wpa_supplicant 完成的(NetworkManager 不可用):

ifconfig wlan0 up
wpa_supplicant -c /home/root/wpa.conf -i wlan0 -B # in questo momento il cliento
udhcpc -i wlan0 -b

现在,当开发板连接到 WiFi 时,之前连接到 AP 的每个客户端都会保持连接,并且仍然能够 ping 开发板。同时,该板可以 ping 客户端和互联网。但是,新客户端无法连接到 AP。唯一的方法是重新启动hostapd。

我尝试使用 Wireshark 来调查这个问题,在 AP SSID 上使用过滤器。当板运行 hostapd 时(但在调用 wpa_supplicant 之前),会定期捕获以下数据包:

No. Time Source Destination Protocol Length Info
32410   709.786863608   LsResear_6b:3f:17   Broadcast   802.11  204 Beacon frame, SN=150, FN=0, Flags=........, BI=100, SSID=MY-AP-SSID

32268   707.492592614   LsResear_6b:3f:17   72:23:3e:ee:74:61   802.11  198 Probe Response, SN=123, FN=0, Flags=....R..., BI=100, SSID=MY-AP-SSID

32098   705.310088818   LsResear_6b:3f:17   IntelCor_b5:58:ec   802.11  198 Probe Response, SN=92, FN=0, Flags=....R..., BI=100, SSID=MY-AP-SSID

32002   704.240712766   LsResear_6b:3f:17   AlpsElec_31:89:ab   802.11  198 Probe Response, SN=73, FN=0, Flags=....R..., BI=100, SSID=MY-AP-SSID

当wpa_supplicant启动时,会捕获一次以下数据包,然后不再捕获任何数据包

801 15.307033347    Azurewav_1c:29:49   Broadcast   802.11  244 Probe Request, SN=3025, FN=0, Flags=........, SSID=MY-AP-SSID

此时没有新客户端可以连接到 AP,但已连接的客户端没有问题。如果我重新启动 AP,新客户端就可以连接。在重新启动期间,上面报告的一些周期性数据包会被捕获几秒钟,但随后就会停止。如果我也杀死 wpa_supplicant,周期性数据包就会回来。

我该如何解决这个问题?我可以在不重新启动 AP 的情况下连接到 wifi 吗?

相关内容