What is the best way to upgrade the kernel in 12.04.3?

I am using 12.04 LTS, which through my Update Manager is now upgraded to 12.04.3. However, my Linux kernel has not been upgraded; it's 3.2.0-52-generic-pae. There is a v.3.8 in the Package Manager but it has never shown up in the Upgrade Manager (in fact, there are several versions of the 3.8 kernel in the Pkg Mgr). What is the best way to upgrade the kernel?

I have read several other threads but couldn't clearly find out anything about updating the kernel. I did find this link: How to Upgrade Ubuntu 12.04.2, 12.04.3 to 12.04.4, the next Hardware Enablement Stack? but I have no idea what the *-lts-raring-packages are. If there is a link for the answer to my question, just point me to it.

Thanks in advance.


Solution 1:

I want to point out some basic facts about kernels, before giving answer to your question:

If your current (default) installed kernel is not working properly and you're getting some trouble then you can install any kernel you want and test whether it fixes your problem or not. There is no problem on using one or multiple Kernels at a time. But sometime you should consider the Kernel Mapping to your Ubuntu Version. For example following link lists out the mapping of different kernel to different version of OS:

1. Ubuntu to Mainline kernel version mapping

You can get a complete information of Kernel installing/removing from following link.

2. Kernel Mainline Builds

It helped me a lot to install a new kernel in Ubuntu 12.04.2. Now I can chose any kernel 3.5.0 or 3.8.0 from grub menu.

Following link illustrates how Ubuntu 12.04 LTS works actually. It illustates in very nice way, you would also like:

3. Ubuntu LTS Enablement Stack

Now coming to your point:

but I have no idea what the *-lts-raring-packages are

If you go through the 3rd link - Ubuntu LTS Enablement Stack, you will see Ubuntu 12.04.x LTS support and upgrade policy (enhanced view). Which states that the packages and kernels in Ubuntu 12.04 LTS will upgraded equivalent to non-LTS version. In short:

12.04   ~ 12.04 (kernel 3.2.x)
12.04.2 ~ 12.10 (kernel 3.5.x)
12.04.3 ~ 13.04 (kernel 3.8.x)
12.04.4 ~ 13.10 (kernel 3.11.x or latest according to the time of release of 12.04.4. i,e why ?? in the figure)

Since 13.04 is called raring, 12.04 is LTS and 12.04.3 is using packages equivalent to 13.04. This is the reason why 12.04.3 packages are called *-lts-raring-packages and the same you see in your repository. I hope your doubt would be clear. (Reply if still you've some confusion.)

upgraded to 12.04.3. However, my Linux kernel has not been upgraded; it's 3.2.0-52-generic-pae.

This is because it is always good to stick with the kernel which best suits to your system. If your system is running fine with the kernel you are using, then their is no need to upgrade the kernel. But if you've any problem (as you can see, I had one that I solved after upgrading kernel as well as a lot of xserver-xorg packages) then you can consider to upgrade your kernel.

Thus Ubuntu uses the same logic and doesn't upgrade your kernel (it would be possible that same kernel version upgrades. Example 3.2.x will be upgraded to 3.2.y). Ubuntu doesn't want to take risk, it just left for you. :)

What is the best way to upgrade the kernel?

There is no any best way to upgrade a kernel. The way that worked for you is the best :)

I've mentioned the 2nd link, which you can be used to install the latest kernel. But I recommend you to install the kernel more specific to your 12.04.3 i,e 3.8.x which are listing in your repository.

  1. You can install using the command. Just copy and paste following command in the terminal and execute:

    sudo apt-get install linux-generic-lts-raring linux-headers-3.8.0-34 linux-headers-3.8.0-34-generic linux-headers-generic-lts-raring linux-image-3.8.0-34-generic linux-image-generic-lts-raring
    

    Please note that the kernels and so as the repositories are frequently updated. So it would be possible that 3.8.0-34 will not be the latest version of kernel 3.8.x. In this case you can go for the 2nd method I've mentioned below.

  2. or you can install it using Synaptic Package Manager. Type linux-generic-lts-raring and select it. It will automatically select all the latest -lts-packages to install. I'm posting what it shows to me:

    linux-generic-lts-raring
    linux-headers-3.8.0-34
    linux-headers-3.8.0-34-generic
    linux-headers-generic-lts-raring
    linux-image-3.8.0-34-generic
    linux-image-generic-lts-raring
    

Then just mark for installation and then Apply You can also get help from this link.

Solution 2:

Ubuntu has a concept called LTS Enablement Stacks where they upgrade the kernel and X11 in the LTS point releases (12.04.2, 12.04.3 etc) to those in the following non-LTS (12.10, 13.04 etc) releases. These are installed by default if you install from the point release media, but can be added to previous releases as well.

Please see https://wiki.ubuntu.com/Kernel/LTSEnablementStack for all the information.

Hope that helps.

Solution 3:

The linux-generic-lts-raring (to be generic => linux-generic-lts-<release>) is a part of LTS Enablement Stack (in addition to a new X stack).

This may also be useful => LTS Kernel Rolling.

If you just want to use the latest release kernel (without the new X stack), just install the linux-current-generic package and it'll take care of that for you. It actually installs linux-image-generic-lts-raring for the time being as 13.10 is not yet available.