关于hostapd配置文件的问题

关于hostapd配置文件及使用外接网卡及信道绑定的问题

问题list:

  • hostapd版本

  • ac协议下无法使用更多的信道,只能使用信道36 40 44 48

  • ac协议不能CB

  • n协议下CB失败

关于hostapd版本

hostapd如果从Raspbian的apt进行安装,则一般对应的源只支持到2.9版本,然而2.9版本并不支持80211ax协议,需要升级到2.10。参考hostapd官网:https://w1.fi/

2.10版本的hostapd升级方法:

  1. 在hostapd的官网下载最新的安装包,手动安装。大概率在安装过程中会出现的一些问题。因为hostapd2.10比较新,需要对应的modules,同时记得检查自己的gcc版本,一般可以通过安装header file解决。如果解决不了,请参考第二条。
  2. 直接下载最新的镜像文件。Raspbian OS是基于Debian发行版的,现在最新的应该是bookworm,之前的buster和bullseye的源里面并没有2.10,就算sudo apt update也没用。关于如何判断自己的树莓派版本,如果没有升级过内核,那么buster对应的就是kernel 5.10,bullseye对应的是6.1。

关于80211ac的5G信道选择解决方法

问题:

Configuration file: /etc/hostapd/hostapdexNIC.conf
wlan1: interface state UNINITIALIZED->COUNTRY_UPDATE
Channel 100 (primary) not allowed for AP mode, flags: 0x100959 RADAR
wlan1: IEEE 802.11 Configured channel (100) not found from the channel list of current mode (2) IEEE 802.11a
wlan1: IEEE 802.11 Hardware does not support configured channel
Could not select hw_mode and channel. (-3)
wlan1: interface state COUNTRY_UPDATE->DISABLED
wlan1: AP-DISABLED 
wlan1: interface state DISABLED->DISABLED
wlan1: AP-DISABLED 
wlan1: CTRL-EVENT-TERMINATING 
hostapd_free_hapd_data: Interface wlan1 wasn't started
nl80211: deinit ifname=wlan1 disabled_11b_rates=0

原因:硬件不支持所选的通道。

使用的是便携式的TP-Link T4UH v2的adapter,支持的信道为:

5.15~5.25GHz, 5.25~5.35GHz, 5.475~5.725GHz, 5.745~5.825GHz

对应的信道分别如下:

  • 5.15~5.25GHz UNII-1 频段,包括信道 36 到 48
  • 5.25~5.35GHz UNII-2 频段,包括信道 52 到 64
  • 5.475~5.725GHz UNII-3 频段,包括信道 100 到 140
  • 5.745~5.825GHz ISM 频段,包括信道 149 到 165

根据日本的无线信号规定:

  1. UNII-1频段(5.15~5.25GHz): 通常是允许使用
  2. UNII-2频段(5.25~5.35GHz): 不允许使用
  3. UNII-3频段(5.475~5.725GHz): 通常是允许。然而,这个频段也可能受到一些限制,特别是在高密度地区或有干扰的情况下。
  4. 5.745~5.825GHz: 这个频段通常被用于 ISM(工业、科学和医疗)设备

所以,基本还是只能使用36 40 44 48这四个Orz。

(人在日本,所以country code是JP,当然其他国家的规定有所不同,貌似US只能用1-11来着,中国与日本类似,可以参考使用)


以上内容同样适用于80211ax的5GHz范围。

总结:在使用external NIC的时候,尤其是便携的NIC,一般情况下并不是都支持所有的5GHz信道,但是2.4Ghz就那13个所有随便用。记得查阅官方文档。同时关注一下country code对应的国家的无线电规划政策。


关于ac协议的CB问题

CB-channel bonding 参考网址https://w1.fi/

默认情况下一般是20mhz信道的带宽(可以使用homedale软件来查看目前的信道信息),在信道绑定的情况下可以在2.4Ghz实现40Mhz带宽,5Ghz可以实现40 80Mhz,但是树莓派上边,实测5Ghz只能到40Mhz,也可能是我的问题,欢迎大家研究学习探讨。

通常在配置文件加入:

# Supported channel width set: [HT40-] = both 20 MHz and 40 MHz with secondary
#	channel below the primary channel; [HT40+] = both 20 MHz and 40 MHz
#	with secondary channel above the primary channel
#	(20 MHz only if neither is set)
ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
require_ht=1

如上,详细可以自己看hostapd的配置文件官方文档。

重点来了!

