爱科微AIC8800D80P Wi-Fi6模块驱动移植

1. 简介

  • 开发环境Ubuntu20.04

  • 目标平台:瑞芯微RK356X

  • 目标平台内核版本:4.19.234

  • wifi模块型号:AIC8800D80P Wi-Fi6/BT5.0

2. 硬件

  • wifi模块的PID:VID = a69c:8d80

  • 此模块挂在RK356X的PCIE接口上

    • 01:00.0 Class 0280: a69c:8d80
      • Class 0280: 表示网络控制器(通常是无线网卡)
      • a69c:8d80: 是供应商和设备的 ID,具体的设备信息可以通过这些 ID 查询。
    • 00:00.0 Class 0604: 1d87:3566
      • Class 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安装

    bash 复制代码
    root@RK356X:/tmp# insmod aic8800D80_fdrv.ko
  • 驱动加载时的dmesg日志信息

  • 查看wifi对应的interface

6. 将wifi配置成AP模式

  • 参考我的另一篇文章

https://www.cnblogs.com/zhijun1996/p/18545307