我的系统上安装了多个 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=Y
dkms 服务(通常/etc/rc.d/init.d/dkms
适用于较旧的发行版)将在下次启动时重建这些已注册的模块。
您能否检查是否满足每个条件,特别是在启动期间运行的服务将检查 dkms 状态并在必要时构建新模块?它应该被称为dkms
或dkms_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