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-2.6.17.6.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-2.6.17.6.tar.gz # cd linux-2.6.17.6 # make menuconfig |
The <version> number must match the version number of the kernel source. For example, if you downloaded linux-2.6.17.6.tar.gz, the name of the config file must be config-2.6.17.6. |
You'll want to ensure that the following line is in your config-<version> file: CONFIG_DEBUG_KERNEL=n is present in the configuration file. Otherwise, the kernel modules will contain debug info and be quite large. |
Update version.mk.
The file version.mk has the following contents:
NAME = kernel RELEASE = 1 VERSION = 2.6.17.6 SMP = 1 |
The VERSION value must match that of the linux kernel tarball you downloaded (e.g., 2.6.17.6).
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.