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

article/2025/8/16 0:02:16

通常 Wi-Fi 有四种模式,不同的 Wi-Fi 设备可能支持其中一种或几种模式,四种模式如下:
SoftAP:access point,一种将无线设备连接到一个网络的设备,可以理解为无线路由。
STA:station,无线设备客户端,必须连接上一个 AP 才能使用。
DIRECT:Wi-Fi 直连,也称 p2p 模式。
CONCURRENT:同时支持 AP、STA 两种模式。
wifi_project 开发包中支持这几款 Wi-Fi,分别是 Realtek rtl8188ftv、Realtek rtl8188eus、Realtek rtl8189ftv、Mediatek mt7601u、Ampak ap6181(Broadcom BCM43362模组)、ap6212/ap6212a/ap6214a(Broadcom BCM43438 模组)和ap6255(Broadcom BCM43455 模组)。其中 rtl8188ftv、rtl8188eus 和 mt7601u 为 USB 接口, rtl8189ftv、ap6181、ap6212、ap6212a、ap6214a、ap6255 为 SDIO 接口。wifi_project 开发包仅支持 SoftAP 和 STA 模式。
1 内核配置
1.1 配置 CFG80211
CFG80211 是内核中 WiFi 驱动和用户态进程的标准接口,在 CFG80211 出现之前是WEXT,现在越来越多的使用 CFG80211,WiFi Direct 功能只有 CFG80211 才支持。
进入 Network support->Wireless,设置 cfg80211 和 mac80211 为 M,如下图所示。
CFG80211 配置
在这里插入图片描述
1.2 配置 Wireless Extension
WEXT 是内核中 WiFi 驱动和用户态进程的标准接口,调试工具 iwconfig、iwlist、iwpriv 需要使用该接口。如果没有配置改接口,有些驱动会有编译错误。
WEXT 在内核配置中没有单独的配置项,只能通过打开依赖它的配置项来间接打开。配置了 CFG80211 后,进入 Device Drivers->Network device support->Wireless LAN,设置 USB ZD1201 based Wireless device support 为 M。如下图所示。
Wireless Extension 配置
在这里插入图片描述
如果找不到这项配置,需要先配置好 USB 再来配置该选项。
1.3 配置 USB 和 SDIO
请参考《外围设备驱动操作指南》中的 USB 和 SDIO 操作指南。
** rtl8189ftv、ap6181、ap6212、ap6212a、ap6214a 的接口是 SDIO2.0,请设置 SDIO时钟为 50MHz 左右,ap6255 的接口是 SDIO3.0,请设置SDIO 时钟为 150MHz 左 右。
** kernel 默认的 SDIO2.0 的 IO 电压为 3.3V,如果给 WiFi 模块的 IO 电压为 1.8V,需要修改 SDIO 驱动,将 IO 电压切换到 1.8V。
1.4 配置 IPv6
使用 ap6181、ap6212、ap6212a、ap6214a、ap6255 时,不配置 IPv6 会导致驱动运行错 误,所以需要配置 IPv6。使用其他四款 WiFi 无需配置该项。
进入 Network support->Networking options,设置 The IPv6 protocol 为 y。如下图所示。
Ipv6 配置
在这里插入图片描述
1.5 SDIO 中断配置
Kernel 默认没有开启 SDIO 中断,使用 rtl8189ftv 时需要将 SDIO 中断打开,开启方法,如 Hi3519V101:文件 arch/arm/boot/dts/hisi-hi3519v101.dtsi,在 WiFi 对接的 SDIO 端口属性中增加:cap-sdio-irq。
注意
配置并编译完内核后,需要基于新的内核重新编译 WiFi 驱动,否则 WiFi 驱动在运行时会出现空指针或找不到内核符号错误。

2.1 配置 wifi_project 开发包
wifi_project 在编译前需要配置交叉编译环境,修改顶层 Makefile 中的
WIFI_DEVICE、CROSS_COMPILE 和 KERNEL。

  • 交叉编译工具链
    编译时需要的交叉编译工具,例如 arm-hisiv500-linux-、arm-hisiv600-linux-等。
    如:ARCH := arm
    CROSS_COMPILE := arm-hisiv500-linux-
  • WIFI_DEVICE
    希望编译的 Wi-Fi 设备名称,支持的 WiFi 设备见 Makefile 文件中的注释。
    如:WIFI_DEVICE := sdio_ap6xxx ap6181、ap6212、ap6212a、ap6214a、ap6225 都配置为 sdio_ap6xxx。
  • KERNEL
    编译 Wi-Fi 驱动时所指定的内核路径,在编译 Wi-Fi 驱动时,必须指定内核路径,
    注意内核一定要已经编译过的。
    如:KERNEL := /home/work/linux-3.18.y 配置完后就可以进行编译了,在 wifi_project目录下执行 make all,会自动编译驱动和工具,make driver 只编译驱动,make tools 只编译工具。

生成的驱动放在 wifi_project/out/kmod 目录下,工具放在 wifi_project/out/tools 目录下,主要包括 iwconfig、iwlist、iwpriv、wpa_cli、wpa_supplicant、hostapd 等,生成的库文 件放在 wifi_project/out/lib 目录下。

