Ubuntu – dkms does not automatically rebuild after kernel upgrade

16.04dkmskernelupgrade

as mentioned in the title all DKMS modules installed on my system won't be automatically rebuilt after a kernel upgrade.

# 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

I always have to rebuild it manually after a kernel upgrade.
If there are any logs or configs needed to diagnose this problem I will supply them as soon as possible.

System information:

# 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 

EDIT 1:

Removal of linux-image-4.8.0-52 log: https://pastebin.com/a0L6fbFj

Installation of linux-image-4.8.0-52 log: (N/A)

EDIT 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.

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

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

Best Answer

From the comments...

There were multiple problems to solve.

  • we removed the /usr/src/gmock and /usr/src/gtest as they weren't dkms software modules. If you need this software for some reason, either reinstall it, or create ~/src and put the gmock/gtest software there, and do the appropriate make commands (or whatever) to build that software.

  • we removed the /var/lib/dkms/anbox* directories as they were missing their associated /usr/src/anbox* source code due to an incomplete uninstall, and caused the dkms status command to fail, looking for a dkms.conf file that didn't exist.

  • the dkms status now correctly shows the installed status of bbswitch, nividia, and virtualbox dkms softwares.

  • future kernel upgrades should properly build/rebuild the remaining bbsswitch, nividia, and virtualbox dkms software modules.

  • we also checked that the virtualbox-dkms was the correct version for the installed virtualbox.

Related Question