差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:linux:dey:wifi [2025/01/16 22:14] robindigi:arm-embedded:linux:dey:wifi [2025/02/21 12:21] (当前版本) robin
行 6: 行 6:
 在DEY系统上使用hostapd创建无线接入点,并通过udhcpd配置DHCP服务,实现WiFi热点的开启与IP地址的自动分配。这涉及到一些命令的使用,hostapd.conf和udhcpd.conf的配置方法,以及启动hostapd和udhcpd的步骤,本文将提供了无密码和加密模式的配置示例。 在DEY系统上使用hostapd创建无线接入点,并通过udhcpd配置DHCP服务,实现WiFi热点的开启与IP地址的自动分配。这涉及到一些命令的使用,hostapd.conf和udhcpd.conf的配置方法,以及启动hostapd和udhcpd的步骤,本文将提供了无密码和加密模式的配置示例。
  
-值得注意的是,由于是在配置文件中指定了信道,因此了解当前的信道情况可能有利于测试开展。在Linux中,可以用下面命令查询+值得注意的是,由于是在配置文件中指定了信道,因此了解当前的信道情况可能有利于测试开展。 
 + 
 +事实上,如果用原始的/etc/hostapd_uap0.conf,是无法成功的,但我们可以用调试模式来查看这配置的问题 
 +<code> 
 +hostapd -dd /etc/hostapd_uap0.conf 
 +</code> 
 +可以查看到WiFi硬件或驱动不支持在5GHz频段的channel=44(5220 MHz)上运行AP模式。 
 +NO-IR标志表示该频道不允许发起辐射(Initiate Radiation),即不能用作AP模式的主频道,通常是因为监管域限制或硬件能力限制。 
 + 
 +如果要设置国家,需要安装regulatory.db: 
 +wget https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/plain/regulatory.db -O /lib/firmware/regulatory.db 
 +wget https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/plain/regulatory.db.p7s -O /lib/firmware/regulatory.db.p7s 
 +并用: 
 +<code> 
 +iw reg reload 
 +iw reg set US 
 +iw reg get 
 +</code> 
 +否则全局域一样的DFS的 
 + 
 +在Linux中,可以用下面命令查询哪些信道干扰较小,可以用
  
 <code> <code>
行 170: 行 190:
 #    Bit 2 :  WIFIDIRECT #    Bit 2 :  WIFIDIRECT
 # eg, for STA + uAP + WIFIDIRECT, set 7 (b'111) # eg, for STA + uAP + WIFIDIRECT, set 7 (b'111)
-DRIVER_MODE= # Only STA+DRIVER_MODE= # Only STA
 </code> </code>
 +改了DRIVER_MODE后,用ifup uap0 来启动这个接口。 您还可以通过取消注释 /etc/network/interfaces 中的 “auto uap0” 行来启用自动启动。
 +
 +Digi Embedded Yocto 提供了一种机制来支持每个 Wi-Fi 接口的不同配置文件,允许您同时运行多个 hostapd 实例。hostapd@.service systemd 服务会自动为每个接口选择适当的配置文件 /etc/hostapd_X.conf(其中 X 是传递给服务的接口)。
 +
 +hostapd 软件包提供了一个默认配置文件 /etc/hostapd.conf 作为不同可用设置的参考。Digi Embedded Yocto 初始化脚本不使用此文件。
 +
 +参考:
 +https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/cc93/bsp-wifi-access-pt_r_hostapd.html
 +
 +通过AI查得52信道80MHz频宽的配置为:
 +<code>
 +# 接口和驱动程序设置
 +interface=wlan0
 +driver=nl80211
 +ctrl_interface=/var/run/hostapd
 +
 +# 基本网络设置
 +ssid=TestAP
 +hw_mode=a
 +channel=52
 +
 +# WPA身份验证设置
 +wpa=2
 +wpa_key_mgmt=WPA-PSK
 +wpa_passphrase=12345678
 +
 +# HT(802.11n)
 +ieee80211n=1
 +ht_capab=[SHORT-GI-20][HT40-][SHORT-GI-40]
 +
 +# VHT(802.11ac)
 +ieee80211ac=1
 +vht_oper_chwidth=1
 +vht_oper_centr_freq_seg0_idx=58
 +vht_capab=[SHORT-GI-20][SHORT-GI-40][VHT40-][SHORT-GI-80][MAX-A-MPDU-LEN-EXP7]
 +
 +# 加密算法设置
 +wpa_pairwise=CCMP
 +rsn_pairwise=CCMP
 +</code>
 +其中关键的解析在:
 +<code>
 +HT(802.11n):
 +ieee80211n=1:启用802.11n支持。
 +ht_capab=[SHORT-GI-20][HT40-][SHORT-GI-40]:启用20MHz和40MHz的短GI,并设置为HT40-模式。
 +VHT(802.11ac):
 +ieee80211ac=1:启用802.11ac支持。
 +vht_oper_chwidth=1:设置信道宽度为80MHz。
 +vht_oper_centr_freq_seg0_idx=58:设置中心频率段0的索引为58。
 +vht_capab=[SHORT-GI-20][SHORT-GI-40][VHT40-][SHORT-GI-80][MAX-A-MPDU-LEN-EXP7]:启用20MHz、40MHz和80MHz的短GI,并设置最大A-MPDU长度。
 +</code>
 +保存配置文件后,用sudo hostapd /etc/hostapd/hostapd.conf -B 启动hostapd
 +<code>
 +iw dev wlan0 info
 +</code>
 +
 +对于Wifi6 802.11ax, 可用这个配置
 +
 +<code>
 +# VHT(802.11ac)
 +ieee80211ac=1
 +vht_oper_chwidth=1
 +vht_oper_centr_freq_seg0_idx=58
 +vht_capab=[SHORT-GI-20][SHORT-GI-40][VHT40+][SHORT-GI-80][MAX-A-MPDU-LEN-EXP7]
 +
 +# HE(802.11ax)
 +ieee80211ax=1
 +he_oper_chwidth=1
 +he_oper_centr_freq_seg0_idx=58
 +he_capab=[MAX-AMSDU-3895][SHORT-GI-80][SU-BEAMFORMEE]
 +</code>
 +
 +在80MHz频宽模式下,信道52的中心频率段索引为58,是因为80MHz频宽模式需要使用两个20MHz信道来组成一个80MHz频宽。具体来说,信道52的80MHz频宽模式会使用信道52、56、60和64这四个20MHz信道。