3.1 载入驱动文件
编译后驱动会生成在 wifi_project/out/kmod 目录下,拷贝所需的驱动到单板中。
各个 WiFi 的驱动文件如下:
ap6181/ap6212/ap6212a/ap6214a/ap6255
cfg80211.ko、bcmdhd.ko
cfg80211.ko 文件请在 kernel 的 net/wireless 目录下拷贝。
驱动在单板上的目录不重要,比如可以放在/kmod 目录。
3.2 载入 firmware 文件
如果要使用 Broadcom 的 ap6181 芯片,请执行如下操作:
在单板上建立目录/etc/firmware,将 wifi_project/firmware/sdio_ap6181 文件夹下的
固件文件 fw_bcm40181a2.bin、fw_bcm40181a2_apsta.bin 和 nvram.txt 下载到单板
此目录下。ap6212/ap6212a/ap6214a/ap6255 请拷贝 wifi_project/firmware 对应目录 的 firmware 和 nvram 文件。
3.3 载入工具
将 wifi_project/out/lib 目录下的 libnl-genl.so.2.0.0、libnl.so.2.0.0 拷贝到单板的/lib
目录。进入单板/lib 目录,创建这两个文件的软链接:
ln –s libnl-genl.so.2.0.0 libnl-genl.so.2
ln –s libnl.so.2.0.0 libnl.so.2
拷贝 wifi_project/out/tools 目录下的 iwconfig、iwlist、iwpriv、iperf 拷贝到单板的
/sbin 目录下。这几个是调试工具,实际使用时可以不用拷贝这几个文件。
STA 模式需要将 wifi_project/out/tools 目录下的 wpa_supplicant、wpa_cli 拷贝到单板的/sbin 目录下。
AP 模式需要将 wifi_project/out/tools 目录下的 hostapd 拷贝到单板的/sbin 目录下。
Broadcom WiFi 除了使用 wpa_supplicant 和 hostapd 来配置外,还有一种方式是采 用 wl 工具,这种情况下需要将wifi_project/out/tools 目录下的 wl 拷贝到单板的/sbin 目录下。
工具拷贝到单板后,需要修改工具的可执行权限,如:
chmod a+x wpa_supplicant
3.4 wpa_supplicant.conf 文件
wpa_supplicant.conf 是启动 wpa_supplicant 进程时需要使用到的配置文件。可以在单板
上新建一个,目录不重要,比如放在/etc/Wireless 目录下。文件内容如下:
ctrl_interface=/var/wpa_supplicant 也可以将 sample 目录下的 wpa_supplicant.conf 拷贝到/etc/Wireless 目录下。
3.5 hostapd.conf 文件
hostapd.conf 是启动 hostapd 进程时需要使用到的配置文件。可以在单板上新建一个,
目录不重要,比如放在/etc/Wireless 目录下。文件内容请参考hostapd 配置和启动SoftAP。也可以将 sample 目录下的hostapd.conf 拷贝到/etc/Wireless 目录下。
3.6 udhcpd.conf 文件
udhcpd.conf 文件是 SoftAP 模式下 DHCP server 需要使用到的配置文件。在wifi_project/sample 目录下拷贝 udhcpd.conf 到单板目录下,目录不重要,比如放在/etc/Wireless 目录下。
3.7 entropy.bin 文件
entropy.bin 文件是随机数种子文件,hostapd 进程配置带加密的 SoftAP 模式时需要使用。在 wifi_project/sample 目录下拷贝 entropy.bin 到单板目录下,目录不重要,比如放 在/etc/Wireless 目录下。
…暂时更新到这
点赞继续更新


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

相关文章

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高通量测序,小编并没有给第三代测序法一个简单的概括性命名。原因是第三代测序的发展方向太多,不好直接概括为某一特定方法。具体来…

重测序专题(一)| 一文了解测序技术的发展

全基因组重测序(Whole-genome re-sequencing),就是对已有参考基因组的物种个体进行再次测序。它可以对单独个体,也可以对群体进行研究。运用全基因组重测序手段,在医学上我们可以提供个性化、精准化医疗,在…

第四代测序技术(纳米孔测序技术)

第四代测序技术(纳米孔测序技术) ​ 纳米孔测序技术(又称第四代测序技术)是最近几年兴起的新一代测序技术。目前测序长度可以达到150kb。这项技术开始于90年代,经历了三个主要的技术革新:一、单分子DNA从纳…

理解高通量测序技术和单细胞测序技术(自用)

首先明确单细胞测序技术不一定是高通量的,有单细胞测序技术,高通量测序技术,包括高通量测序技术在内的所有高通量技术,用于单细胞测序的高通量技术。 如果我们要从技术层面理解单细胞测序并分析其优势,就必然绕不开对“…

【单细胞测序】一、单细胞测序技术总结

文章目录 一、 单细胞测序技术简介二、单细胞测序优势三、单细胞测序原理 一、 单细胞测序技术简介 **单细胞测序技术(single cell sequencing)**是指在单个细胞水平上,对基因组、转录组、表观组进行高通量测序分析的一项新技术,…

Hi-C 测序技术(图解详解)

文章目录 一、介绍二、原理及步骤三、三维基因组检测技术比较1、C技术3C(一对一)4C(一对多)5C(多对多)Hi-C(全部互作) 2、基于免疫沉淀技术ChIP-loopChIA-PET 四、总结 一、介绍 Hi…