iwconfig 命令不显示 abgn

iwconfig 命令不显示 abgn

昨天,我对我的 Linux 系统进行了重大更新。iwconfig命令过去用于显示 802.11[abgn] 信息,但现在它仅显示 802.11。

有什么方法可以让 iwconfig 显示卡的可用频段吗?

如果没有,有什么方法可以通过其他命令检索该信息吗?

答案1

这是故意从“WEXT 仿真”代码中删除的在Linux内核v4.7中

系统配置使用以下方法从内核获取此文本ioctl(SIOCGIWNAME),这是 WEXT(无线扩展)API 中的一个函数。但是:

  1. SIOCGIWNAME 返回的文本限制为 16 个字节,并且IEEE 802.11abgn已经达到该限制 - 没有空间来指示ac,更不用说更新的修订了。

  2. WEXT 整体上实际上停留在 802.11n 时代。它的总体设计实际上早于802.11 无线网络 (系统配置它仍然带有 1988 年 WaveLAN 的子命令,并且在处理多频段 Wi-Fi 适配器、信道宽度等现代功能时遇到麻烦。

大多数现代无线驱动程序都建立在mac80211/cfg80211架构并直接提供 nl80211 API,它提供了更多的功能,并且不受 WEXT 的各种问题的影响。内核仍然使用来自 mac/cfg80211 的信息模拟现有的 WEXT 操作,但没有兴趣也没有充分的理由进一步扩展它。(mac80211 架构于 2006 年由 Devicescape 推出;请参阅这篇 LWN 文章

这也意味着整个无线工具由于依赖 WEXT API(当然,除非您使用 WEXT 驱动程序),因此该包已过时。可以使用我爱用于管理具有现代 mac/cfg80211 驱动程序的 Wi-Fi 设备:

  • iw phy(简称iw phy phy0 info)将显示物理卡的功能。遗憾的是,它没有直接说明“802.11b/g/n”,但您仍然可以根据频段、HT/VHT 支持等推断出这一点。

    • 802.11a – 显示 5 GHz 频段
    • 802.11b – 显示 2.4 GHz 频段,具有 1/2/5.5/11 Mbps“非 HT”比特率
    • 802.11g – 显示 2.4 GHz 频段,具有 6/9/12/18/24/36/48/54 Mbps“非 HT”速率
    • 802.11n – 支持两个频段的“HT”(高吞吐量)
    • 802.11ac – 支持 5 GHz 频段的“VHT”(超高吞吐量)
    • 802.11ax – 支持“HE”(高效率)
  • iw dev(简称iw dev wlan0 info)将显示软件接口的当前配置,例如频率。从技术上讲,可以使用同一个 phy 来拥有多个 wlan# 接口。

  • iw [dev] wlan0 link将更详细地显示当前链接状态。

  • iw [dev] wlan0 station dump与上面的类似。


请注意,正如提交消息所说,HT 和 VHT 等功能不再被视为修正案(小写字母表示) - 它们已合并到 802.11 的后续版本中,例如“802.11-2012”完全包含“n”,“802.11-2016”包括“ac”。

还请注意,模拟更改不会影响 WEXT 原生驱动程序,这些驱动程序有自己的 ioctl 处理程序。因此,如果您使用的是非常旧的设备(或 Realtek),那么您仍会在此字段中获得类似IEEE 802.11-DS或 的名称IEEE 802.11b

相关内容