Mike Chirico on 18 Feb 2004 20:06:02 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[PLUG] Redhat 9 with 2.6 Kernel Upgrade from Source


The following worked for me, so I tried to correctly document, and
make it available. I am able to switch between 2.4 in Redhat 9 and
2.6 which is compiled from source.

If this doesn't come through you can read online at
http://prdownloads.sourceforge.net/souptonuts/README_26.txt?download


Redhat 9 with 2.6 Kernel Upgrade from Source
Mike Chirico
Tue Feb 17 18:05:44 EST 2004


The latest version of this document can be found at:
http://prdownloads.sourceforge.net/souptonuts/README_26.txt?download

For configs ref:
http://sourceforge.net/project/showfiles.php?group_id=79320&package_id=109944

STEP 1:

Download the latest version of the kernel and any patches.  This
documentation
is done with linux-2.6.3, but look for later versions.
         http://www.kernel.org/pub/linux/kernel/v2.6/

Also take a look at http://www.codemonkey.org.uk/post-halloween-2.5.txt
This has some useful hints on some of the changes needed.

STEP 2:

Download the latest version of module-init-tools
[module-init-tools-3.0-pre10.tar.gz]  and modutils-2.4.21-2x.src.rpm

         http://www.kernel.org/pub/linux/kernel/people/rusty/modules/

STEP 3:

Install module-init-tools.  This will replace depmod [/sbin/depmod] and
other tools.

        tar -zxvf module-init-tools-3.0-pre10.tar.gz cd
        module-init-tools-3.0-pre10 ./configure --prefix=/sbin make make
        install


SKIP IF Redhat9: STEP 4: [ Only for Redhat 8.0 special cases]


Install modutils-2.4.21-23.src.rpm.  You'll may get warnings about user
rusty and group rusty not existing.

        rpm -i modutils-2.4.21-23.src.rpm
         rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec
        rpm -i /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm

STEP 5:

Install and configure the kernel.  Do NOT use the /usr/src/linux area!
Reference the README. I put my files in /home/src/kernel/

        gunzip linux-2.6.3.tar.gz tar -xvf linux-2.6.3.tar cd
linux-2.6.3

If you have patches install these now:

        bzip2 -dc ../patch-2.6.xx.bz2 | patch -p1

STEP 6:

Copy the appropiate /usr/src/linux-2.4/configs
[kernel-2.4.20-i686.config,
kernel-2.4.20-i686-smp.config] to .config in
/home/src/kernel/linux-2.6.3

    cp /usr/src/linux-2.4/configs/kernel-2.4.20-i686.config
    /home/src/kernel/linux-2.6.3/.config

If you don't have the source configs, you can download them from here:

https://sourceforge.net/project/showfiles.php?group_id=79320&package_id=109944

I've also included a file config2.6-chirico which was a 2.6 version for
some
of my systems. This isn't a bad reference if you run into trouble.


STEP 7:

Assuming you copied the appropriate kernel-2.4 config to .config, run
the
following which will run through necessary questions for the 2.6 kernel.
Or,
you might want to use the config2.6-chirico...this has already been run
through make oldconfig on my system, and I've answered the necessary
questions
for a general system.

    make oldconfig

STEP 8:

This is very important.  Make sure you're .config has the following in
it
CONFIG_EXT3_FS=y  You'll run into the following error if you leave this
=m
instead of =y:

    pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed

This is because Redhat 9.0 and 8.0 user the ext3 filesystem for /boot
...


STEP 9:

Edit the Makefile and add changes to the Extraversion is needed.
Patches
will
update these values as well.

       VERSION = 2
       PATCHLEVEL = 6
       SUBLEVEL = 3
       EXTRAVERSION = -skim-ch6


STEP 10:

    make bzImage

STEP 11:

    make modules

STEP 12:

    make modules_install


STEP 13:

    make install

    If you come across errors here, what version of "depmod" is being
picked
    up in your path?



STEP 14:


     mkdir  /sys


STEP 15:


/etc/rc.sysinit needs to be modified.  Look for the following line

  action $"Mounting proc filesystem: " mount -n -t proc /proc /proc

and after this line enter the following:

  action $"Mounting sysfs filesystem: " mount -n -t sysfs /sys /sys

Here's my  /etc/rc.sysinit for reference:

http://prdownloads.sourceforge.net/souptonuts/rc.sysinit.txt?download

Be very careful at this step. Backup the /etc/rc.sysinit file.  I didn't
need any USB support, but your configuation may need it.

Thomer [http://thomer.com/linux/migrate-to-2.6.html ] also added changes
to /etc/fstab.  I did NOT have to do this. No harm in addding; you'll
just
get errors when booting that it can't be mounted twice.


STEP 16:

Check the following:

a. The new image file should be installed on boot and there should be
sym
link to it.  My latest kernel is 2.6.3-skim-ch6, and I got the
"-skim-ch6"
from the values I put in the Makefile, so I see the following:

/boot
               vmlinuz -> vmlinuz-2.6.3-skim-ch6
                System.map -> System.map-2.6.3-skim-ch6

/boot/grub/grub.conf   Should have been automatically updated from make
install and look something like the the following:



    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to
this
file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,2)
    #          kernel /vmlinuz-version ro root=/dev/hda6
    #          initrd /initrd-version.img
    #boot=/dev/hda
    default=0
    timeout=10
    splashimage=(hd0,2)/grub/splash.xpm.gz
    title Red Hat Linux (2.6.3-skim-ch6)
        root (hd0,2)
        kernel /vmlinuz-2.6.3-skim-ch6 ro root=LABEL=/
        initrd /initrd-2.6.3-skim-ch6.img




References:

http://www.codemonkey.org.uk/post-halloween-2.5.txt
http://kerneltrap.org/node/view/799
http://thomer.com/linux/migrate-to-2.6.html
http://www.kernel.org/


Regards,

Mike Chirico


___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug