正基WiFi模块STA模式基本操作示例(2)

article/2025/8/15 23:08:43

接上一篇文章!
4. STA 模式基本操作示例
4-1 加载驱动
步骤 1. 加载驱动。
ap6181/ap6212/ap6212a/ap6214a/ap6255
himm 0x100d0004 0x1
himm 0x12098034 0x10101070
insmod cfg80211.ko
insmod bcmdhd.ko firmware_path=/etc/firmware/fw_bcm40181a2.bin
nvram_path=/etc/firmware/nvram.txt dhd_oob_gpio_base=0x1214d000
dhd_oob_gpio_num=0 dhd_oob_irq_num=76 sdio_slot=1
himm 0x12098034 0x10101050
himm 0x12098034 0x10101070

第一行命令是给 SDIO 控制器上电,地址为 WiFi 模块对接的 SDIO 端口所对应的控制器地址;第二行是将 WL_REG_ON 拉高给 WiFi 上电,WL_REG_ON 连接的GPIO 不同,地址和值也不同,上例 WL_REG_ON 连接在 PER_EN1 上,请根据用户指南修改;第四行命令是加载 WiFi 驱动,其中:
− dhd_oob_gpio_base 和 dhd_oob_gpio_num 是配置 OOB 管脚,上例为
GPIO13_0,oob_gpio_base=0x1214d000 设置 GPIO13 的基地址,基地址从用户指南中查找,dhd_oob_gpio_num 设置偏移为 0;
− dhd_oob_irq_num 为 OOB GPIO 的中断号,请从用户指南中查找;
− sdio_slot 是 WiFi 对接的 SDIO 端口号。
第五、六行是将 WL_REG_ON 拉底再拉高,复位 WiFi。
步骤 2. 查看驱动是否加载成功。
执行 shell 命令:
iwconfig
如果看到有一个 wlan0 网口,那说明驱动已经初始化成功,WiFi 设备可用。
图3-1 iwconfig 执行结果
在这里插入图片描述
步骤 3. 启动 WiFi 网口。
执行 shell 命令:
ifconfig wlan0 up
执行完后,WiFi 是可用状态,可以进行扫描和连接操作了。
----结束
3.2 扫描 AP
执行 shell 命令:
iwlist wlan0 scan
图3-2 扫描 AP 执行结果
在这里插入图片描述
扫描到的 AP 会以“Cell xx”的形式显示,一个 AP 对应一个“Cell xx”。
每个 AP 的信息包括:
Address:MAC 地址。
ESSID:AP 的名称,即 SSID。
Protocol:IEEE80211 协议,11b/g/n。
Frequency:信道。
认证加密信息:WEP、WPA-PSK、WPA2-PSK、WPA、WPA2。 Quality:信号质量,该数据有些 WiFi 显示得不准确,可以忽略。 Signal Level:信号强度,数字越大,信号强度越高,WiFi 芯片不同,显示的方式有些区别,有的是以 xx/100 类型显示,有的是以 xx dBm 显示。
上述信息并不是所有 WiFi 都是以这种格式显示,WiFi 不同显示的格式也不一样。

注意
使用 iwlist 进行扫描时,iwlist 不会等驱动扫描完所有信道才返回扫描结果,所以经常会出现有些 AP 没有搜出来的情况,尤其是MT7601U,由于在每个信道上停留的时间较长,所以第一次扫描时,只能搜到 1~2 个信道里的 AP。

