在 5GHz 频段上为 Intel AX-200 WLAN 适配器启用 AP 模式

在 5GHz 频段上为 Intel AX-200 WLAN 适配器启用 AP 模式

有没有人成功地在 5GHz 频段上为 Intel AX-200 WLAN 适配器启用 ap 模式?经过几周的尝试和搜索其他论坛后,还没有任何积极的消息表明这一壮举。详细信息如下:

Intel AX-200 M2 形式 WLAN 适配器

$ lspci
02:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
03:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)

操作系统

$ uname -a
Linux survey 5.4.0-40-generic #44-Ubuntu SMP Tue Jun 23 00:01:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

英特尔驱动程序:

$ ls -al /lib/firmware/ | grep iwl
-rw-r--r--   1 root root 1044452 Jun 17 07:36 iwlwifi-cc-a0-46.ucode
-rw-r--r--   1 root root 1096704 Jun 17 07:36 iwlwifi-cc-a0-48.ucode
$ lsmod | grep iwl
iwlmvm                380928  0
mac80211              843776  1 iwlmvm
iwlwifi               331776  1 iwlmvm
cfg80211              704512  3 iwlmvm,iwlwifi,mac80211
$ iw dev
phy#1
        Interface wlp3s0
                ifindex 4
                wdev 0x100000001
                addr 84:c5:a6:3a:1b:c8
                type managed
                txpower 0.00 dBm
                multicast TXQ:
                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
                        0       0       0       0       0       0       0       0               0
phy#0
        Interface wlp2s0
                ifindex 3
                wdev 0x1
                addr 60:f2:62:4d:c0:65
                type managed
                txpower 0.00 dBm
                multicast TXQ:
                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
                        0       0       0       0       0       0       0       0               0
$ cat /etc/default/crda | grep -v '^#'
REGDOMAIN=US

主机APD

$ hostapd -v
hostapd v2.9
$ cat /etc/hostapd/wlp2s0.conf | grep -v '^#' | grep -v '^$'
interface=wlp2s0
bridge=br0
driver=nl80211
ssid=survey
hw_mode=a
channel=5180
ignore_broadcast_ssid=0
country_code=US
ieee80211d=1
ieee80211h=1
ieee80211n=0
ieee80211ac=0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd

的输出iw list可以单独提供,因为它的长度超过 14K 个字符,这导致它无法包含在原始帖子中。

当使用“Band1”(即 2.4GHz)时,该接口将作为 BSS 提供商(ap 模式)出现。当应用于“Band2”时,根据 hostapd 的配置方式,DFS 结果不会传回以显示可用频率,或者设备/资源始终报告繁忙

wlp2s0: Event SCAN_STARTED (47) received
Unknown event 47
nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlp2s0
wlp2s0: nl80211: New scan results available
nl80211: Scan included frequencies: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 5280 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 5765 5785 5805 5825
wlp2s0: Event SCAN_RESULTS (3) received
ACS: Using survey based algorithm (acs_num_scans=5)
nl80211: Fetch survey data
wlp2s0: Event SURVEY (46) received
No survey data received
ACS: Trying survey-based ACS
ACS: Unable to collect survey data
ACS: All study options have failed
Interface initialization failed

当禁用 DFS 或选择不正确的频率(FCC 域)时,接口会正确锁定所有 5GHz 频段

Channel 60 (primary) not allowed for AP mode, flags: 0x17b NO-IR RADAR
wlp2s0: IEEE 802.11 Configured channel (60) not found from the channel list of current mode (2) IEEE 802.11a
wlp2s0: IEEE 802.11 Hardware does not support configured channel
Could not select hw_mode and channel. (-3)

答案1

英特尔驱动程序才不是出于我不知道的原因,完全支持 5GHz 频段上的 AP。尝试启动它只是浪费时间(在撰写本文时),所以如果您通过谷歌搜索结束于此 - 就不要这样做。

特征:

2.4GHz 上的 AP 模式(在 iwlmvm 驱动的设备上)

https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi

答案2

如果您可以发布 的输出,那么更好地确定确切的问题iw reg get。话虽如此,由于我在 AX200(以及后来的 AX210)上遇到过非常类似的问题,我猜测:

似乎挡在你路上的障碍被称为拉尔, 或者位置感知监管。您可以在以下位置找到更多相关信息:这个答案

简而言之,这是Intel的一个功能,它可以让你的wifi芯片组忽略你的软件配置的区域,并通过扫描你周围的其他wifi信号来确定你所在的区域。

有一些解决方法:

1套lar_disable

此解决方案仅适用于 5.4.y 之前的内核。较新的内核删除了此功能,成为LAR强制性功能。

解决方案最初发布这里。简而言之,您希望通过以下方法之一加载iwlwifi带有参数集的模块:lar_disable=1

  1. 重新加载模块:modprobe -r iwlwifi & modprobe iwlwifi lar_disable=1

  2. 让模块在启动时加载参数:echo "options iwlwifi lar_disable=1" >/etc/modprobe.d/iwlwifi.conf

2. 使用wpa_supplicant

该解决方案应该适用于最新的内核,也是我迄今为止发现的最优雅的解决方案。

