How to set an older kernel version as the default in GRUB during bootup (Ubuntu 12.04)
I updated my Ubuntu's kernel (Sputnik kernel for the Dell XPS 13) a couple of days ago but I quickly noticed that this new kernel (verson 3.2.0-43-generic) broke the backlight brightness adjustment setting of my laptop. It was basically stuck at the highest setting which is way too bright for me when working in the dark.
I thought about possibly rolling back the version, but then realized there's actually no need to roll back as Ubuntu keeps all the previous versions of the kernel. After an update, the GRUB configuration is updated to boot the latest version, and previous versions can be manually selected in the GRUB menu during bootup.
To change the default kernel to boot you can do the following:
1. Open the file /etc/default/grub.
2. Change the value of GRUB_DEFAULT to the index value of the menu option you wish to select.
For example, in the GRUB menu during bootup, my menu screen looks something like this:
Ubuntu, with Linux 3.2.0-43 generic
Ubuntu, with Linux 3.2.0-43 generic (recovery mode)
Previous Linux versions
Memory test (memtest86+)
Now, the first option is index 0, the second one is 1, third is 2, and so on.
In my case I wanted to select index 2 (“Previous Linux versions"), but this has a submenu which then gives me the option to select an older kernel version. I wanted to select the first entry in the submenu (index 0) as my default kernel, so I would set GRUB_DEFAULT to this:
GRUB_DEFAULT="2>0"
You use the '>' symbol to specify that there's a submenu. In this case, I'm picking the third option (index 2) in the main menu and the first option in the submenu (index 0).
The menu options are coming from the file /boot/grub/grub.cfg (do not edit this file).
3. Once you made the changes to /etc/default/grub, save it and run this command to update the GRUB config file:
sudo update-grub
4. Reboot and the older kernel version should now be booted by default.