3.3 连接 AP
连接 AP 是通过 wpa_supplicant 进程进行的。wpa_supplicant 是开源代码,Linux、Android 都是采用它负责 WiFi 的连接过程,它包含了 WEP、WPA/WPA2、WPAPSK/WPA2-PSK、WAPI、WPS、P2P、EAP 等协议。
步骤 1. 启动 wpa_supplicant 进程。
执行 shell 命令:
wpa_supplicant –iwlan0 –Dnl80211 –c/etc/Wireless/wpa_supplicant.conf&
iwlan0 表示使用 wlan0 网口;
Dnl80211 表示使用 cfg80211 接口(用户态的接口是 libnl,内核中是 cfg80211), 另外一个可选的是-Dwext,表示使用 wext 接口,mt7601u 需要使用-Dwext;
c/etc/Wireless/wpa_supplicant.conf 是 wpa_supplicant 的配置文件,要保证该文件已经存在。
执行完后,用 ps 命令查看一下 wpa_supplicant 进程是否存在,存在表示工作正常。如果没有 wpa_supplicant 进程,可以增加wpa_supplicant 的打印级别,从 log 看出现什么问题,如:
wpa_supplicant –iwlan0 –Dnl80211 c/etc/Wireless/wpa_supplicant.conf –ddd &
步骤 2. 启动 wpa_cli 进程。
执行 shell 命令:
wpa_cli –iwlan0 –p/var/wpa_supplicant
执行成功会出现“>”符号。
如果出现“Could not connect to wpa_supplicant - re-trying”,那表示 wpa_cli 不能和wpa_supplicant 建立 socket 连接,这时要检查 wpa_supplicant 进程是否还在,再看是否有/var/wpa_supplicant/wlan0,然后检查 wpa_supplicant.conf 文件中是否是
ctrl_interface=/var/wpa_supplicant。
步骤 3. 扫描。
在“>”后执行“scan”命令,收到“CTRL-EVENT-SCAN-RESULTS”后再执行 “scan_results”,会获得扫描结果。
图3-3 wpa_cli 扫描 AP 结果
在这里插入图片描述
步骤 4. 连接。
连接 OPEN 方式的 AP:
a. 在“>”后执行 add_network,假如返回网络 ID 为 0。
b. 配置网络的 SSID,执行 set_network 0 ssid“AP 的 SSID”。
c. 配置网络的加密方式,执行 set_network 0 key_mgmt NONE。
d. 启动网络,执行 select_network 0。
e. 收到 CTRL-EVENT-CONNECTED 表示连接成功。
图3-4 连接 AP
在这里插入图片描述
连接 WPA-PSK/WPA2-PSK 方式的 AP:
在“>”后执行 add_network,假如返回网络 ID 为 0。
配置网络的 SSID,执行 set_network 0 ssid“AP 的 SSID”。
配置网络的加密方式,执行 set_network 0 psk“AP 的密码”。 启动网络,执行 select_network 0。
收到 CTRL-EVENT-CONNECTED 表示连接成功。
Broadcom 的 WiFi 还可以通过 wl 工具进行扫描和连接,连接方法请参考 sample 和wl 的 help 信息。
步骤 5. 获取 IP 地址。
输入 q 退出 wpa_cli,执行 shell 命令:
udhcpc –i wlan0
配置了 IP 地址后,可以 ping 网关看是否能 ping 通。
----结束
3.4 卸载驱动
ap6181/ap6212/ap6212a/ap6214a/ap6255
ifconfig wlan0 down
rmmod bcmdhd.ko
rmmod cfg80211.ko

4 .SoftAP 模式基本操作示例
4.1 检查 WiFi 设备、加载驱动
ap6181/ap6212/ap6212a/ap6214a/ap6255 用的 firmware 和 STA 模式不一样,如下:
himm 0x100d0004 0x1
himm 0x12098034 0x10101070
insmod cfg80211.ko
insmod bcmdhd.ko firmware_path=/etc/firmware/fw_bcm40181a2_apsta.bin
nvram_path=/etc/firmware/nvram.txt dhd_oob_gpio_base=0x1214d000
dhd_oob_gpio_num=0 dhd_oob_irq_num=76 sdio_slot=1
himm 0x12098034 0x10101050
himm 0x12098034 0x10101070
4.2 hostapd 配置和启动 SoftAP
配置 SoftAP 是通过 hostapd 进行的。hostapd 和 wpa_supplicant 类似,它包含了 AP 端的各种认证协议、连接流程,wpa_supplicant 是 STA 端的。
步骤 1. 修改 hostapd.conf 文件。
hostapd 进程需要使用 hostapd.conf 配置文件,在配置文件里设置 SSID、信道、加密方式等。配置文件的内容举例如下:
OPEN
interface=wlan0
driver=nl80211
ctrl_interface=/var/hostapd
ssid=HisiAP
channel=6
hw_mode=g
ieee80211n=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40-]
WPA2-PSK
interface=wlan0
driver=nl80211
ctrl_interface=/var/hostapd
ssid=HisiAP
channel=6
hw_mode=g
ieee80211n=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40-]
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_passphrase=12345678
hostapd 是开源代码,配置文件中的参数可以参考网络资源。
ht_capab 可以配置是否支持 40M 带宽,带有[SHORT-GI-40][HT40-]或者[SHORT-GI-
40][HT40+]即支持 40M 带宽。当 channel 小于 6 时,用[SHORT-GI-40][HT40+],当
channel 大于等于 6 时,用[SHORT-GI-40][HT40-]。
mt7601u、ap6181、ap6212、ap6212a、ap6214a、ap6255 的 SoftAP 模式不支持 40M 带 宽,所以 ht_capab 设置如下:
ht_capab=[SHORT-GI-20]
步骤 2. 启动 hostapd 进程。
执行 Shell 命令:
hostapd -e /etc/Wireless/entropy.bin /etc/Wireless/hostapd.conf &
执行完后,用 ps 命令查看一下 hostapd 进程是否存在,存在表示工作正常,用 STA 设 备可以搜索到 SoftAP。如果没有,可以增加 hostapd 的打印级别,从 log 看出现什么问题,如:
hostapd -e /etc/Wireless/entropy.bin –ddd /etc/Wireless/hostapd.conf &
----结束
Broadcom 的 WiFi 还可以通过 wl 工具进行配置,配置方法请参考 sample 和 wl 的 help信息。
4.3 开启 udhcpd
执行 Shell 命令:
ifconfig wlan0 192.168.1.1
busybox udhcpd –fS /etc/Wireless/udhcpd.conf
请确保/etc/Wireless/udhcpd.conf 文件存在,并且配置的网段为 192.168.1.x。执行完后, 用 STA 设备可以扫描和连接该 SoftAP,如果能成功连接且 ping 通网关表示此 AP 配置成功。
4.4 卸载驱动
卸载驱动的方法和 STA 模式一样。
4.5适配国家或区域
不同的国家或区域,采用的频率范围有些不同,比如 2.4GHz 频段,美国支持 1~11 信 道,中国和欧洲支持 1~13 信道,日本支持 1~14 信道。5GHz 频段也类似。WiFi 需要根据产品上市的国家或区域做相应的配置,以适用于该国家的频率范围。


