树莓派3运行wpa_supplicant出现reason=0 locally_generated=1问题求解
树莓派3 wpa_supplicant WiFi反复断开故障排查方案
问题描述
我在树莓派3开发板上运行wpa_supplicant,通过wpa_cli提供凭据后,设备尝试连接AP但出现反复断开的错误,具体命令及日志如下:
pi@adityapi:~/Desktop/WifiConnectApp/Rust/latest $ sudo wpa_supplicant -i wlan0 -Dnl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf Successfully initialized wpa_supplicant wlan0: Trying to associate with 58:6d:8f:3d:27:f4 (SSID='STAP-0' freq=2437 MHz) wlan0: Associated with 58:6d:8f:3d:27:f4 wlan0: WPA: Key negotiation completed with 58:6d:8f:3d:27:f4 [PTK=CCMP GTK=CCMP] wlan0: CTRL-EVENT-CONNECTED - Connection to 58:6d:8f:3d:27:f4 completed [id=0 id_str=] wlan0: CTRL-EVENT-DISCONNECTED bssid=58:6d:8f:3d:27:f4 reason=0 locally_generated=1 wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=IN wlan0: Trying to associate with 58:6d:8f:3d:27:f4 (SSID='STAP-0' freq=2437 MHz) wlan0: Associated with 58:6d:8f:3d:27:f4 wlan0: CTRL-EVENT-DISCONNECTED bssid=58:6d:8f:3d:27:f4 reason=0 locally_generated=1 wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=IN wlan0: Trying to associate with 58:6d:8f:3d:27:f4 (SSID='STAP-0' freq=2437 MHz) wlan0: Associated with 58:6d:8f:3d:27:f4 wlan0: CTRL-EVENT-DISCONNECTED bssid=58:6d:8f:3d:27:f4 reason=0 locally_generated=1 wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=IN wlan0: Trying to associate with 58:6d:8f:3d:27:f4 (SSID='STAP-0' freq=2437 MHz) wlan0: Associated with 58:6d:8f:3d:27:f4 wlan0: CTRL-EVENT-DISCONNECTED bssid=58:6d:8f:3d:27:f4 reason=0 locally_generated=1 wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="STAP-0" auth_failures=1 duration=10 reason=CONN_FAILED wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=IN
已尝试禁用Network Manager,但问题仍未解决,请问该如何处理此故障?
故障排查与解决方向
从日志来看,设备能完成AP关联和密钥协商,但很快触发本地生成的断开事件(reason=0 locally_generated=1),同时伴随反复的区域切换,最后因连接失败暂时禁用SSID。结合你已禁用Network Manager的情况,推荐以下排查步骤:
验证wpa_supplicant配置文件的准确性
这是最常见的问题点,确保WiFi密码或PSK哈希正确:- 如果你使用明文密码,配置文件中应该用
password字段;如果是哈希值,用psk字段,不要混淆。 - 可以用
wpa_passphrase命令自动生成正确的配置段,替换到/etc/wpa_supplicant/wpa_supplicant.conf:wpa_passphrase "STAP-0" "你的WiFi密码"
生成的内容类似:
network={ ssid="STAP-0" #psk="你的WiFi密码" psk=abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 }- 如果你使用明文密码,配置文件中应该用
修复区域设置的反复切换问题
日志中频繁出现REGDOM-CHANGE,可能导致连接不稳定:- 编辑
/etc/default/crda文件,设置固定区域:
将sudo nano /etc/default/crdaREGDOMAIN改为IN,保存后重启系统。 - 启动wpa_supplicant时可以指定区域参数,避免自动切换:
sudo wpa_supplicant -i wlan0 -Dnl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf -C /var/run/wpa_supplicant --country=IN
- 编辑
更新系统与WiFi驱动
树莓派3的WiFi模块可能存在旧驱动兼容性问题,尝试更新系统和固件:sudo apt update && sudo apt full-upgrade -y sudo rpi-update更新完成后重启设备,再测试连接。
排查AP端的配置限制
连接后被断开也可能是AP端的设置导致:- 检查AP是否开启了MAC地址过滤,如果开启,需要将树莓派的wlan0 MAC地址加入允许列表。
- 确认AP的WiFi信道是否在印度允许的2.4GHz范围内(1-13信道),避免使用受限信道。
- 尝试将AP的WiFi模式改为兼容模式(比如802.11b/g/n混合),不要仅设置为802.11n或ac。
强制指定连接参数提升稳定性
在wpa_supplicant.conf中添加更具体的连接参数,避免协商异常:network={ ssid="STAP-0" psk="你的PSK哈希值" proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP priority=1 }
内容的提问来源于stack exchange,提问作者Vinay KS
相关产品推荐
相关产品推荐

