On the frontend, check out the Rocks source code. See Read-Only Access to CVS for details.
Change into the directory:
# cd rocks/src/roll/kernel/src/kernel.org
Download the kernel source tarball from kernel.org. For example:
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-18.104.22.168.tar.gz
Create a kernel "config" file and put it in config-<version>
You can create the config file by using the following procedure
# tar xzf linux-22.214.171.124.tar.gz # cd linux-126.96.36.199 # make menuconfig
The <version> number must match the version number of the kernel source. For example, if you downloaded linux-188.8.131.52.tar.gz, the name of the config file must be config-184.108.40.206.
You'll want to ensure that the following line is in your config-<version> file:
is present in the configuration file. Otherwise, the kernel modules will contain debug info and be quite large.
The file version.mk has the following contents:
NAME = kernel RELEASE = 1 VERSION = 220.127.116.11 SMP = 1
The VERSION value must match that of the linux kernel tarball you downloaded (e.g., 18.104.22.168).
If you are building a uni-processor kernel, then set the following:
SMP = 0
Or, if you are building a multi-processor kernel (i.e., SMP), then set the following:
SMP = 1
Build the kernel:
# make rpm
Copy the resulting RPMs into the current distribution:
# cp ../../RPMS/<arch>/kernel*rpm /home/install/contrib/4.2/<arch>/RPMS/
Where <arch> is i386, x86_64 or ia64.
Rebuild the distribution:
# cd /home/install # rocks-dist dist
Test the new kernel by reinstalling a compute node:
# shoot-node compute-0-0
If the kernel works to your satisfaction, reinstall all the compute nodes that you want to run the new kernel.