【经验总结】Ubuntu 22.04.5 LTS 将内核从5.15.0-140 升级到6.8.0-60后纽曼无线网卡无法使用解决措施

发布于:2025-05-11 ⋅ 阅读:(28) ⋅ 点赞:(0)

问题现象

Ubuntu 22.04.5 LTS 将内核从5.15.0-140 升级到6.8.0-60后纽曼无线网卡无法使用。

纽曼 AC650 无线网卡相关的菜单不显示,无法通过wifi连接网络。

定位过程

通过 lsusb -v 输出 可以确认是 Realtek RTL8821CU 无线网卡(ID 0bda:c811) 已连接到系统,但存在驱动兼容性问题。

尝试手动安装 RTL8821CU 驱动,步骤如下所示:
sudo apt install git dkms build-essential
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
sudo ./dkms-install.sh

发现驱动编译失败,日志如下所示

$ sudo ./dkms-install.sh
About to run dkms install steps...
Creating symlink /var/lib/dkms/rtl8821CU/5.4.1/source -> /usr/src/rtl8821CU-5.4.1

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area...
'make' KVER=6.8.0-60-generic.......

.
........(bad exit status: 2)
ERROR (dkms apport): binary package for rtl8821CU: 5.4.1 not found
Error! Bad return status for module build on kernel: 6.8.0-60-generic (x86_64)
Consult /var/lib/dkms/rtl8821CU/5.4.1/build/make.log for more information.

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area...
'make' KVER=6.8.0-60-generic................(bad exit status: 2)
ERROR (dkms apport): binary package for rtl8821CU: 5.4.1 not found
Error! Bad return status for module build on kernel: 6.8.0-60-generic (x86_64)
Consult /var/lib/dkms/rtl8821CU/5.4.1/build/make.log for more information.
Finished running dkms install steps.

查看驱动编译详细的日志

stevens@StevensSun-Desktop:~/workspace_github/rtl8821CU$ sudo grep -i error /var/lib/dkms/rtl8821CU/5.4.1/build/make.log -A5
/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.c:2618:16: error: implicit declaration of function ‘prandom_u32’; did you mean ‘get_random_u32’? [-Werror=implicit-function-declaration]
2618 | return prandom_u32();
| ^~~~~~~~~~~
| get_random_u32
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:243:/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/osdep_service.o] 错误 1
make[2]: *** [/usr/src/linux-headers-6.8.0-60-generic/Makefile:1925:/var/lib/dkms/rtl8821CU/5.4.1/build] 错误 2
make[1]: *** [Makefile:240:__sub-make] 错误 2
make[1]: 离开目录“/usr/src/linux-headers-6.8.0-60-generic”
make: *** [Makefile:2217:modules] 错误 2

原因:Linux 6.8内核移除了prandom_u32()函数,改用get_random_u32()
影响:驱动代码未同步更新,导致编译中断

整体意思就是:RTL8821CU 驱动编译失败的主要原因是内核6.8.0-60-generic与驱动版本5.4.1存在兼容性问题。
既然是与驱动版本5.4.1有兼容性问题,那么是否有最新的驱动?由于无法访问github,通过gitee中转了一下,依然没有发现新的驱动。或许未来某天会有兼容6.x.x.x的补丁之后,再来尝试吧。

基于以上只剩下一条路了,就是将内核版本降到5.x.x.x。

问题根因

Realtek RTL8821CU 无线网卡驱动加载失败,核心问题在于芯片初始化过程中出现硬件兼容性错误。最终确定了是 RTL8821CU 驱动与内核6.8.0-60-generic 存在兼容性问题。

解决方案

将内核内核从6.8.0-60 降级到5.15.0-140。

在实际操作中会遇到一些问题,在这里统一记录下:

1、回滚内核版本

如果是我这种现象,其实5.15.0-140还是在的,不需要再使用如下命令安装一次内核。

sudo apt install linux-image-5.15.0-140-generic
sudo reboot

2、解决重启系统,找不到选择内核版本的菜单问题

默认的ubuntu启动的时候,是看不到选择内核的启动菜单的,需要手动修改grub配置,才行

sudo vim /etc/default/grub

修改如下配置为menu,意思是强制显示菜单。

GRUB_TIMEOUT_STYLE=menu

修改完grub文件,保存一下。
执行如下命令,更新grub 相关配置

sudo update-grub

重启电脑,就会看到启动菜单了,注意,内核选择是在高级选项中,一般是第二个,请根据实际情况选择。

3、将新版本的kernel卸载掉

其实系统启动的时候,并不会自动选择旧的内核,需要我们手动修改grub配置,才能解决。我的情况比较特殊,因为我需要使用这个无线网卡,根本就使用不了6.8.0-60内核,就干脆卸载掉算了。
特别提醒:你一定要明确你当前使用的内核不是 6.8.0-60,否则后边的操作都会问题,由于我也没操作过,如果你遇到了,请告诉我,嘿嘿。
使用如下命令,查询内核的版本

uname -r
#以下内容是执行以上命令后,我的电脑的显示
5.15.0-140-generic

使用如下命令进行卸载目标内核:

sudo apt purge linux-image-6.8.0-60-generic \
               linux-headers-6.8.0-60* \
               linux-modules-6.8.0-60-generic

注意这里,不要使用 如下命令自动卸载内核,他有自己的一套逻辑,保留当前使用的,保留一个最新的,还保留一个临近旧的内核,要保留三个内核,我晕,我就是要卸载掉最新的内核,你这是逗我玩吗?

sudo apt autoremove --purge

执行完后,记得执行如下命令,清理残留配置

sudo update-grub
sudo apt autoremove --purge

备注:如果这一步中有报错,不要怕,反复执行一遍也是可以的。

4、在旧内核上重新安装无线网卡驱动

sudo apt install git dkms build-essential
git clone https://gitee.com/stevens-sun/rtl8821CU.git
cd rtl8821CU
sudo ./dkms-install.sh 

备注:github国内还得靠梯子,使用gitee中转了一下代码,请自行甄别。原始驱动源代码地址:https://github.com/brektrou/rtl8821CU.git

这里一般就会编译和安装成功,如果编译还有问题,请自行问大模型助手。

5、切换到旧内核,发现显示不对,需要重新安装一下跟这个内核匹配的显卡驱动

以下操作仅供参考

sudo apt purge nvidia-*  
sudo apt install nvidia-driver-xxxx

执行第一条命令的时候,注意下是driver的版本号是多少,我的比较老,是470, 就执行如下命令

sudo apt install nvidia-driver-470

执行成功后,重启电脑就OK来。

总结

遇到软件问题不要慌,可以多跟大模型交流一下,我这里使用的事360多纳米AI 大模型 https://bot.n.cn/,你也可以使用其他的大模型,非常方便。


网站公告

今日签到

点亮在社区的每一天
去签到