Table of Contents
Kernel compiling
Kernels shipped with Linux distributions are, for stability reasons, old. Security fixes from current "stable" kernels are backported into the distro kernels. This means that if the stock kernel with your Linux distribution is working fine with the machine's hardware and workload then you should stick to the distro's kernel (as it will receive automated, hassle-free updates from the distro's repositories).
On the other hand, if you need support for newer hardware, file systems, or specific bug fixes not available in the older kernels, you might need to compile a custom kernel manually.
How to
Get the kernel sources
The "vanilla" kernel sources live here: http://www.kernel.org
Configure
Shown here for kernel version "2.6.38.2-zen". Change the make -j4
to the number of parallel make jobs you want to use (-j2 if you have a dual-core machine):
make -j4 sudo make modules_install sudo make install sudo mkinitramfs -o /boot/initrd.img-2.6.38.2-zen 2.6.38.2-zen sudo update-grub
Patch sets
Some custom "patch sets" for the Linux kernel are available. Different patches target different functionality, like lower latency, better I/O scheduling, support for different workloads, etc:
- -ck patch set - Con Kolivas' patch set, including BFS CPU sheduler, VM tweaks, etc for responsiveness
- -pf patch set - A combination of CK, BFQ I/O scheduler, and TuxOnIce (enhanced/faster suspend mode for Linux)
- -zen patch set - A combination of CK, BFQ, and many more random patches. Not so much a "patch set" as a whole kernel.