The Linux kernel is the foundation everything runs on—hardware drivers, filesystem support, networking, security. When a new LTS kernel drops, it’s worth paying attention. Kernel 4.1.6, released in August 2015 as part of the 4.1 long-term support series, brought a batch of important fixes and improvements. This guide covers what changed, two methods for installing it on Ubuntu, how to verify the installation, and—critically—how to roll back if something goes wrong.

What’s New in Kernel 4.1.6 LTS
The 4.1 series was designated for long-term maintenance, meaning it received ongoing backported fixes for stability and security. Version 4.1.6 specifically included:
- Networking fixes — corrections to IPv6 handling, TCP congestion control edge cases, and wireless driver stability improvements for iwlwifi and ath9k chipsets.
- Filesystem patches — ext4 and Btrfs fixes addressing potential data corruption scenarios under heavy write loads.
- GPU driver updates — improved stability for Intel Haswell/Broadwell integrated graphics and AMD Radeon Southern/Sea Islands families.
- USB improvements — fixes for xHCI (USB 3.0) controller hangs that affected certain chipsets.
- Security patches — multiple CVE fixes addressing privilege escalation and information disclosure vulnerabilities.
Why Upgrade from the Stock Ubuntu Kernel?
Ubuntu versions ship with specific kernel versions:
| Ubuntu Version | Stock Kernel |
|---|---|
| 14.04 LTS | 3.13 |
| 15.04 | 3.19 |
| 15.10 (upcoming at the time) | 4.2 |
If you were on Ubuntu 14.04 or 15.04, kernel 4.1.6 offered newer hardware support (especially for recent Intel and AMD GPUs), better performance under heavy I/O workloads, and fixes that hadn’t been backported to the older kernel branches.
Step-by-Step Installation: Mainline PPA Method
The Ubuntu Kernel Team maintains a mainline kernel PPA with pre-built .deb packages for every upstream kernel release. This is the easiest installation method.
Step 1 — Determine Your Architecture
uname -m
x86_64→ you need the amd64 packages.i686→ you need the i386 packages.
Step 2 — Download the Kernel Packages
Create a working directory and download the required .deb files:
mkdir -p ~/kernel-4.1.6
cd ~/kernel-4.1.6
For 64-bit (amd64) systems, download three packages: the header files (common), the header files (architecture-specific), and the kernel image.
wget kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.6-unstable/linux-headers-4.1.6-040106_4.1.6-040106.201508171430_all.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.6-unstable/linux-headers-4.1.6-040106-generic_4.1.6-040106.201508171430_amd64.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.6-unstable/linux-image-4.1.6-040106-generic_4.1.6-040106.201508171430_amd64.deb
For 32-bit (i386) systems, replace amd64 with i386 in the file names.
Step 3 — Install the Packages
sudo dpkg -i linux-headers-4.1.6-040106_*.deb
sudo dpkg -i linux-headers-4.1.6-040106-generic_*.deb
sudo dpkg -i linux-image-4.1.6-040106-generic_*.deb

