How to compile Strongbolt kernel on Cobalt RaQ4

Cobalt RaQ4 was laying around collecting dust so I decided to give it a second chance. Guys from OS Office (http://www.osoffice.co.uk) put together Strongbolt – excellent Linux distribution based on CentOS with Cobalt RaQ support.

I wanted to use Cobalt RaQ4 to test highly available and load balanced cluster configuration. However current Strongbolt kernel 2.6.16i586 doesn’t have IP virtual server support and had to be recompiled. I’ve used the following page as a reference while building a kernel – http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html.

Below is a list of steps required to compile a kernel with virtual server support. If you don’t need this functionality please ignore steps 6 and 13.

  1. Logged in as root, downloaded and extracted kernel source code.
    wget http://www.osoffice.co.uk/linux/raq4-sb-kernel-source/2.6/linux-2.6.16-raq4-source.tar.gz
    tar -xzf linux-2.6.16-raq4-source.tar.gz -C /usr/src
    cd /usr/src/linux-2.6.16-raq4-standard/
  2. Installed compiler and required libraries.
    yum install gcc ncurses-devel
  3. To prevent overwriting any existing kernel modules on the system modified kernel version to something unique in /usr/src/linux-2.6.16-raq4-standard/Makefile.
    VERSION = 2
    PATCHLEVEL = 6
    SUBLEVEL = 16
    EXTRAVERSION = -ipvs
  4. Current kernel configuration settings are stored in /proc/config.gz. Since I only need to make minor changes to the configuration it would be wise to re-use the configuration file.
    zcat /proc/config.gz > /usr/src/linux-2.6.16-raq4-standard/.config
  5. Run the configuration utility. Configuration file .config created in previous step will be loaded automatically.
    make menuconfig
  6. In the menu, selected Networking -> Networking options -> IP: Virtual Server Configuration and then made the following choices:
        IP virtual server support (EXPERIMENTAL)
       [ ]   IP virtual server debugging (NEW)
       (12)  IPVS connection table size (the Nth power of 2) (NEW)
       ---   IPVS transport protocol load balancing support
       [*]   TCP load balancing support
       [*]   UDP load balancing support
       [ ]   ESP load balancing support (NEW)
       [ ]   AH load balancing support (NEW)
       ---   IPVS scheduler
          round-robin scheduling
          weighted round-robin scheduling
          least-connection scheduling
          weighted least-connection scheduling
          locality-based least-connection scheduling
          locality-based least-connection with replication scheduling
          destination hashing scheduling
          source hashing scheduling
          shortest expected delay scheduling
          never queue scheduling
       ---   IPVS application helper
          FTP protocol helper (NEW)
  7. Removed compiled kernel that came with the source files.
    rm vmlinux.bz2
  8. Compiled the kernel.
    make vmlinux
  9. Compiled and installed all the loadable modules.
    make modules
    make modules_install
  10. Made a backup of the current kernel.
    cp /boot/vmlinux.bz2 /boot/vmlinux-`uname -r`.bz2
    chmod 0644 /boot/vmlinux-`uname -r`.bz2
  11. Compressed and installed the kernel. Since one of the Strongbolt forum users experienced a problem booting kernel compressed with default settings (see http://www.osoffice.co.uk/forum/viewtopic.php?f=7&t=391), compression method #4 was used.
    bzip2 -4 vmlinux
    cp vmlinux.bz2 /boot
  12. Rebooted the server.
  13. Loaded virtual server kernel modules.
    modprobe ip_vs ip_vs_rr

Your email is never shared. Required fields are marked with *.

*
*