Ubuntu – Reasons why not to update an Ubuntu version to a newer/older kernel version


I had several friends ask me to update their Ubuntu to a newer kernel without changing the version of Ubuntu. So for example, staying in 10.04 with the 3.3 Kernel version.

When having an older or present Ubuntu version, many users want to apply the newer stable/unstable kernel version to the Ubuntu version they are using thinking that it is similar to upgrading a program. So what I am looking for, are some simple answers to explain the dangers (that are pretty much bigger than the advantages) of forcing a newer kernel version in a Ubuntu release that was not meant for it.

What can I tell them or explain to them of why they should NOT update to a newer/older kernel when having an Ubuntu version that was not made for that kernel version.

Best Answer

I get your point but also share your friends preference to have a more recent kernel. Personally, I'm running a mainline kernel on Ubuntu 11.10 (built using the sources from kernel.org). This means that I'm responsible for security updates and that I won't have support from Ubuntu because I'm not running the stock kernel.

Usually, when the question whether to upgrade a kernel or not is raised, the answer would be "improvements to stability / security / hardware support". Now, your question seems to be about whole kernel series. Risks of using older kernel versions are pretty clear: unfixed security issues, less hardware support and other bugs that may affect stability or features.

When using an older kernel series than the Ubuntu version was created for (say 2.6.32 where Oneiric ships with 3.0) has other implications:

  • userspace programs that expect features that are only available in newer kernel versions. For example, solid-state disks support a TRIM parameter. Even if the mount program supports mounting programs with the discard option to enable TRIM, if the kernel has no support for it, it won't work. Now, this would then print an error about the unsupported kernel, but there could be another feature that is more important and assumed to exist by Ubuntu. The graphics stack, Xorg, depends strongly on features provided by the kernel. If the kernel is very ancient, the Xorg stack may not be able to fully utilize its features.

Newer kernel series can be gathered in various ways: user-maintained PPAs, kernel.ubuntu.com or directly from ubuntu+1's repositories on packages.ubuntu.com. A possible effect is that APIs have been changed, or otherwise, "default" behavior of certain parts. This could not be that disastrous, but programs that make strong assumptions about defaults may not work as expected. Example: relatime replacing noatime as default. More serious issues would be regressions that break hardware (wireless is a common nightmare). The stock Ubuntu kernels have been tested for hardware and when released, it's supposed to be the best kernel for most Ubuntu users.

New support for some features / hardware is not always good either. If a program or script expects that support for (...) is broken and therefore introduces a workaround for it, it may be incompatible with each other and break both. For example, Bumblebee+bbswitch currently disable the nvidia card. If a newer kernel version suddenly has excellent support for this hybrid graphics hardware, it may cause crashes.

I started with installing a newer kernel after the one from xorg-edgers broke my wireless and did not fully support my nvidia card with the nouveau kernel module. Wireless worked again and nouveau support was better, but a later upgrade made wireless unreliable again. And another later version solved it again. Well if you wish to live on the edge you have to live with that.

Related Question