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.
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.
Check your current version
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.
If you encounter this error you may need to re-run your boot loader[grub], do the following