一些情况下无法开启40Mhz的信道,尤其是在使用树莓派加上external NIC的时候。

  • 树莓派本身不带驱动,驱动程序都是自己安装,常见的rtl88x2系列,就是[REALTEK]的芯片
  • 树莓派本身有亿点垃圾
  • 你装的驱动可能不是那么的好

这个时候,就算你按照网上的ac协议的配置文件使用hostapd,再使用一些wifi检测软件例如homedale,你会发现,还是tmd 20MHz

解决方法之一,很简单:

改用USB2.0接口

就是这么暴力简单枯燥无味,nnd。如果无法解决再去根据具体情况查看原因。(注意不要去参考什么Chatgpt给出的答案,一般都是扯淡,真实原因就是接口的问题)

下面列出测试过的一些设备:

  • 单板电脑:Raspberry PI 4B+ 4GB

  • 内核:5.10

  • 系统:Raspbian(Debian)buster/bullseye

  • CPU:ARM64(x86不知道)

  • Adapter:embeded NIC, TP-Link T4UH, TP-Link T9UH

    TP-Link T4UH使用的是rtl8812au芯片,根据不同的版本芯片可能有所不同,具体上网查

    rtl8812au芯片的同类产品应该也可以在ac协议下使用40Mhz的信道:

    • ALFA AWUS036AC
    • ALFA AWUS036ACH
    • ALFA AWUS036EAC
    • ASUS USB-AC56 Dual-Band AC1200 Adapter (H/W ver. A1)
    • Belkin F9L1109
    • Buffalo - WI-U3-866D
    • Edimax EW-7822UAC - Edimax made the source for this driver available.
    • Linksys WUSB6300 V1
    • Rosewill RNX-AC1200UBE
    • TRENDnet TEW-805UB
    • Numerous adapters that are based on the supported chipset.

    注意,上述测试条件下没有问题,不代表其他时候没有问题,因为这玩意事多,不知道哪就出问题了。

新发现
因为之前一直在学校做实验,周围的WIFI数量比较少,但是如果你是在家庭环境中的话,可能会遇见这样的问题:

20/40Mhz operation not permitted on channel pri=9 sec=13 based on overlapping BSSes

这是因为周边的WIFI太多或者在扫描时发现了相同颜色的同频段信号,就会导致hostapd强行使用更短的带宽。
解决方法一:
来自CSDN大佬的帖子:https://blog.csdn.net/weixin_44258973/article/details/109734824
解决方法二:
在人少的地方用…

n协议下CB失败

80211n协议下按照hostapd的说法,一样是设置好那个配置文件就行了,但是很多情况下大概率你运行hostapd的时候,会报错。

根据错误情况的不同,通常原因就是你的lib文件不太能支持ht的功能。

而且,RPI 4基本上没有啥问题,但是PI 3 会有一些问题。

或者就如同上述的ac的CB问题一样,换一个USB2.0接口试一下。

很多时候启动的时候会出现“country code update -> DISABLE”这种类似的东西,大概就是你的驱动没有配置好,简单,如果安好驱动了且可以在“iwconfig”或者“ifconfig”里面找到你的Adapter,那么就sudo reboot!

下面说一下关于lib的问题:

首先用dmesg查一下日志

 [    5.869624] cfg80211: Loading compiled-in X.509 certificates for regulatory database
 [    6.006217] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
 [    6.070648] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
 [    6.082457] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
 [    6.082767] usbcore: registered new interface driver brcmfmac
 [    6.289024] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
 [    6.289154] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
 [    6.290004] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Oct 23 2017 03:55:53 version 7.45.98.38 (r674442 CY) FWID 01-e58d219f

内核问题

尝试更新一下内核,树莓派建议使用

sudo rpi-update

(但是当你更新完内核可能无法启动…怎么解决,求助一下神通广大的网友)

其实总结一下就是PI 3 的BCM43438不行,我在使用PI 3时候花了很长时间去解决在2.4Ghz使用80211n的CB问题。

但是在PI 4就没有遇见过,如果你在使用pi 3, 那么参考这个帖子,基本就能解决。

链接:https://forums.raspberrypi.com//viewtopic.php?t=144058


总结

科技产品,买新不买旧!系统啥的嘎嘎装新的或许会解决很多问题。

这种不知名的原因大概率都发生在:

  • 你正在使用研究室或者网上的祖传代码
  • 你正在使用研究室或者便宜的旧设备
  • 你还想在旧设备上边花一点点小钱测试新的Adapter

如果你的导师要省钱,那就开摆告诉他你用不了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卜卜123a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值