DKMS 模块在内核升级时从未正确安装

DKMS 模块在内核升级时从未正确安装

我的系统上安装了多个 DKMS 模块,其中一些模块,其中一些属于相当主要的维护包,例如 Oracle 的 VirtualBox 5。

我发现每次内核升级时,所有 DKMS 模块都会损坏并且不会安装在新内核中。我认为这是我自己的模块中的错误配置,但现在我看到 VirtualBox 也被破坏了,我怀疑它是其他东西。

如何调试 DKMS 未在较新的内核版本中安装模块的原因?

我使用的是内核 3.19,Ubuntu 14.04。

内核升级后dkms status不会输出太多任何内容,这意味着没有任何我的 DKMS 模块已正确安装。

答案1

您错过了当前正在使用的发行版的信息。值得一提的是,VirtualBox 5.x 也没有在 dkms 中正确注册,这意味着在内核更新后,dkms 不会重建这些模块。

为了您提供的有关 DKMS 安装的说明这些步骤只注意模块源安装在/usr/src/<modulename>-<moduleversion>/当前运行的内核(或指定的内核)下,并且该模块是为当前运行的内核构建的。如果启动时没有运行 dkms 服务,则首次启动新内核时不会编译新版本。

应该很容易验证,dkms status第一次启动新内核后,以 root 身份运行时显示的所有模块都应该自动重建如果您安装了该内核的内核头文件。此外,dkms.conf需要指定相关模块的AUTOINSTALL=Ydkms 服务(通常/etc/rc.d/init.d/dkms 适用于较旧的发行版)将在下次启动时重建这些已注册的模块。

您能否检查是否满足每个条件,特别是在启动期间运行的服务将检查 dkms 状态并在必要时构建新模块?它应该被称为dkmsdkms_autoinstaller或类似。

为了进行比较,这是dkms status为多个内核版本安装了多个二进制和源模块时的输出:

[doktor5000@Mageia5]─[16:40:27]─[~] sudo dkms status | sort
broadcom-wl, 6.30.223.271-1.mga5.nonfree, 4.1.12-desktop-1.mga5, x86_64: installed 
broadcom-wl, 6.30.223.271-1.mga5.nonfree, 4.1.13-desktop-2.mga5, x86_64: installed 
broadcom-wl, 6.30.223.271-1.mga5.nonfree, 4.1.8-desktop-1.mga5, x86_64: installed 
nvidia-current, 346.96-1.mga5.nonfree, 4.1.12-desktop-1.mga5, x86_64: installed 
nvidia-current, 346.96-1.mga5.nonfree, 4.1.12-desktop-1.mga5, x86_64: installed-binary from 4.1.12-desktop-1.mga5
nvidia-current, 346.96-1.mga5.nonfree, 4.1.13-desktop-2.mga5, x86_64: installed-binary from 4.1.13-desktop-2.mga5
nvidia-current, 346.96-1.mga5.nonfree, 4.1.8-desktop-1.mga5, x86_64: installed 
nvidia-current, 346.96-1.mga5.nonfree, 4.1.8-desktop-1.mga5, x86_64: installed-binary from 4.1.8-desktop-1.mga5
rtl8192cu-fixes, 1.10, 4.1.12-desktop-1.mga5, x86_64: installed 
rtl8192cu-fixes, 1.10, 4.1.13-desktop-2.mga5, x86_64: installed 
rtl8192cu-fixes, 1.10, 4.1.8-desktop-1.mga5, x86_64: installed 
sysdig, 0.2.0-1.mga5, 4.1.13-desktop-2.mga5, x86_64: installed 
virtualbox, 5.0.10-1.mga5, 4.1.12-desktop-1.mga5, x86_64: installed 
virtualbox, 5.0.10-1.mga5, 4.1.13-desktop-2.mga5, x86_64: installed-binary from 4.1.13-desktop-2.mga5
virtualbox, 5.0.8-1.mga5, 4.1.12-desktop-1.mga5, x86_64: installed-binary from 4.1.12-desktop-1.mga5
virtualbox, 5.0.8-1.mga5, 4.1.8-desktop-1.mga5, x86_64: installed-binary from 4.1.8-desktop-1.mga5

相关内容