爱科微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. 在存储芯片领域,中国 ...
随机推荐
- Uncaught SyntaxError: The requested module ‘/node_modules/.vite/vue-router.js?v=2f0f3daf’ does not provide an export named ‘VueRouter’
Uncaught SyntaxError: The requested module '/node_modules/.vite/vue-router.js?v=2f0f3daf' does not p ...
- liunx下安装Nginx
Linux下nginx的安装以及环境配置 https://blog.csdn.net/qq_42815754/article/details/82980326 第一步:下载nginx压缩包 在这里可以 ...
- 每天那么多工作,我为什么能做到 "不忘事" ?
大家好,我是程序员鱼皮. 我相信很多朋友都遇到过丢失工作.或者忘记事情的情况,尤其是事情一多,就更容易遗漏:而如果在工作中你漏掉了某项任务,需要上级或同事重复提醒你,是很影响别人对你的印象的. 那么如 ...
- Windows 查看当前登录用户名
使用 PowerShell 输入 whoami,PowerShell 将以 hostname\username 的方式输出主机名和用户名: $ whoami hostname\username 使用 ...
- 如何选择 Linux 发行版
简介 要建立云服务器,首先需要安装操作系统.在现代环境中,几乎所有情况下都是指 Linux 操作系统.从历史上看,Windows 服务器和其他类型的 Unix 在特定的商业环境中都很流行,但现在几乎每 ...
- 解密Prompt系列37. RAG之前置决策何时联网的多种策略
之前我们分别讨论过RAG中的召回多样性,召回信息质量和密度,还有calibration的后处理型RAG.前置判断模型回答是否要走RAG的部分我们之前只提及了自我矛盾和自我拒绝者两个方案.这一章我们再补 ...
- TypeScript 高级教程 – 把 TypeScript 当编程语言使用 (第二篇)
前言 上一篇, 我们提到, TypeScript 进阶有 3 个阶段. 第一阶段是 "把 TypeScript 当强类型语言使用", 我们已经介绍完了. 第二阶段是 "把 ...
- Angular – ESLint
介绍 Angular wrap 了一层 ESLint, 定义了一些 best practice guide. 这篇说说如何 setup 它. 这个 ESLint 并不是 under Angular T ...
- POJ-3176 Cow Bowling(基础dp)
The cows don't use actual bowling balls when they go bowling. They each take a number (in the range ...
- 普元中间件Primeton AppServer6.5部署SuperMap iServer
本文使用Windows环境普元中间件Primeton AppServer6.5(以下简称PAS)部署SuperMap iServer 一.部署前准备 本文使用SuperMap iServer 11.0 ...