hostapd您可以使用wpa_supplicant来创建 AP,而不是进行设置。wpa_supplicant确实有能力创建 AP,但可配置项较少。

一个简单的工作配置如下所示:

ctrl_interface=/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1
ap_scan=1
                                                  
network={         
        ssid="your-ssid"
        mode=2
        frequency=5200
        proto=RSN
        pairwise=CCMP
        group=CCMP
        key_mgmt=WPA-PSK
        psk="your-password"
}

mode=2使连接成为 AP,其余的可以像任何其他连接一样配置。有关可用选项的更多详细信息,请参阅官方文档

3.为AP创建一个虚拟设备,并让主设备不断扫描

如果您确实需要那些只能通过设置的选项hostapd(例如,VHT 或企业安全性)。您可以执行以下操作:

  1. 为您的物理 WiFi 设备创建一个虚拟设备。sudo iw dev wlan0 interface add wlan0.ap type managed

这里我们假设您的设备是wlan0.将其替换为您的实际设备名称。如果您希望在启动时自动添加接口,您可以在以下位置创建一个规则文件/etc/udev/rules.d/

/etc/udev/rules.d/99-virtual-wireless-device.rules

ACTION=="add",SUBSYSTEM=="ieee80211",KERNEL=="phy0",RUN+="/usr/bin/iw phy %k interface add wlan0.ap type managed"

同样,phy0如有必要,请替换为正确的设备 ID。

  1. 配置wpa_supplicantwlan0.您需要配置至少一个网络部分。不过,它不必总是可访问的。如果您确实想要连接另一个 wifi,您可以将其放入wpa_supplicant.conf。如果你不这样做,你可以执行如下操作:
ctrl_interface=/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1
ap_scan=1

network={
        ssid="DUMMY-NETWORK"
        key_mgmt=WPA-PSK
        psk="UnrealisticallyLengthyComplexDummyPassword-aoqwi82fgwo"
}

这基本上是不断wpa_supplicant搜索不存在的网络。上面愚蠢的 ssid 和密码可防止其意外连接到任何实际网络。

  1. 最后,hostapd像平常一样进行配置,不同之处在于您应该将接口名称更改为interface=wlan0.ap

确保wpa_supplicant在 之前启动hostapd,尤其是当您在启动时盯着它们时。

4. 使用NetworkManager

如果您愿意切换到NetworkManager,使用它创建热点应该会自动解决问题。

然而,与 不同的是hostapdNetworkManager它不允许您将 AP 添加到网桥。要解决此问题,您可以考虑创建一个虚拟设备,配置NetworkManager不管理该虚拟设备,并使用hostapd.在虚拟设备上创建 AP。这与上面的第二个解决方案类似,只不过wpa_supplicant您不使用 ,而是使用NetworkManager,这会替换wpa_supplicant您要使用的网络管理器。

答案3

我曾经尝试在 Intel AX200 上启用 SOFAP 功能,但没有得到任何结果。但看到以下信息后,似乎他们不再支持该芯片上的此功能:

https://www.intel.com/content/www/us/en/support/articles/000023257/network-and-io/wireless-networking.html

虽然说是在Windows系统上,但我相信在Linux上也是一样的结果。至少我在我的平台上尝试过p2p连接是可行的。

答案4

我可以使用笔记本电脑中基于 Intel AX200 的模块在 5 GHz 频段设置 AP。我的软件配置如下:

  • 操作系统:Ubuntu 桌面 20.04.2 (LTS)
  • Linux 内核:5.8.0-44-generic
  • 固件:iwlwifi-cc-a0-55.ucode
  • 主机APD:v2.9

hostapd.conf成功测试了你的文件。然而,它需要一个小的调整。您将该channel参数设置为频率值5180。该参数期望通道号如下hostapd.conf 参考

# Channel number (IEEE 802.11)
# (default: 0, i.e., not set)
# Please note that some drivers do not use this value from hostapd and the
# channel will need to be configured separately with iwconfig.
#
# If CONFIG_ACS build option is enabled, the channel can be selected
# automatically at run time by setting channel=acs_survey or channel=0, both of
# which will enable the ACS survey based algorithm.
channel=1

我将通道设置为 value ,它是和监管域中149的可用通道之一(您可以使用和命令进行检查)。它应该也适合你。CAUSiw listiw reg get

此外,从您的 hostapd 调试输出中,我可以看到您正在尝试使用自动通道选择(ACS)。我不希望它能够工作,因为iwlwifi在支持的 ACS 驱动程序列表中没有提到主机配置文件

# Automatic selection is currently only done through initialization, later on
# we hope to do background checks to keep us moving to more ideal channels as
# time goes by. ACS is currently only supported through the nl80211 driver and
# your driver must have survey dump capability that is filled by the driver
# during scanning.
#
# You can customize the ACS survey algorithm with the hostapd.conf variable
# acs_num_scans.
#
# Supported ACS drivers:
# * ath9k
# * ath5k
# * ath10k
#
# For more details refer to:
# http://wireless.kernel.org/en/users/Documentation/acs

相关内容