ubuntu网卡失效
- [Tenda WiFi6 网卡(AIC8800DC)驱动失效修复记录](#Tenda WiFi6 网卡(AIC8800DC)驱动失效修复记录)
-
- 一、故障现象
- 二、排查过程
-
- [1. 确认 USB 设备被识别(排除硬件问题)](#1. 确认 USB 设备被识别(排除硬件问题))
- [2. 确认没有驱动绑定到设备](#2. 确认没有驱动绑定到设备)
- [3. 确认驱动模块缺失](#3. 确认驱动模块缺失)
- [4. 用启动记录对时间线,确认根因](#4. 用启动记录对时间线,确认根因)
- 三、根因
- 四、修复步骤
-
- [1. 编译驱动](#1. 编译驱动)
- [2. 安装模块 + 固件 + udev 规则(需 root)](#2. 安装模块 + 固件 + udev 规则(需 root))
- [3. 验证](#3. 验证)
- 五、以后再遇到怎么办
-
- [方式 A:临时修复(本次采用)](#方式 A:临时修复(本次采用))
- [方式 B:一劳永逸(推荐,尚未实施)](#方式 B:一劳永逸(推荐,尚未实施))
- 六、涉及文件位置备忘
Tenda WiFi6 网卡(AIC8800DC)驱动失效修复记录
日期:2026-09-19
设备:Tenda AIC8800DC(USB ID
2604:0014)系统:Ubuntu 22.04,内核
6.8.0-138-generic
一、故障现象
- 网卡在 Windows 上正常,Ubuntu 上此前也能正常使用
- 2026-09-18 晚上重启后,WiFi 突然消失
- 网卡 USB 已插入,但网络设置里看不到无线网卡
二、排查过程
1. 确认 USB 设备被识别(排除硬件问题)
bash
lsusb
# Bus 001 Device 005: ID 2604:0014 Tenda AIC8800DC ← 设备正常被识别
2. 确认没有驱动绑定到设备
bash
lsusb -t
# Port 9: Dev 5, If 0, Class=Vendor Specific Class, Driver=, 480M
# ↑ Driver 为空 = 没有任何驱动接管
注意:此时系统里显示"已连接"的
enx..."有线连接"其实是手机 USB 共享网络(rndis_host),与网卡无关,容易误判。
3. 确认驱动模块缺失
bash
lsmod | grep -i aic # 无输出,模块未加载
modinfo aic8800_fdrv # ERROR: Module not found
find /lib/modules -name 'aic8800*'
# /lib/modules/6.2.0-26-generic/kernel/drivers/net/wireless/aic8800/aic8800_fdrv.ko
# ↑ 模块只存在于【旧内核】6.2.0-26 目录下,当前内核 6.8.0-138 没有
4. 用启动记录对时间线,确认根因
bash
last reboot | head
# reboot system boot 6.8.0-138-generi Sun Sep 20 00:06 still running
# reboot system boot 6.8.0-138-generi Sat Sep 19 16:11 - 16:52
# reboot system boot 6.2.0-26-generic Fri Sep 18 12:35 - 22:30
# ↑ 9月18日白天还在旧内核(驱动正常)
# 18日晚重启进入新内核后驱动失效
三、根因
系统内核自动升级(6.2.0-26 → 6.8.0-138)后,该驱动没有跟着为新内核编译。
- 此驱动是外置源码编译模块(
make装到/lib/modules/<内核版本>/...),
没有注册 DKMS (/usr/src/AIC8800里没有dkms.conf) - 所以内核更新后模块不会自动重编译,新内核下驱动"消失"
四、修复步骤
1. 编译驱动
bash
cd ~/wifi6-adapter-linux-driver-V1.0.1.10/Appendix/linux_driver_sourcecode/aic8800_linux_drvier/drivers/aic8800
make
遇到的坑 :编译报 gcc-12: not found。Ubuntu 内核头文件固定要求 gcc-12
(内核编译选项 -ftrivial-auto-var-init=zero 只有 gcc-12+ 支持,系统里的
gcc-11 无法绕过)。
bash
sudo apt install -y gcc-12 # 装好后重新 make,一次通过
编译产物:
aic8800_fdrv/aic8800_fdrv.ko(无线网卡驱动)aic_load_fw/aic_load_fw.ko(固件加载)
2. 安装模块 + 固件 + udev 规则(需 root)
bash
sudo bash -c 'set -e; cd ~/wifi6-adapter-linux-driver-V1.0.1.10/Appendix/linux_driver_sourcecode/aic8800_linux_drvier/drivers/aic8800; make install; cd ../..; bash install_setup.sh; modprobe aic_load_fw; modprobe aic8800_fdrv'
坑:
install_setup.sh没有可执行权限,直接./install_setup.sh会报"权限不够",要用
bash install_setup.sh方式运行。
该命令依次完成:
make install------ 两个 .ko 装入当前内核的模块目录并depmodinstall_setup.sh------ 复制固件(fw/aic8800D80、fw/aic8800DC)到
/lib/firmware/,安装 udev 规则aic.rulesmodprobe加载两个模块
3. 验证
bash
lsmod | grep aic # aic8800_fdrv / aic_load_fw 已加载
nmcli device status # 出现 wlxc83a351aaeb8 (wifi),自动连回 XJTU_STU1
ping -c 3 -I wlxc83a351aaeb8 223.5.5.5 # 3/3 通,延迟约 24ms
五、以后再遇到怎么办
同样的故障一定会在下次内核更新后复现(WiFi 消失)。两种处理方式:
方式 A:临时修复(本次采用)
重复上面"第四节"的步骤即可(gcc-12 装过就不用再装,直接 make 会用缓存,
很快)。也可以进源码目录后只跑:
bash
cd Appendix/linux_driver_sourcecode/aic8800_linux_drvier/drivers/aic8800
make && sudo make install && sudo modprobe aic8800_fdrv
方式 B:一劳永逸(推荐,尚未实施)
把驱动注册为 DKMS 模块 ,以后内核更新时自动重编译,彻底免维护。
需要:在 /usr/src/AIC8800-<版本>/ 下补一个 dkms.conf,然后
dkms add / dkms build / dkms install 注册。
六、涉及文件位置备忘
| 内容 | 路径 |
|---|---|
| 驱动源码 | ~/wifi6-adapter-linux-driver-V1.0.1.10/Appendix/linux_driver_sourcecode/aic8800_linux_drvier/ |
| 已安装到 /usr/src 的源码副本 | /usr/src/AIC8800/ |
| 模块安装位置 | /lib/modules/<内核版本>/kernel/drivers/net/wireless/aic8800/ |
| 固件 | /lib/firmware/aic8800D80/、/lib/firmware/aic8800DC/ |
| udev 规则 | /etc/udev/rules.d/aic.rules |
| 官方安装指南 PDF | Linux System Quick Installation Guide.pdf、Appendix/Linux System Source Code Installation Guide.pdf |