WiFi6 AIC8800 无线网卡驱动编译经验

WiFi6 AIC8800 无线网卡驱动编译
2024.3.17

  • 系统:Debian GNU/Linux 11 (bullseye)

  • 内核:6.1.0-0.deb11.13-amd64

  • 调整后编译生成的驱动:可以驱动不同网卡厂商的 USB无线网卡

  • 技巧提示:有编译经验、熟悉 Linux 系统的朋友,可以多看几眼附件中,
    在终端下的截图。有技术细节哦!

  • AIC8800 的芯片 ID
    sudo modinfo aic8800_fdrv | grep alias

alias:          usb:v2357p0147d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2604p0014d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2604p0013d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v368Bp88DFd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:vA69Cp88DDd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:vA69Cp88DCd*dc*dsc*dp*icFFiscFFipFFin*
alias:          usb:vA69Cp8801d*dc*dsc*dp*icFFiscFFipFFin*

手上两个 AIC8800 芯片的 USB 无线网卡(AX300, 300M速率):

  • Tenda 腾达 U2 V5 (外置天线。29元左右)
  • Mercury 水星 UX3H (外置天线。29元左右。lsusb 识别为:TP-Link AIC8800)

编译流程:

一、编译
make

二、安装编译好的2个 ko 驱动文件,复制到指定系统目录。

安装完后,会自动执行一个操作
sudo depmod -a $(uname -r)

sudo make install

三、拔下网卡,再插上。或者依次执行以下几组命令:
sudo modprobe cfg80211
sudo modprobe aic_load_fw
sudo modprobe aic8800_fdrv

**(可选步骤)**四、更新 启动镜像文件 initramfs,重新启动后见效。
sudo update-initramfs -u

(特别说明:
对于其它某些 USB 无线网卡芯片的驱动来说,编译、安装后,可以不执行上面“第四步”的操作,就能马上检测到 对应的无线网卡。

但是对于这款芯片型号 AIC8800, 如果不能被正常识别,
建议还是运行下 第四步 的操作,并重启动进入系统。)

五、技术细节说明
打开这两个文件,
/AIC8800/drivers/aic8800/aic8800_fdrv/aicwf_usb.h
/AIC8800/drivers/aic8800/aic8800_fdrv/aicwf_usb.c
查找 并 看懂这几组字符
USB_VENDOR_ID_TENDA (厂商代码)
USB_PRODUCT_ID_TENDA (产品代码1)
USB_PRODUCT_ID_TENDA_U2 (产品代码2)

USB_VENDOR_ID_TP(厂商代码)
USB_PRODUCT_ID_TP(产品代码)

aic8800-2
.


.

沙发