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


16

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

我有一台运行DD-WRT的路由器,该路由器支持2.4Ghz和5Ghz wifi中的广播,并且具有混合,BG混合,仅B,仅G,仅NG,仅N的网络模式。

我有许多运行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驱动程序支持的所有频率和网络模式,以便为我的无线路由器找到最佳设置吗?

Answers:


19

客户支持的功能

iw phy 尽管乍一看有点令人困惑,但在GNU / Linux上的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上广播。如今,当5Ghz使用的设备更少时,2.4Ghz变得非常拥挤,更容易受到干扰。问题在于,通常仅在新近或高端设备上支持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上,将向您展示客户端和访问点如何连接。理想情况下,它将位于40 GHz带宽的5Ghz频段(并允许在您所在的区域)内的信道中。


1
“实际上,您将在GNU / Linux上的iw开发人员向您展示客户端和访问点之间的连接方式” iw dev wlan0 link。
— pfalcon'1

对于802.11ac,您要查找的关键字是VHT,表示非常高的吞吐量。我的802.11n卡没有这个术语。我的802.11ac卡列表VHT Capabilities (0x038071b0):和short GI (80 MHz)
— Huckle

令命令输出如此冗长。iw phy | grep -i Band -A 20没有寒意
— g33kz0r

您如何将Linux AP配置为“同时在2.4Ghz和5Ghz上广播”?如何查看iw phy给定卡是否可行?因此,我列出了两个波段,但我不知道您是否可以同时使用两个波段。
— Mitar

1

@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和5 GHz。

要查看驱动程序实际支持什么,请运行:

iwconfig wlan0

应该显示如下内容:

wlan0     IEEE 802.11bg  ESSID:off/any

使用lspci可以为您提供有关芯片组的一些信息,但这不是很可靠。相同的芯片组可以提供不同的功能,有时它们的名称中不包括它们。例如,这一名称:Intel Corporation Wireless 7260 (rev bb)可以提供801.11bgn,并可选配802.11a和802.11ac。某些802.11n芯片组仅在2.4Ghz频段上支持它,而不是5Ghz。也iwconfig不会为您提供有关支持频率的太多信息。有时问题可能来自5Ghz频段中的监管域配置错误(禁用的频率)。
— Piernov

FWIW我lspci不包括这些条款。相反,它是03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6230 [Rainbow Peak] (rev 34)。对于grep可能更有用Network controller。
— Sparhawk

我的是Realtek,lspci也没有显示该信息。我相信我的802.11b / g / n(仍在设法确定)。对我来说,命令输出06:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8192CE PCIe Wireless Network Adapter (rev 01)
— biggles5107 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.