内核升级后 dkms 不会自动重建

Scr*_*lex 4 upgrade kernel dkms 16.04

如标题中所述,在内核升级后,安装在我系统上的所有 DKMS 模块都不会自动重建。

# ls -la /var/lib/dkms/
total 32K
drwxr-xr-x  7 root root 4.0K May 26 11:55 .
drwxr-xr-x 86 root root 4.0K May 25 19:33 ..
drwxr-xr-x  4 root root 4.0K May 25 18:56 anbox-modules-ashmem
drwxr-xr-x  4 root root 4.0K May 25 18:57 anbox-modules-binder
drwxr-xr-x  3 root root 4.0K May  2 18:34 bbswitch
-rw-r--r--  1 root root    6 Jul  8  2008 dkms_dbversion
drwxr-xr-x  3 root root 4.0K May 26 11:55 nvidia-381
drwxr-xr-x  3 root root 4.0K May 26 11:55 virtualbox
Run Code Online (Sandbox Code Playgroud)

我总是在内核升级后手动重建它。如果需要诊断此问题的任何日志或配置,我将尽快提供它们。

系统信息:

# lsb_release -a
LSB Version:    core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:printing-9.20160110ubuntu0.2-amd64:printing-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
Distributor ID: neon
Description:    KDE neon User Edition 5.9
Release:        16.04
Codename:       xenial

# apt list dkms -a
Listing... Done
dkms/xenial-updates,xenial-updates,now 2.2.0.3-2ubuntu11.3 all [installed]
dkms/xenial,xenial 2.2.0.3-2ubuntu11 all 
Run Code Online (Sandbox Code Playgroud)

编辑 1:

删除 linux-image-4.8.0-52 日志:https ://pastebin.com/a0L6fbFj

安装 linux-image-4.8.0-52 日志:(不适用)

编辑2:

dkms status

# dkms status
Error! Could not locate dkms.conf file.
File:  does not exist.

# cd /var/lib/dkms/nvidia-381/381.22/build

# ls -la dkms.conf 
-rw-r--r-- 1 root root 1,2K Mai 26 11:54 dkms.conf

# dkms status
Error! Could not locate dkms.conf file.
File:  does not exist.
Run Code Online (Sandbox Code Playgroud)

ls -la /usr/src

# ls -la /usr/src/
total 44K
drwxr-xr-x 11 root root 4,0K Mai 26 16:28 .
drwxr-xr-x 12 root root 4,0K Apr 25 19:40 ..
drwxr-xr-x  2 root root 4,0K Apr 22 14:20 bbswitch-0.8
drwxr-xr-x  3 root root 4,0K Apr 29 18:50 gmock
drwxr-xr-x  4 root root 4,0K Apr 29 18:50 gtest
drwxr-xr-x 27 root root 4,0K Mai 16 18:39 linux-headers-4.4.0-78
drwxr-xr-x  7 root root 4,0K Mai 16 18:39 linux-headers-4.4.0-78-generic
drwxr-xr-x 27 root root 4,0K Mai 25 19:42 linux-headers-4.8.0-53
drwxr-xr-x  7 root root 4,0K Mai 25 19:42 linux-headers-4.8.0-53-generic
drwxr-xr-x  8 root root 4,0K Mai 20 16:43 nvidia-381-381.22
drwxr-xr-x 12 root root 4,0K Mai 11 16:31 virtualbox-5.0.40
Run Code Online (Sandbox Code Playgroud)

ls /usr/src/*/dkms.conf

# ls /usr/src/*/dkms.conf
/usr/src/bbswitch-0.8/dkms.conf  /usr/src/nvidia-381-381.22/dkms.conf /usr/src/virtualbox-5.0.40/dkms.conf
Run Code Online (Sandbox Code Playgroud)

hey*_*ema 9

从评论...

有很多问题需要解决。

  • 我们删除了/usr/src/gmock/usr/src/gtest因为它们不是 dkms 软件模块。如果你出于某种原因需要这个软件,要么重新安装它,要么创建~/srcgmock/gtest 软件并将其放在那里,然后执行适当的make命令(或其他命令)来构建该软件。

  • 我们删除了/var/lib/dkms/anbox*目录,因为它们/usr/src/anbox*由于卸载不完整而丢失了相关的源代码,并导致dkms status命令失败,寻找dkms.conf不存在的文件。

  • dkms status现在可以正确显示installedbbswitch,NIVIDIA和VirtualBox的DKMS软件的状态。

  • 未来的内核升级应该正确构建/重建剩余的 bbsswitch、nividia 和 virtualbox dkms 软件模块。

  • 我们还检查了 virtualbox-dkms 是否是已安装的 virtualbox 的正确版本。