回到 DKMS 工作的内核版本

回到 DKMS 工作的内核版本

我有一台较新的 HP 笔记本电脑,配有 Realtek RTL8821CE 无线网卡。安装 Ubuntu 20.04 时,它没有立即工作,因此我按照说明操作这里成功了,尽管这些说明据说仅限于 Ubuntu 18.04。快进到今天:我例行运行“sudo apt-get autoremove”,并注意到 DKMS 发出一条消息,说模块正在卸载。我怀疑这会在下次重新启动时关闭我电脑的无线连接功能,而且确实发生了这种情况。我真的不确定为什么卸载旧内核等会促使 DKMS 完全删除我正在使用的模块,但我尝试使用我当前的内核(我相信是“linux-modules-5.4.0-37-generic 5.4.0-37.41”)再次按照@ThomasAFink 的回答中的步骤操作。这些步骤有效,但 DKMS 以一条消息结束,内容为:

好消息!8821ce.ko 的模块版本 v5.5.2_34066.20200325_COEX20180712-3232 与内核 5.4.0-37-generic 中已找到的模块完全匹配。DKMS 不会替换此模块。您可以通过指定 --force 来覆盖。

我猜想恢复到被“apt-get autoremove”删除的内核版本可能会有用,所以我按照这些步骤确定它是 5.4.0-31-generic,然后启动到该内核再次执行相同的步骤。但是,DKMS 给了我同样的消息,WiFi 仍然无法工作。我有一个备份,Ubuntu 18.04 安装在同一台计算机上,它仍然支持使用 tomaspinho 驱动程序的 Wifi。但是,恢复到 18.04 会带来很多麻烦 - 其中包括我经常使用的旧版 Emacs - 如果可能的话,我想在 20.04 中解决这个问题。有什么想法吗?

请求的编辑:dkms status 的输出是:

rtl8821ce,v5.5.2_34066.20200325,5.4.0-31-通用,x86_64:已安装

我无法通过 chroot 获取“uname -r”的输出,但希望我已经清楚地说明了我正在使用哪个内核版本。

要求的编辑: 这里这是我今天早上做的一个日志。这个日志有 uname、dkms status 和其他所有内容的输出。如果你想知道 git clone 在没有互联网访问的情况下是如何工作的——我正在将我的手机绑定。

答案1

从您的贴文中我们可以看出,您关注了两个都sudo make install和过程dkms。这就是导致这个信息的原因:

8821ce.ko 的模块版本 v5.5.2_34066.20200325_COEX20180712-3232 与内核 5.4.0-31-generic 中已找到的版本完全匹配。

换句话说,dkms 不会安装它,因为 sudo make install 有已经安装它。

这两种方法是完成同一件事的不同方式;它们不需要混合,而且正如您所见,可能会导致令人困惑的结果。

我建议你这样做:

cd ~/git/rtl8821ce
sudo make uninstall
sudo dkms remove rtl8821ce/v5.5.2_34066.20200325 --all

确认已被删除:

sudo dkms status

它应该什么也不返回。如果是这样,请尝试仅有的流程dkms

sudo dkms-install.sh
sudo modprobe 8821ce

您的无线网络现在应该可以正常工作了。

要为内核版本 xx-37(据我所知,这是最新版本)安装它,请重新启动进入 xx-37 并重复:

cd ~/git/rtl8821ce
sudo dkms-install-sh  

编辑:在我们的聊天中,我们在您的无线信息粘贴中发现了这一点:

0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no

软阻止:是通常意味着在网络管理器中或在设置 > WiFi 中将飞行模式设置为开启。检查并切换两者后,您的无线网络现在可正常工作。

相关内容