Red Hat Linux 6.2 Kernel Modifications

The Easy Installation Tool already installed the Red Hat 6.2 Linux kernel with the SCore system. You do not need to reconfigure the kernel unless you want to change it. If you would like to reconfigure the new kernel, please read this document.

  1. Install Red Hat Linux 6.2
    If you have already installed the SCore system on your Red Hat Linux 6.2 kernel, you must reinstall the Red Hat Linux 6.2 system. Otherwise, the patch file provided in the SCore release will not work properly.

    All RPM packages distributed with Red Hat Linux 6.2 must be installed on all host machines. That is, the "Custom" menu item must be selected instead of "GNOME Workstation" on the "Install Type" panel. Further, select "Everything" on the Package Group Selection" to install all packages.

    In this manual, it is assumed that the linux-2.2.16-3 source is used.

    1. When choosing the filesystems to create, we recommend creating a file system called /scored with a space of 1GB for checkpointing.

    2. The host name must be specified with a fully qualified domain name (FQDN).
      For example, server.score.rwcp.or.jp, instead of just the host name server

  2. Add the PM-II device drivers to the kernel
    SCore includes kernel PM-II device drivers for Myrinet, 100Mbps and Gigabit Ethernet, and shared memory. Drivers must be statically linked into the kernel on all compute hosts. In other words, they must be the built-in drivers.

    1. To create new kernel source code, issue the following commands:
      For Intel Pentiums:
      	# cd /usr/src/linux
      	# patch -p1 -s < /opt/score/work/linux-redhat.i386.patch
      
      For Compaq Alphas:
      	# cd /usr/src/linux
      	# patch -p1 -s < /opt/score/work/linux-redhat.alpha.patch
      
    2. To create a new configuration file for the kernel, execute the following:
      	# make distclean
      	# make menuconfig
      
      Then,

      1. Select the ``Character devices'' menu. You will find the following entries:

        RWCP PM/Myrinet (Myricom Myrinet PCI) support (NEW)
        Page Coloring (NEW)
        RWCP PM/Ethernet support (NEW)
        RWCP PM/Shmem (Shared Memory) support (NEW)

        Please select those drivers which are appropriate for your configuration, so that they are STATICALLY linked into the kernel or, in other words, as a built-in driver. To select a driver as a built-in driver, type the y key instead of typing the space key.

        ``RWCP PM/Myrinet (Myricom Myrinet PCI) support (NEW)'' MUST be selected even though the machine may not have a Myrinet card. If you select ``RWCP PM/Myrinet (Myricom Myrinet PCI) support (NEW)'', the following option will also be displayed:

        RWCP OLD PM (Myricom Myrinet PCI) support (NEW)
        This option can be ignored.

        If you select ``RWCP PM/Ethernet support (NEW)'', the following option will also be displayed:

        Interrupt-reaping
        Select ``Interrupt-reaping'' to increase PM/Ethernet make performance.

        Be aware that ``RWCP PM/Myrinet (Myricom Myrinet PCI) support (NEW)'' MUST be selected even though the machine may not have a Myrinet card.

      2. Save the configuration, then exit menuconfig.

    3. To make a new kernel, perform the following:

      1. Modify the /etc/lilo.conf and /usr/src/linux/Makefile files
        • For the uniprocessor case
          No modification is necessary.
        • For the SMP case
          To setup an SMP configuration, execute the following:
          	# make menuconfig
          
          Then,
          1. Select ``Symmetric multi-processing support'' in the ``Processor type and features'' menu.
          2. Save the configuration, then exit menuconfig.
          After setting up using menuconfig, add the "smp" suffix to the "EXTRAVERSION" variable in the /usr/src/linux/Makefile file, as follows:
          EXTRAVERSION = -3smp
          
          In Red Hat Linux 6.2, although you selected the SMP option, the linux-2.2.16-3 file name is used instead of linux-2.2.16-3smp, which the default lilo database assumes. The above modification changes the installed kernel name and installed module directory name from linux-2.2.16-3 to linux-2.2.16-3smp.

      2. Issue the following commands to make and install a new kernel, and update the lilo database.
        	# insmod loop
        	# cd /usr/src/linux
        	# make dep clean
        	# make
        	# make modules
        	# make install
        	# make modules_install
        
        NOTE: The insmod loop command must be issued before installing the modules.

        Make sure that there are no errors to install the new kernel.

      3. Perform the following:
        For the uniprocessor case, execute:
        	# rm /boot/initrd-2.2.16-3.img
        	# mkinitrd /boot/initrd-2.2.16-3.img 2.2.16-3
        
        For the SMP case, execute:
        	# rm /boot/initrd-2.2.16-3smp.img
        	# mkinitrd /boot/initrd-2.2.16-3smp.img 2.2.16-3smp
        
      4. Installing boot loader
        make install has already issued the lilo command. However, since the initrd file has been updated, the lilo command must be reissued as follows:
        	# sync
        	# lilo
        
      5. Halt the system and install a Myrinet card, then reboot the system
        	# /sbin/halt
        
        Note that sometimes the kernel cannot dynamically link a library. When this happens, issue the following command:
        	# /sbin/depmod -a
        
        If a Myrinet card has been installed, the following kernel messages will appear during the boot sequence:
        Myrinet 9 revison(1) bus(0) iobase(e7000000) irq(c) vmem(d0800000)
        
        Values depend on the version of the Myrinet card and the host system.

        To make sure the PM drivers have been installed, issue the following command:

        	# dmesg | grep -i pm
        
        You will see several messages. e.g.,
        PM memory support
        Register pm_memory as major(123)
        pm[0]: clockval = 90449044, cpu = 403, delay = 0, board = 1, sram = 100000
        pm[0]: 30 contexts using 3840K bytes of memory
        Register pm as major(121)
        PM/Ethernet: "$Id: pm_ethernet_dev.c,v 1.68 2001/02/24 12:48:14 s-sumi Exp$"
        PM/Ethernet: register etherpm device as major(122)
        pmshmem: version = $Id: pm_shmem.c,v 1.6 2000/09/25 12:42:28 kameyama Exp $
        pmshmem_init: register pm_shmem as major(124)
        etherpm0: 8 contexts using 2048K bytes of memory, maxunit=2, maxnodes=128.
        etherpm0: Interrupt Reaping on eth0, irq 10
        
      Be sure that the above procedures are performed on all hosts so that a new kernel is installed on all hosts.


Parallel and Distributed System Software Laboratory
Real World Computing Partnership
score-info@rwcp.or.jp

CREDIT
This document is a part of the SCore cluster system software developed at Real World Computing Partnership, Japan. Copyright (c) 2000, 1999 Real World Computing Partnership.