ubuntu网卡失效

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 方式运行。

该命令依次完成:

  1. make install ------ 两个 .ko 装入当前内核的模块目录并 depmod
  2. install_setup.sh ------ 复制固件(fw/aic8800D80fw/aic8800DC)到
    /lib/firmware/,安装 udev 规则 aic.rules
  3. modprobe 加载两个模块

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.pdfAppendix/Linux System Source Code Installation Guide.pdf
相关推荐
律宏阔1 小时前
VMware 能识别 USB 设备,但无法连接(灰色)
linux
Rabitebla1 小时前
【Linux系统编程】指令(三):创建、删除、复制、移动、看内容
linux·数据结构·c++·算法
AR-26710-1 小时前
Linux Day9——复习第一部分(实操产出)
linux
天天喝旺仔3 小时前
Linux 性能排查实战:用 perf、strace 与火焰图定位 CPU、内存与 IO 瓶颈
linux·性能优化·运维开发
LuminousCPP3 小时前
Linux系统编程(二):从目录树到命令执行|路径、环境变量、alias 与文件操作入门
linux·经验分享·笔记
第十人i3 小时前
Linux 系统初始化配置清单:新服务器快速部署
linux·服务器
LongRunning3 小时前
【Linux】RK3568-OpenCV+YOLO(七)
linux
j7~3 小时前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
傲世仙尊4 小时前
设计者的取舍-路径fork的诞生与全局文件队列
linux