本文记录了在 Ubuntu 22.04(Linux 6.8 内核)系统下,为 COMFAST CF-972AX(RTL8852CU 芯片)双频 WiFi 6 无线网卡安装驱动的完整避坑指南。针对官方驱动编译报错、旧教程硬件版本不匹配,以及高版本内核与新版 GCC 严格警告导致的编译中断(如 drvwrap 结构体移除、Fatal Error)等痛点,文章提供了从 GitHub 拉取适配源码、修改 Makefile 绕过编译检查,以及修改配置文件开启 USB 3.0 满速模式的最终解决方案。
最近翻出来个无线WIFI模块,COMFAST CF-972AX 双频 WiFi 6 无线网卡。我的主机正好搬到实验室楼下,可以用得上,因为有线连接网速太慢了,只有100M宽带。
插上电脑,果不其然,毫无反应。这可是 Ubuntu 22.04.5 LTS,内核都已经飙到 6.8 了,居然还不免驱。没办法,只能撸起袖子自己装驱动了。本以为这是一场 10 分钟结束的战斗,没想到却硬生生演变成了一部“踩坑血泪史”。
一开始我是在COMFAST官网找的驱动下载下来进行编译安装,一路报错。
然后,我在网上搜了一篇看起来非常靠谱的“通用教程”,标题写着涵盖各种 CF 系列网卡。我二话不说,跟着教程一顿 git clone,拉取了 rtl88x2bu 驱动,并用 DKMS 成功编译安装。
整个过程异常丝滑,连报错都没有。我满心欢喜地敲下 iwconfig 准备连接 WiFi,结果终端冷冷地拍给我两行字:
lo no wireless extensions.
eno1 no wireless extensions.
网卡呢???
不信邪的我敲下了 lsusb,结果瞬间破案: Bus 001 Device 011: ID 0bda:c832 Realtek Semiconductor Corp. 802.11ax WLAN Adapter
仔细一看才发现,那篇教程是给 CF-812AC (RTL8812BU) 写的,而我的 CF-972AX 是一块货真价实的 WiFi 6 网卡,芯片是 RTL8852CU!我非常成功地给电脑装上了一个完美的驱动,可惜这个驱动根本不认识我的硬件。
装驱动前,务必先用 lsusb 查硬件 ID,别看着长得像就盲目上车。
清理掉装错的驱动后,我找来了正确的源码。心想这下稳了吧?结果 make 刚跑起来,满屏的 Error 直接糊在了我脸上。
细看日志,主要死在两个地方:
- 结构体大变样:Linux 6.8 内核重构了 USB 子系统,删除了
usb_driver里的drvwrap成员。旧驱动代码还在傻傻地给它赋值,编译器当场罢工。 - 极度严格的警告:新版 GCC 把指针类型不兼容、未声明函数原型等 Warning(警告)统统当成了 Fatal Error(致命错误)来处理,导致编译直接中断。
经过一番与编译器的“搏斗”,我终于摸索出了一套在 Ubuntu 22.04 (Kernel 6.8) 下完美安装 RTL8852CU 驱动的终极方案。如果你也是同款网卡,直接抄作业就行。
先装好开发工具链,老生常谈了:
sudo apt update
sudo apt install -y build-essential dkms git bc linux-headers-$(uname -r)获取靠谱的源码,直接从 GitHub 拉取网友维护的较新版本,比他们厂商官网带的老掉牙驱动好用多了:
cd ~
git clone https://github.com/ajax936/rtl8852cu.git
cd rtl8852cu为了防止新版编译器把警告当错误导致中断,我们需要在 Makefile 里做点手脚:
make clean
# 暴力清除 Makefile 自带的 -Werror
sed -i 's/-Werror//g' Makefile
# 追加忽略指针警告的参数,保平安
echo 'EXTRA_CFLAGS += -Wno-error=incompatible-pointer-types' >> Makefile
echo 'ccflags-y += -Wno-error=incompatible-pointer-types' >> Makefile
echo 'EXTRA_CFLAGS += -Wno-error' >> Makefile
echo 'ccflags-y += -Wno-error' >> Makefile最后借助 KCFLAGS 环境变量,让内核 Kbuild 系统彻底无视警告,一路绿灯:
# 多核编译,飞一般的感觉
make -j$(nproc) KCFLAGS="-Wno-error"
# 安装到系统内核
sudo make install
sudo depmod -a
sudo modprobe 8852cu如果你走到这一步,恭喜你,右上角应该已经出现 WiFi 图标了! 但是别急,驱动默认使用的是 USB 2.0 模式,这怎么对得起我们买的 WiFi 6 网卡?我们需要修改配置文件来解锁全速。
找到这一行:
options 8852cu rtw_switch_usb_mode=0
把末尾的 0 改成 1,变成:
options 8852cu rtw_switch_usb_mode=1
按下 Ctrl + O,回车保存,再按 Ctrl + X 退出。
重启电脑后,你就能享受满速的 WiFi 6 速度了。
Linux 就是这样,它不会惯着你,但在报错的背后,总有底层的逻辑可循。希望这篇记录能帮到你!
赞赏作者


如果觉得我的文章对你有用,请随意赞赏!





























