Fun with Debian DKMS
Running VirtualBox on Debian needs the virtualbox-dkms package installed. DKMS stands for Dynamic Kernel Module Support and is an attempt to build out-of-tree drivers for the kernel versions installed instead of offering multiple package versions of the same driver.
So, virtualbox-dkms
was installed and all was good - until a change in the kernel sources broke the VirtualBox build and needed a patch against the virtualbox-dkms
sources. However, only recent kernel versions were affected, the patched virtualbox-dkms
code would not run correctly with an older kernel.
On this box, two kernel versions are installed: linux-image-3.14-2-amd64 and linux-image-3.17.0-rc1+
, compiled from vanilla sources. A "dpkg-reconfigure virtualbox-dkms
" would build the virtualbox-dkms
for both kernel versions, but for the reasons explained above, we can't do this now.
Let's rebuild virtualbox-dkms
only for the kernel that needs to be built with the patched version of virtualbox-dkms
:
# rmmod vboxpci vboxnetadp vboxnetflt vboxdrv # ls -lgo /var/lib/dkms/virtualbox/ total 4 drwxr-xr-x 5 4096 Aug 31 01:49 4.3.14 lrwxrwxrwx 1 26 Aug 31 01:49 kernel-3.14-2-amd64-x86_64 -> 4.3.14/3.14-2-amd64/x86_64 lrwxrwxrwx 1 25 Aug 31 01:37 kernel-3.17.0-rc1+-x86_64 -> 4.3.14/3.17.0-rc1+/x86_64 # dkms remove virtualbox/4.3.14 -k 3.17.0-rc1+/x86_64 # cd /usr/src/virtualbox-4.3.14 # patch -p0 < ~/virtualbox-alloc_netdev.diff # dkms install virtualbox/4.3.14 -k 3.17.0-rc1+/x86_64And that should be all to it :)