I have a custom kernel on my linux machine (that I apparently did not install correctly) so when I went to use VirtualBox I got an error about DKMS not being ready. The docs say I needed to update my “virtualbox-ose-dkms” package to the latest version but when I did that it failed to install, saying the module could not be built.
Running the reconfigure command manually gave me this error:
$ sudo dpkg-reconfigure virtualbox-dkms ------------------------------ Deleting module version: 4.1.12 completely from the DKMS tree. ------------------------------ Done. Loading new virtualbox-4.1.12 DKMS files... Building only for 3.2.37-32corexeon Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed. * Stopping VirtualBox kernel modules [ OK ] * Starting VirtualBox kernel modules * No suitable module for running kernel found [fail] invoke-rc.d: initscript virtualbox, action "restart" failed.
What you’ll find online if you search for this error is its missing the linux-headers-`uname -r` package. I had it installed, but it still wasn’t finding it.
The issue turned out to be my /lib/modules/3.2.37-32corexeon directory was linking to the original location where I had compiled the kernel, but I had since moved those files. I updated this symlink and then it worked:
/lib/modules/3.2.37-32corexeon/build -> /usr/src/linux-headers-3.2.37-32corexeon/
Thanks *nix notes!