User Tools

Site Tools


kernel_compiling

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.
kernel_compiling.txt · Last modified: 2011/04/07 11:12 by aorth