我在嵌入式 Linux 发行版(用 yocto 编译)上的 wlan0 接口遇到一些问题。问题是当我使用命令时:
iwconfig
wlan0 结果没有无线扩展。但如果我写命令:
iw wlan0 scan
它工作正常!如果我使用connman
连接管理器而不是iwconfig
.我尝试使用以下命令启动接口:
ip link set wlan0 up
或者
ifconfig wlan0 up
/sys/class/net/wlan0/operstate
但是当我检查结果中文件的状态时始终是“关闭”。我怎么解决这个问题?
我希望它iwconfig
能够识别 wlan0 接口。
答案1
听起来您的内核或无线接口的驱动程序将仅支持cfg80211
该工具使用的较新的配置接口iw
,而wireless-extensions
不是iwconfig
.
您的内核配置是否启用了该CONFIG_WIRELESS_EXT
选项,和/或该CONFIG_CFG80211_WEXT
选项?后一个选项将启用一个兼容性层,该层将允许旧的用户空间程序iwconfig
访问较新类型的驱动程序的配置。
请注意,当您使用ip link set wlan0 up
或ifconfig wlan0 up
将设置行政国家接口的状态,或者基本上是接口的状态想告诉/sys/class/net/wlan0/operstate
你关于运行状态接口的状态,即接口处于什么状态实际上设法实现了。
对于有线接口,操作状态更改基本上up
反映了接口的链路 LED 的状态:当接口检测到来自另一端的链路脉冲(并成功协商连接速度和其他参数(如果适用))时,链路LED 将亮起,并且操作状态将变为up
。
无线接口没有可插入的电缆,因此等效任务是与无线网络关联(并完成任何必要的身份验证,如果适用)。因此,您应该首先使用具有 ESSID 和任何必要的网络密码或身份验证密钥的网络配置无线接口。如果无线接口超出无线 AP 的范围或身份验证设置不正确,则无线接口将无法实际传输数据包 - 这就是操作状态“关闭”的含义。