gle*_*ezo 2 linux wireless-networking
昨天,我对我的 Linux 系统进行了重大更新。iwconfig命令过去显示802.11[abgn]信息,但现在只显示802.11。
有什么方法可以让 iwconfig 显示卡的可用频段吗?
如果没有,有什么方法可以通过其他命令检索该信息吗?
这是故意从Linux 内核 v4.7 中的“WEXT 仿真”代码中删除的。
\niwconfig使用ioctl(SIOCGIWNAME)从内核获取这段文本,ioctl(SIOCGIWNAME) 是来自 WEXT(无线扩展)API 的函数。然而:
\nSIOCGIWNAME 返回的文本限制为 16 个字节,并且IEEE 802.11abgn已经达到该限制 \xe2\x80\x93 没有空间用于指示ac,更不用说更新的修订了。
WEXT 整体上实际上还停留在 802.11n 时代。它的总体设计实际上早于802.11 Wi-Fi ( iwconfig仍然带有 1988 年 WaveLAN 的子命令),并且它在处理多频段 Wi-Fi 适配器、通道宽度等现代功能时遇到了麻烦。
\n大多数现代无线驱动程序都是基于mac80211/cfg80211架构构建的,并直接提供 nl80211 API,它提供了更多功能,并且不受 WEXT 存在的各种问题的影响。内核仍然使用 mac/cfg80211 中的信息来模拟现有的 WEXT 操作,但没有兴趣也没有充分的理由进一步扩展它。(mac80211 架构由 Devicescape 于 2006 年推出;请参阅这篇 LWN 文章。)
\n这也意味着整个wireless_tools包由于依赖 WEXT API 而被认为是过时的(当然,除非您使用 WEXT 驱动程序)。取而代之的是使用iw来管理具有现代 mac/cfg80211 驱动程序的 Wi-Fi 设备:
\niw phy(短缺iw phy phy0 info)将显示您的物理卡的功能。不幸的是,它没有直接说明“802.11b/g/n”,但您仍然可以根据频段、HT/VHT 支持等来推断。
iw dev(简称iw dev wlan0 info)会显示软件界面当前的配置,例如频率。从技术上讲,使用相同的 phy 可以拥有多个 wlan# 接口。
iw [dev] wlan0 link将更详细地显示当前链接状态。
iw [dev] wlan0 station dump与上面类似。
请注意,正如提交消息所述,HT 和 VHT 等功能不再被视为修订(小写字母表示) \xe2\x80\x93 它们已合并到 802.11 的更高版本中,例如“802.11-2012 ”完全包含\'n\',“802.11-2016”包含\'ac\'。
\n另请注意,模拟更改不会影响 WEXT 本机驱动程序,它们有自己的 ioctl 处理程序。因此,如果您使用的是非常旧的设备 \xe2\x80\x93 或 Realtek \xe2\x80\x93 那么您仍然会得到类似IEEE 802.11-DS或IEEE 802.11b。
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |