如何确定你的 Linux 驱动程序支持哪种类型的 Wi-Fi 网络

如何确定你的 Linux 驱动程序支持哪种类型的 Wi-Fi 网络

在 Linux(特别是 Ubuntu)上,确定硬件和驱动程序支持哪些类型的 Wifi 协议的最简单方法是什么?

我有一个运行 DD-WRT 的路由器,它支持 2.4Ghz 和 5Ghz wifi 广播,网络模式为混合、BG-mixed、B-only、G-only、NG-only、N-only。

我有许多运行 Linux 的无线设备,从 Android 手机到网络再到 Macbook,我发现很难设置一个支持所有设备的配置。将其设置为在混合模式下同时广播 2.4 和 5 似乎可以覆盖所有设备,但也给我的路由器带来了最大的负载。所以我尝试在混合模式下只启用 2.4,一切都可以连接,但整体网络性能很慢,因为我所在地区有大量 2.4 网络,导致大量拥塞。

当我尝试在混合模式下仅启用 5Ghz 时,我发现我的大多数旧设备都无法再看到网络,即使其中一些设备已在其他位置连接到 5Ghz 网络。例如,我有一台可以连接到某些 5Ghz 网络的 Macbook,其 lspci 显示:

03:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)

但它完全无法检测到我的路由器的 5GHz 网络。

在上网本上,运行iwconfig wlan0显示:

IEEE 802.11abg

意味着它应该能够访问我的路由器的 5 GHz 混合 a/n 网络,但运行时nmcli dev wifi list只显示 2.4 GHz 网络。这是为什么?

我是否可以从命令行运行某些命令,列出当前 wifi 驱动程序支持的所有频率和网络模式,以便我可以找到无线路由器的最佳设置?

答案1

客户端支持的功能

iw phyGNU/Linux 上应该会列出你想要的关于无线接口的信息(以及更多信息),尽管乍一看有点令人困惑。

您要查找的是您的网卡是否在双频模式下工作。然后您将看到Band 1:一个Band 2:部分,第一个部分通常用于 2.4Ghz,第二个部分用于 5Ghz。在每个频段下Bitrates (non-HT):,您将看到列出 2.4Ghz 上 802.11bg 或 5Ghz 上 802.11a 支持的比特率。

您还正在寻找每个频段的HT20/HT40下方Capabilities:。这意味着支持 802.11n。HT20适用于 20Mhz 宽度通道,HT40适用于 40Mhz 宽度。

如果您想了解有关 802.11n 功能的更多信息,例如空间流数量(用于 MIMO)和支持的速率,请查看以下HT TX/RX MCS rate indexes supported:行。0-15表示支持从 0 到 15 的 MCS 索引,即它可以在 MIMO 2x2 中工作,数据速率在 HT20 中高达 130 Mb/s,在 HT40 中高达 270 Mb/s。此外,如果RX HT20 SGI和/或RX HT40 SGI列在下方Capabilities:,则表示支持短 GI(400 ns),因此 HT20 的最大数据速率为 144 Mb/s,HT40 的最大数据速率为 300 Mb/s。请参阅此处获取 MCS 索引列表:https://wireless.wiki.kernel.org/en/developers/documentation/ieee80211/802.11n

Frequencies:列出支持的频率和相关频道。某些频道可能被禁用,因为您的硬件或软件不支持,或者您的监管区域不允许。如果您的 WiFi 接入点在禁用的频道上广播信号,您将无法连接。您可以在此处查看您所在地区允许哪些频道:https://en.wikipedia.org/wiki/List_of_WLAN_channels

此外,您可能会看到VHT Capabilities其他VHT相关信息。它与 802.11ac 有关,但您的接入点不支持它(您指定的芯片组也不支持),因此您可以忽略它。

接入点配置

我真的建议您将 WiFi 接入点配置为同时在 2.4Ghz 和 5Ghz 上广播。如今,2.4Ghz 非常拥挤,更容易受到干扰,而使用 5Ghz 的设备则少得多。问题是 5 Ghz 通常仅支持较新或高端设备,而 2.4 Ghz 是 WiFi 设备使用的默认频段。此外,5Ghz 信号范围小于 2.4Ghz,更容易因障碍物而减弱。

使用这两个频段可以使您在大多数设备上使用无线连接(因为它们不支持 5Ghz 或者因为信号减弱,所以它们会回落到 2.4Ghz),同时在高端/最近的设备上获得更好的性能(因为它们使用 5Ghz 频段)。

最后,您不必担心接入点上的 B、G 和 N,您应该选择提供三种标准(混合)的模式,以便较旧的 802.11g(802.11b 设备现在非常罕见)设备仍可连接,而较新的 802.11n 可全速工作。此外,只有 802.11a 和 802.11n 可在 5Ghz 频段工作。(也有 802.11ac,但您没有使用它)

也许您还会看到频道设置。通常将其保留为默认值即可,您的接入点应该足够聪明来选择最佳频道。(并且可以防止您选择与其他频道重叠的频道,从而产生更多干扰)

两者之间的联系

iw dev在 GNU/Linux 上将显示您的客户端和接入点如何连接。理想情况下,它将位于 5Ghz 频段(并且您所在区域允许)的信道中,带宽为 40Mhz。

答案2

@piernov 的答案很好,但我发现一个更简单但可能不太准确的方法是运行:

lspci | egrep -i --color 'wifi|wlan|wireless'

将显示类似以下内容的内容:

03:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)

这显示了硬件理论上支持的内容。然后您可以解释“802.11[abcgn/]+”,其中 b 和 g 仅表示 2.4 GHz,a 仅表示 5 GHz,ac 和 n 均表示 2.4 GHz 和 5 GHz。

要查看驱动程序实际支持的内容,请运行:

iwconfig wlan0

应该显示类似以下内容的内容:

wlan0     IEEE 802.11bg  ESSID:off/any

相关内容