如何确定 Linux 上的驱动程序支持哪种类型的 wifi 网络

Cer*_*rin 19 networking linux router wireless-networking command-line

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

我有一个运行 DD-WRT 的路由器,它支持在 2.4Ghz 和 5Ghz wifi 中广播,网络模式为混合、BG 混合、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)
Run Code Online (Sandbox Code Playgroud)

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

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

IEEE 802.11abg
Run Code Online (Sandbox Code Playgroud)

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

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

pie*_*nov 23

客户端支持的功能

iw phy on GNU/Linux 应该列出您想要的(以及更多)关于您的无线接口的内容,尽管乍一看有点令人困惑。

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

您还在为每个乐队寻找HT20/HT40under 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。

  • “GNU/Linux 上的 iw dev 将向您展示您的客户端和接入点是如何连接的”——它实际上是“iw dev wlan0 链接”。 (2认同)