Ubuntu Logo

Upgrading Ubuntu Kernel

Since I’m running my Minecraft server on Ubuntu, I thought to experiment and upgrade the Kernel to the bleeding edge. 🙂 Yes, I know I said I’m not a bleeding edge kind of guy but there are some benefits so I thought I’d check it out.

Warning: We suggest that you do not upgrade your kernel on your production machine as it could cause your system to crash. Test it on a non-production system first to make sure, you just never know. Despite me not having an issue, you may not fare as well. And as always, backup your system before doing anything this critical. Don’t say we didn’t warn you 😉

Some of the benefits:

  • Many open-source kernel DRM driver improvements. The DRM pull includes much better support for upcoming Broadwell hardware, many other Intel i915 improvements, primary plane support, initial NVIDIA Maxwell support (but the Gallium3D Nouveau driver support isn’t yet ready for NVIDIA’s Kepler successor and 3.15 still depends upon the binary blob’s microcode), the Radeon driver has its VCE 2.0 video encoding support, other Radeon DRM updates, and numerous other changes to the growing number of DRM graphics drivers.
  • EFI Mixed Mode Support so that a 64-bit Linux kernel can boot even if the system UEFI is 32-bit. There’s been some flaky hardware that’s Intel x86_64 capable but shipping with 32-bit firmwares and now with UEFI mixed mode support this issue may be a matter of the past (though the very latest Intel devices seem to be better about 64-bit UEFI support).
  • File-system work for Linux 3.15 included Btrfs performance fixes and addressing potential Btrfs corruption, F2FS large directory support, and various EXT4 and XFS file-system updates. There’s also better write performance for FUSE-based file-systems.
  • ACPI and power management updates that include faster suspend and resume times. Besides the ACPI/PM suspend and resume improvements, work by Intel for Linux 3.15 should lead to much faster resume times with being able to power-up disks and other SCSI devices in parallel without blocking the kernel until the devices are ready.
  • Among the other pulls this cycle include AHCI libata updates, scheduler improvements, removal of some old x86 platform support, new media/V4L2 drivers, support for a new WiFi adapter, and ARM SoC updates.

One thing to be weary of is Partial support for LTO but the actual Link-Time Optimization Kconfig options to complete the experimental feature haven’t yet been pulled by Linus Torvalds as he isn’t sure about LTO support for the Linux kernel in its current state. Link-time optimizations should reduce binary sizes and provide faster binaries, among other benefits, but for now will cause longer build times and excessive use of system RAM.

If you are going to do this on a desktop or laptop you also get these:

  • Improved Windows guest support with KVM virtualization.
  • Sony DualShock 4 controller support and other input device improvements.
  • New notebook support.
  • Many audio and sound improvements.

Read Linuz Torvald’s complete update on LKML (Linux Kernel Mailing List)

So how do you upgrade your Kernel you ask?

Upgrading is easy, just follow these steps. You will need to install headers and image and both packages must be the same version.

Note: This tutorial goes through the 64-bit version. You will want to select the i386 versions if you’re running a 32-bit system. 32-bit = i386 and 64-bit = amd64

Check your current version

uname -r

You should get a return like this


Check what’s available from you package system

sudo apt-cache search linux-headers

should return a list like this but with more options

linux-headers-3.11.0-23 - Header files related to Linux kernel version 3.11.0
linux-headers-3.11.0-23-generic - Linux kernel headers for version 3.11.0 on 64 bit x86 SMP
linux-headers-3.13.0-24 - Header files related to Linux kernel version 3.13.0
linux-headers-3.13.0-24-generic - Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
linux-headers-3.13.0-27 - Header files related to Linux kernel version 3.13.0
linux-headers-3.13.0-27-generic - Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
linux-headers-3.13.0-29 - Header files related to Linux kernel version 3.13.0
linux-headers-3.13.0-29-generic - Linux kernel headers for version 3.13.0 on 64 bit x86 SMP

You will want to pick the highest option that is like your existing kernel. If you only want to upgrade to the highest version available from your package management then simply install them:

sudo apt-get install linux-headers-3.13.0-29-generic linux-image-3.13.0-29-generic

We are installing generic because our existing kernel is the generic one as well. 🙂 Notice we are installing the headers as well as the image.

At this time you will want to reboot your machine

sudo shutdown -r now



Upgrading to the bleeding edge

For the adventurous ones, this is easy as well.  Visit the Kernels page here ›

  • Scroll all the way to the bottom to get the latest version, as of this writing it’s v3.15-utopic.
  • Click on the link to open the ppa list.
  • In this case you will want to run the following on your command line to download and install
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15-utopic/linux-headers-3.15.0-031500_3.15.0-031500.201406131105_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15-utopic/linux-headers-3.15.0-031500-generic_3.15.0-031500.201406131105_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15-utopic/linux-image-3.15.0-031500-generic_3.15.0-031500.201406131105_amd64.deb
sudo dpkg -i linux-headers-3.15.0-*.deb linux-image-3.15.0-*.deb

Reboot your machine

sudo shutdown -r now



Verify your work

To test that you have the correct version installed, simple run the following and you should get back the version you installed.

uname -r


If you encounter this error you may need to re-run your boot loader[grub], do the following


Share your thoughts

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s