Kernel compilation

This page sets out how we compile our custom Linux kernel. You can use any Linux kernel on the FlexiScale platform, but for best results, the kernel should support Xen PV drivers in HVM mode. These are normally pretty tricky to compile, so we’ve simplified the process somewhat.

Build instructions

We compile our kernels using Ubuntu Lucid as the base operating system. You will need our patch set, located here. These instructions assume you are building the Ubuntu Linux 2.6.32-25 image. You should be able to adapt this to any recent kernel.

To build the kernel, execute the following commands (assuming the patches are in the current working directory):

tar xvzf pvdrivers.20010509-1955.tgz
sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package
sudo apt-get build-dep linux
sudo apt-get build-dep --no-install-recommends linux-image-2.6.32-25-server
apt-get source linux-image-2.6.32-25-server
cd linux-2.6.32
cat ../pvdrivers.20100509-1955*.patch | patch -p1
# Change the next command to reflect the number of processors plus one
export CONCURRENCY_LEVEL=5
fakeroot debian/rules clean
skipabi=true skipmodule=true fakeroot debian/rules binary-indep
skipabi=true skipmodule=true fakeroot debian/rules binary-perarch
skipabi=true skipmodule=true fakeroot debian/rules binary-hvmflexiant
cd ..

This will produce the following files in your current directory (click on them to download pre-built versions):

Note the .deb files without “flexiant” in the name should be not differ materially from the files of the same name distributed by Ubuntu.

To make the meta packages, you will need to do this:

apt-get source linux-meta
cd linux-meta-2.6.32.25.27
patch -p1 < ../pvdrivers.meta.patch
debuild
cd ..

which will make a large number of additional kernel packages, of which you are likely to need the following (click on them to download):