This post is about restoring graphics to your Linux Desktop session if you install some kernel updates that don't go so well. Particularly, ones that fail with your graphics drivers.
If you get error message (when trying to upgrade kernel packages or kernel drivers): "Skipping (driver build) at this time because kernel-source is missing." Try the following steps:
Note: `uname -r` is a commandline option which will auto-substitute your kernel version and architecture into the install command. If installing via a GUI, just use the info output from running the console command `uname -r`.
sudo apt-get install linux-source-`uname -r` linux-headers-`uname -r`If this does not automatically cause your nvidia drivers to compile, cause a manual install with:
sudo apt-get install nvidia-currentIf that still doesn't work, try uninstalling and reinstalling nvidia-current.
Today I noticed there were some kernel updates in Ubuntu, but they had been kept back. So I decided to manually install them, since they did not appear to be causing any package conflicts. I do updates from command line with 'apt-get' (because I'm awesome that way *wink*). While installing the held-back packages, being kernel updates, it tried to accommodate my Nvidia graphics drivers.
Apparently, this failed. I noticed the error on the console, and immediately downgraded my kernel back to the previous versions. But alas, it did no good. I rebooted and was confronted with a text-only machine. Now, I'm fine with this, since I spend a lot of time on console. (Screen, vim, ssh, and elinks are usually all I need for most rescue operations. Sometimes rtorrent, wget, and curl are handy too.)
After trying to get the packages to jive well together, I gave up trying to juggle the kernel packages and instead focused on the Nvidia drivers. I tried installing the nvidia-current package provided by the Ubuntu repositories. (I was running a later version from a PPA.). This failed, but triggered the same error.
"Skipping (driver build) at this time because kernel-source is missing." Now, I've seen this error before. So I quickly installed the linux-source-`uname -r` package. This did not quite do the trick, and I have been around long enough to know that the source-packages often require the header packages as well. So I install linux-headers-`uname -r` package.
Once installed that, I didn't even have to do anything. The system automatically compiled the missing nvidia drivers and installed them for me. A quick reboot later, and now I am blogging about this simple solution.