Step 4 — Update GRUB
sudo update-grub
This regenerates the GRUB menu to include the new kernel.
Step 5 — Reboot
sudo reboot
GRUB will automatically boot the newest kernel. If you want to select a specific kernel, hold Shift during boot to access the GRUB menu, then choose Advanced options for Ubuntu and select kernel 4.1.6.
Step 6 — Verify the Installation
After rebooting, confirm the running kernel:
uname -r
You should see output like:
4.1.6-040106-generic
Check the full kernel information:
uname -a
Alternative: Manual Compilation
For advanced users who need custom kernel options (specific driver modules, performance tuning, security hardening), compiling from source offers full control.
Step 1 — Install Build Dependencies
sudo apt-get install build-essential libncurses5-dev gcc make git fakeroot dpkg-dev
Step 2 — Download and Extract the Source
cd /usr/src
sudo wget kernel.org/pub/linux/kernel/v4.x/linux-4.1.6.tar.xz
sudo tar xvf linux-4.1.6.tar.xz
cd linux-4.1.6
Step 3 — Configure the Kernel
Start from your current kernel’s configuration:
sudo cp /boot/config-$(uname -r) .config
sudo make olddefconfig
The olddefconfig command applies your existing configuration and sets any new options to their defaults. To customise:
sudo make menuconfig
This opens a text-based configuration menu where you can enable or disable specific features and drivers.
Step 4 — Compile and Install
sudo make -j$(nproc)
sudo make modules_install
sudo make install
The -j$(nproc) flag uses all available CPU cores to speed up compilation. On a quad-core machine, compilation takes approximately 30–60 minutes.
Step 5 — Update GRUB and Reboot
sudo update-grub
sudo reboot
Rolling Back to a Previous Kernel
If the new kernel causes problems—driver issues, boot failures, performance regressions—rolling back is straightforward.
Option A: Select at Boot Time
Hold Shift during boot to show the GRUB menu. Select Advanced options for Ubuntu, then choose your previous kernel (e.g., 3.19.0-25-generic). The system boots normally with the old kernel.
Option B: Remove the New Kernel
Boot into your old kernel first, then remove the new one:
sudo apt-get purge linux-image-4.1.6-040106-generic linux-headers-4.1.6-040106-generic linux-headers-4.1.6-040106
sudo update-grub

This cleanly removes the kernel and its headers, and updates GRUB to remove the entry.
Common Pitfalls
Proprietary NVIDIA/AMD drivers breaking. Proprietary GPU drivers are compiled against a specific kernel version. After installing a new kernel, you may boot to a low-resolution screen or a black screen. The fix is to reinstall the driver:
sudo apt-get install --reinstall nvidia-current
Or boot the old kernel, reinstall the driver there, and then use DKMS to ensure it builds for the new kernel:
sudo dpkg-reconfigure nvidia-current
VirtualBox modules not loading. VirtualBox kernel modules must be recompiled for each new kernel. If VirtualBox fails to start VMs after the upgrade:
sudo /sbin/vboxconfig
Or reinstall VirtualBox to trigger a DKMS rebuild.
Forgetting to update GRUB. If you skip sudo update-grub after installing the .deb packages, GRUB won’t know about the new kernel and will continue booting the old one. Always run update-grub before rebooting.
Running out of /boot space. On systems with a small /boot partition (common in older installations with 200–500 MB partitions), accumulating multiple kernels fills the partition. Remove old kernels you no longer need:
dpkg --list | grep linux-image
sudo apt-get purge linux-image-OLD-VERSION-generic
Wireless dropping after upgrade. Some wireless drivers (particularly Broadcom) may not have modules in the new kernel. Check:
lsmod | grep wl
If empty, reinstall the wireless driver package:
sudo apt-get install --reinstall bcmwl-kernel-source
Why You Might Want a Newer Kernel
Beyond the specific fixes in 4.1.6, there are general reasons to consider upgrading:
- Hardware support — newer kernels add drivers for recently released hardware. If your Wi-Fi, GPU, or other components aren’t detected, a newer kernel may include the driver.
- Performance — each kernel release includes scheduler improvements, memory management optimisations, and I/O path refinements.
- Security — kernel vulnerabilities are discovered regularly. Newer kernels include patches for recently disclosed CVEs.
- Filesystem features — if you use Btrfs, newer kernels bring significant stability and performance improvements.
Final Thoughts
Installing kernel 4.1.6 LTS on Ubuntu is a low-risk operation thanks to GRUB’s ability to boot any installed kernel. The mainline PPA method takes five minutes and a reboot. The manual compilation route gives you full control at the cost of time. Either way, your old kernel stays installed as a safety net. If you’re chasing better hardware support, improved performance, or specific bug fixes, upgrading the kernel is one of the most impactful changes you can make to an Ubuntu system.