http://chatgpt.dhexx.cn/article/jrRSeF5V.shtml

相关文章

android+wifi驱动移植,全志R16 android4平台移植wifi资料下载

2. 模块概述 目前R16 android4.4 平台上已支持wifi 模组有5款,本文档将以R16 y3方案为例 说明如何配置每款wifi 模组。Rtl8723au暂不支持 wifi 模组可分USB 接口和SDIO 接口两种类型,部分模组带蓝牙和FM 功能(FM 功能尚未支持),wifi 的全功能…

ap8161驱动移植

平台:imx287 linux内核:2.6.35 开机设置:正常开机,跳线帽在jp4, SD烧写JP3 JP4 正常启动后,sd卡的内容读取,拔掉jp4跳线帽,在串口控制台输入:df -m 找到盘号。然后在板子的/media…

[RK3288 Android7.1.2 ]新增wifi模块ap6256

Platform: ROCKCHIP Chip: RK3288 OS: Android7.1.2 Kernel: 4.4.143 背景 旧板wifi模块ap6235,硬件将wifi模块替换成ap6256,未改代码情况下,wifi不能用, 设备打印如下 代码修改 1.新增固件:wifi在externa\wlan_loader\firmw…

RK903 RK901 AP6xxx系列WiFi模块配置

包括以下模块:RK901、RK903、AP6181、AP6210、AP6330、AP6476、AP6335等选择“RK901/RK903/BCM4330/AP6XXX wireless cards support” 不需要配置:“Select the wifi module”与”Select the wifi module crystal freq”dts中wifi_chip_type配置&#xf…

AMPAK正基AP6XXX系列WiFi移植(1)

通常 Wi-Fi 有四种模式,不同的 Wi-Fi 设备可能支持其中一种或几种模式,四种模式如下: SoftAP:access point,一种将无线设备连接到一个网络的设备,可以理解为无线路由。 STA:station&#xff0…

RT-Thread学习的综合应用——使用AP6181 WiFi模组对接OneNET应用示例

学习了RT-Thread的内核也有一段时间了,由于各种各样的琐事自己没有去做一个综合应用示例,刚最近有点时间,做了一个对接OneNET的历程,采用的是OneNET的EDP协议,关于OneNET的EDP协议可以点击跳转至OneNET EDP协议讲解与应…

IOT-OS之RT-Thread(十六)--- WLAN管理框架 + AP6181(BCM43362) WiFi模块

文章目录 一、WLAN管理框架简介二、WLAN Device实现与AP6181 WLAN驱动移植2.1 WLAN Device驱动接口层2.2 AP6181 WLAN驱动移植 三、WLAN Protocol实现与LwIP协议栈移植3.1 WLAN Protocol 网络协议层3.2 LwIP协议栈移植 四、WLAN Config 参数管理与自动连接实现4.1 WLAN Config …

ap6181移植

ap6181 功能:wifi station、softap、wifi direct 接口类型:SDIO 编译模式:编成模块方式,修改路径如下BoardConfig.mk android4.4\device\softwinner\astar-y3 BoardConfig.mk 文件决定android 加载哪一款wifi 模组, 要…

