愛科微AIC8800D80P Wi-Fi6模組驅動移植

zhijun發表於2024-11-14

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安裝

    root@RK356X:/tmp# insmod aic8800D80_fdrv.ko
    
  • 驅動載入時的dmesg日誌資訊

  • 檢視wifi對應的interface

6. 將wifi配置成AP模式

  • 參考我的另一篇文章

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

相關文章