我有 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
Run Code Online (Sandbox Code Playgroud)
当我尝试dkms uninstall -m rtl8812AU -v 4.3.14
卸载第二个时。第一个怎么卸载?谢谢!
Pil*_*ot6 19
要删除所有内核的模块,您可以运行
sudo dkms remove rtl8812AU/4.3.14 --all
Run Code Online (Sandbox Code Playgroud)
Dav*_*ter 12
您没有两个 DKMS 模块。您为两个不同的内核版本构建并安装了一个DKMS 模块。
根据经验,除非有特定原因,否则不应手动卸载仍在安装的内核的 DKMS 模块。(无需为通过包管理器删除的内核手动卸载模块,因为 DKMS 已经通过包删除挂钩处理了这一点——假设内核已正确打包。)
如果你真的想卸载特定内核的模块,你可以参考dkms(8)
手册:
-k <kernel-version>/<arch>
执行操作的内核和架构。通过
-k
使用不同的内核版本和架构重复参数,您可以在命令行上指定多个内核版本/架构对。但是,并非所有操作都支持多个内核版本(在这种情况下会出错)。arch 部分可以省略,DKMS 会假设您希望它是当前运行系统的 arch。
因此,卸载内核相关模块的命令4.4.0-45-generic
是:
dkms uninstall -k 4.4.0-45-generic rtl8812AU
Run Code Online (Sandbox Code Playgroud)
您可以省略模块版本,因为无论如何您都无法为同一个内核安装多个版本的模块。