如果有两个 dkms 模块,我该如何卸载?

如果有两个 dkms 模块,我该如何卸载?

我有 2 个相同版本的 dkms 模块:

$ dkms status
rtl8812AU, 4.3.14, 4.4.0-45-generic, x86_64: installed
rtl8812AU, 4.3.14, 4.4.0-47-generic, x86_64: installed

当我尝试时,dkms uninstall -m rtl8812AU -v 4.3.14第二个被卸载了。我该如何卸载第一个?谢谢!

答案1

要删除所有内核的模块,您可以运行

sudo dkms remove rtl8812AU/4.3.14 --all

答案2

你没有两个 DKMS 模块。你有为以下项目构建并安装 DKMS 模块不同的内核版本。

根据经验,除非有特殊原因,否则不应手动卸载仍安装的内核的 D​​KMS 模块。(无需手动卸载通过包管理器删除的内核的模块,因为 DKMS 已经通过包删除挂钩处理了该问题 - 假设内核已正确打包。)


如果你确实想卸载该模块特别的内核,你可以参考dkms(8)手动的

-k <kernel-version>/<arch>

执行操作的内核和架构。您可以在命令行上指定多个内核版本/架构对,方法是-k使用不同的内核版本和架构重复该参数。但是,并非所有操作都支持多个内核版本(在这种情况下会出错)。架构部分可以省略,DKMS 会假定您希望它是当前正在运行的系统的架构。

因此,卸载内核相关模块的命令4.4.0-45-generic是:

dkms uninstall -k 4.4.0-45-generic rtl8812AU

您可以省略模块版本,因为无论如何您都无法为同一个内核安装模块的多个版本。

相关内容