明明已建立WLAN连接,为何`iw`返回‘Not connected.’?
问题:iw dev wlan0 link 返回"Not connected."但实际网络正常
我在搭载ASUS USB-N10 NANO B1无线网卡和busybox的嵌入式平台上运行自定义Yocto构建系统。已通过wpa_supplicant成功连接WLAN网络,ping、wget等命令可正常执行,但执行/usr/sbin/iw dev wlan0 link 2>/dev/null读取SSID或信号强度时,返回“Not connected.”。系统仅有一个无线接口wlan0,其ifconfig输出如下:
wlan0 Link encap:Ethernet HWaddr 7C:10:C9:73:D9:ED
inet addr:192.168.xxx.xxx Bcast:192.168.xxx.xxx Mask:255.255.255.0
inet6 addr: fe80::7e10:c9ff:xxxx:xxx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3445 errors:0 dropped:12 overruns:0 frame:0
TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:470606 (459.5 KiB) TX bytes:17278 (16.8 KiB)
排查与解决方法
- 检查iw与内核驱动兼容性:ASUS USB-N10 NANO B1用的是rtl8188cus芯片组,旧版iw可能对该芯片的nl80211支持不完善。确认Yocto构建里是否启用了完整的nl80211支持,可升级iw包版本,或检查内核配置是否开启
CONFIG_CFG80211、CONFIG_NL80211等选项。 - 验证wpa_supplicant驱动类型:确保wpa_supplicant用的是nl80211驱动而非wext。检查启动参数是否指定
-Dnl80211,配置文件wpa_supplicant.conf里要加driver=nl80211。 - 检查网卡固件加载状态:执行
dmesg | grep firmware查看rtl8188cus固件是否正常加载。Yocto构建需包含对应固件包(比如linux-firmware-rtl8188cus),缺失的话要添加到构建配方。 - 用替代命令获取连接信息:如果iw工具无法正常工作,可通过wpa_supplicant控制接口获取:
该命令会输出SSID、信号强度(signal)等详细连接状态。wpa_cli -i wlan0 status - 确认iw工具权限与路径:确保
/usr/sbin/iw有可执行权限(执行chmod +x /usr/sbin/iw),且当前用户有权限运行(可尝试用root用户执行)。
内容的提问来源于stack exchange,提问作者Molitoris
相关产品推荐
相关产品推荐

