如何确定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/HT40Capabilities:每个波段。这表示支持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.