超高性价比WiFi蓝牙模块大合集

无线技术的不断成熟,对物联网的发展起着至关重要的作用,实现“万物互联、物物互联”变得更加轻松、安全。蓝牙技术和WiFi技术都属于无线通信网络标准,可以实现无线段距离联络,并且都工作在ISM2.4GHz公共频段,但是不同的…

IOT-OS之RT-Thread(十五)--- SDIO设备对象管理 + AP6181(BCM43362) WiFi模块

文章目录 一、AP6181 Wi-Fi模块简介1.1 AP6181 硬件接口1.2 AP6181 驱动层级 二 SDIO设备对象管理2.1 SDIO Bus Driver2.1.1 Host 数据结构描述2.1.2 rt_mmcsd_req 数据结构描述2.1.3 SDIO Bus 接口函数及初始化过程 2.2 SDIO Card Device & Driver2.2.1 SDIO Card 数据结构…

揭晓你所不了解的第三代测序技术

揭晓你所不了解的第三代测序技术 浏览 5440 讨论 1 biozy楼主 发布于 2015-07-10 只看楼主 什么是第三代测序技术? 第三代测序技术是指单分子测序技术。DNA测序时,不需要经过PCR扩增,实现了对每一条DNA分子的单独测序。如果你还记得&#xff…

《全基因组测序WGS数据分析——1.DNA测序技术》

WGS(Whole Genome Sequencing) 指将物种细胞里面完整的基因组序列全部DNA,检测并排列,此技术几乎能够鉴定出基因组上任何类型的突变。 对于人类来说,全基因组测序的价值是极大的,它的信息包含了所有基因和生命特征之间的内在关联…

DNA 测序技术

DNA 测序技术用以分析特定DNA 片段的碱基序列(腺嘌呤(A)、胸腺嘧啶(T)、胞嘧啶(C)与鸟嘌呤(G))的排列方式. 图2 DNA 测序及拼接过程示意图 Fig. 2 Diagram of…

单细胞测序系列之一:测序技术的发展

本文同步发布于个人博客https://www.horosama.com 相关文章链接: 单细胞测序系列之二:单细胞基因组测序 单细胞测序系列之三:单细胞转录组测序 文章目录 1 引言2 第一代测序技术3 第二代测序技术4 第三代测序技术 1 引言 图1 核酸测序技术的…

Nanopore测序技术

Nanopore测序技术 Shaoqian_Ma已关注 0.1142020.04.14 10:59:30字数 2,727阅读 360 纳米孔测序解析新型冠状病毒全基因组 本文的参考视频为:https://www.bilibili.com/video/BV13T4y15727?p9 简介 官网:https://nanoporetech.com/ 优势如下&…

群体遗传学习笔记-测序技术学习

群体遗传学习笔记-测序技术学习 重测序技术简介 全基因组重测序(Resequencing)是对已知参考基因组序列的物种进行不同个体间的基因组测序,并在此基础上对个体或群体进行差异性分析。通过全基因组重测序,将不同梯度插入片段(Insert-Size&…

生物信息学_测序技术(一)DNA测序

核酸在生命活动中起着重要的作用,核酸有两类: DNA 携带决定个体性状的遗传信息 RNA 参与遗传信息的表达与调控 DNA是携带遗传信息的载体之一,而生物体的遗传信息以特定核苷酸排列顺序存储,不同生物体具有不同的排列顺序&…

测序平台和测序技术是怎么对应的?

测序平台和测序技术是怎么对应的? 可能问了个非常基础甚至有点蠢的问题。真的没有搞懂平台和技术名字的对应关系。 首先,平台其实就是机器名字,而技术是指代不同原理吗? 那么,二代的测序平台和技术都是叫illumina吗…

DNA测序技术的发展史之——第一代测序技术

DNA测序技术的发展史之——第一代测序技术 2016-11-19 15:55:42 | 分类: 默认分类 [转载] 1953年,沃森和克里克发现了DNA的双螺旋结构,随后,分子生物学研究发展迅速。20世纪70年代,DNA测序技术发明。2001年&#xff…

DNA 测序技术的发展:第三代测序法

本文作为DNA测序的最终章,就和大家聊一聊最新一代的DNA测序技术。不相同于上两篇文章中提到的桑格法测序和SBS高通量测序,小编并没有给第三代测序法一个简单的概括性命名。原因是第三代测序的发展方向太多,不好直接概括为某一特定方法。具体来…