爱科微AIC8800D80P Wi-Fi6模块驱动移植
1. 简介
开发环境
Ubuntu20.04目标平台:瑞芯微
RK356X目标平台内核版本:
4.19.234wifi模块型号:
AIC8800D80P Wi-Fi6/BT5.0

2. 硬件
wifi模块的PID:VID=a69c:8d80此模块挂在
RK356X的PCIE接口上
01:00.0 Class 0280: a69c:8d80Class 0280: 表示网络控制器(通常是无线网卡)a69c:8d80: 是供应商和设备的 ID,具体的设备信息可以通过这些 ID 查询。
00:00.0 Class 0604: 1d87:3566Class 0604: 表示 PCI 桥(用于连接不同的 PCI 总线)1d87:3566: 是供应商和设备的 ID,用于标识具体的制造商和设备
3. 驱动编译
从厂家处获取驱动源码,源码结构如下

PCIE/driver_fw/driver/aic8800目录下存放的就是驱动源码

PCIE/driver_fw/fw/aic8800D80目录下存放着安装驱动时依赖的固件

修改
Makefile指定目标平台为瑞芯微平台,修改
Platform support list如下

修改瑞芯微平台相关配置如下,指定内核源码路径和交叉编译工具链,按实际情况进行修改

修改源码
aicwf_pcie_api.c的第232行,解决编译报错问题

make编译,得到驱动文件aic8800D80_fdrv.ko,大约12M大小

4. 安装wifi固件
厂家已经提供了编译好的wifi固件

将固件拷贝到RK3566开发板的
/lib/firmware/aic8800D80/路径下,路径必须正确,如需将固件放在其它路径,需要修改驱动源码,在此就不展开了

5. 安装驱动
将编译好的驱动拷贝到开发板上,
insmod安装root@RK356X:/tmp# insmod aic8800D80_fdrv.ko
驱动加载时的
dmesg日志信息

查看wifi对应的
interface

6. 将wifi配置成AP模式
- 参考我的另一篇文章
爱科微AIC8800D80P Wi-Fi6模块驱动移植的更多相关文章
- 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植
为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...
- MT7601 WG209模块驱动移植,并连接路由器
驱动位置: https://github.com/Aplexchenfl/WG209_MT7601 下载之后,查看 Makefile 在这里,我修改了 kernel的位置以及编译器的版本 执行 mak ...
- 如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- 如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- linux模块驱动之led(ioremap)
一:led内核驱动 (1)在编写led内核驱动时,我们首先要进行内核裁剪,因为友善之臂将LED灯的驱动默认加载到内核中,所以编写模块驱动程序前就要先把原先的LED灯驱动裁剪掉: led驱动在源码里面的 ...
- 微控工具xp模块-开发版[微信(wechat)二次开发模块]
http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方 ...
- 国产芯片任重道远 国科微SSD主控芯片的“追赶之路”(不能只提供一颗芯片,而是要将芯片、国密算法、固件Firmware、BIOS和操作系统紧密联系在一起,变成完整解决方案交给行业用户,才能真正体现自身的价值)
集微网消息,“中国芯”战略之路道阻且长,踏入这个赛道的攻坚者们需要十年如一日的技术突破,需要集合产业势能,共同协作,方能建立中国核心技术真正的竞争力. 国产化之路任重道远,SSD芯片初见成效 信息时代 ...
- Springboot基于enable模块驱动
enable作为模块驱动在Spring Farmework.Spring Boot.Spring Cloud使用,都是通过注解的形式以@enable作为前缀,一些常用注解如 | 框架 | 注解 | 模 ...
- web自动化测试-模块驱动测试实例和数据驱动测试实例
一.模块驱动测试实例 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起 from selenium import webdri ...
- [转帖]国科微发布纯正国产SSD主控 龙芯IP内核,速度可达500MB/s
国科微发布纯正国产SSD主控龙芯IP内核,速度可达500MB/s https://www.expreview.com/68071.html 自主内核 龙芯处理器. 2019.4. 在存储芯片领域,中国 ...
随机推荐
- 智能指针相关:enable_shared_from_this()在开发中的常见应用
类中使用shared_ptr()的问题 当我们先定义一个指针,然后再用这个指针构造两个智能指针 int main() { int* pt = new int(); std::shared_ptr< ...
- 虚拟文件系统VFS-片段一
文件系统类型 基于磁盘的文件系统 如FAT.EXT4 虚拟文件系统 如proc 网络文件系统 顾名思义,网络文件系统还将网络通信封装起来,这意味可以直接通过通信访问另一台设备的文件系统. man fs ...
- Openharmony 跑 CV 应用
最近有个项目,老同学让帮忙验证一个在ARM 板上跑 OpenHarmony,然后再集成一个CV算法上去,写这个文章主要是整理一下思路.如果有思路不对的地方,也烦请指出. 1. 个人做纯软件比较多,所以 ...
- SQL SEVER CDC 启动和关闭 操作说明
什么是变更数据捕获 (CDC)? 变更数据捕获使用 SQL Server 代理记录表中发生的插入.更新及删除. 因此,它使得可以通过关系格式轻松使用这些数据更改. 将为修改的行捕获将这些更改数据应用到 ...
- 全网最适合入门的面向对象编程教程:47 Python函数方法与接口-回调函数Callback
全网最适合入门的面向对象编程教程:47 Python 函数方法与接口-回调函数 Callback 摘要: 回调函数是编程中一种非常常见的模式,用于将函数作为参数传递给其他函数或方法.这种模式在 Pyt ...
- 【转】git常用操作
创建版本库 git clone url 克隆远程版本库 git init 初始化本地版本库 配置 git config --global user.name 'chengcp' 配置global级别的 ...
- 游览器 reflow
refer: https://juejin.im/post/5a9372895188257a6b06132e reflow 伤性能. 所以要闪. 有几个频密触发的东西要留意. 1. scroll 2. ...
- Mininet安装记录
安装环境: Ubuntu虚拟机版本:14.04 Mininet版本:2.3.1b1 1.更改软件镜像源 在设置中进行如下操作: 选择国内的镜像站点,如阿里云. 点击关闭后,在弹出的窗口中点击重新载入, ...
- 2019牛客暑期多校训练营(第四场)J-free(分层图最短路)
>传送门< 题意:给你n个城市,m条道路,经过每一条要花费这条路的代价,现给你k个机会,使得最多k条路的代价为0,问从起点s到终点t花费的最少代价 思路:分层图最短路经典裸题 方法一 Co ...
- 普元中间件Primeton AppServer6.5部署SuperMap iServer
本文使用Windows环境普元中间件Primeton AppServer6.5(以下简称PAS)部署SuperMap iServer 一.部署前准备 本文使用SuperMap iServer 11.0 ...