Upgrading The Kernel From 2.2.17 to 2.4.1


First off, if you do not have the new kernel (24megs), go here (http://www.kernel.org/pub/linux/kernel/v2.4/) and grab linux-2.4.1.tar.gz (as of 2/02/01) and grab 2.4 modutils here (you must install it by rpm -U modutil*)


Step One

mv linux-2.4* /usr/src
cd /usr/src
rm linux
tar -zxvf linux-2.4*
mv linux linux-2.4.1
ln -sf linux-2.4.1 linux
cd linux
make menuconfig
If you get errors about unexpected EOF or anything else, don't worry, it should work regardless.


Step Two

{keep in mind, when I say "nothing (up to you..)" I mean keep everything that is already there}

You should be at the main menuconfig section right now. Here is what I choose:

Code maturity level options: nothing (up to you..)

Loadable module support: nothing (up to you..)

Processor type and features: (Yes) Pentium-II, Toshiba Laptop Support(*), MTRR, Math Emulation

General setup: (Yes) Advanced Power Management, PCMCIA->i82365 support

Memory Technology Devices (MTD): nothing (up to you..)

Parallel port support: nothing (up to you..)

Plug and Play: nothing (up to you..)

Block Devices: nothing (up to you..)

Multi-device support (RAID and LVM): nothing (up to you..)

(note: this is personal preference, use your own judgement on this option!!) Networking options: (Yes) Kernel/User netlink socket, Routing Messages, Netlink device(*), Network Packet Filtering, Network Packet Filtering & debugging, IP: TCP syncookie support, IP: Netfilter->Connection tracking(*), FTP, IP Tables(*), {all *'s} limit match support, mac address support, netfilter mark match support, multiple port match support, tos match support, connection state match support, packet filtering, reject target support, full NAT, masquerade support, redirect target support, packet mangling, tos target support, mark target support, log target support

Telephony support: nothing (up to you..)

ATA/IDE/MFM/RLL support: (Yes) IDE, ATA, and ATAPI Block devices->PCMCIA IDE support

SCSI support: nothing (up to you..)

I20 device support: nothing (up to you..)

Network device support: (Yes) {if you are using a modem} PPP support(*), PPP support for async, PPP Deflate, PCMCIA network device support->{select your card} NE2000 should be appropriate

Amateur Radio support: nothing (up to you..)

IrDA support: nothing (up to you..if you have optical mouse, check this out)

ISDN subsystem: nothing (up to you..)

Old CD-ROM drivers: nothing (up to you..)

Input core support: nothing (up to you..)

Character devices: nothing (up to you..)

Multimedia devices: nothing (up to you..)

Filesystems: (Yes) Quota support, Dos FAT fs support(*), MSDOS fs support(*), UMSDOS(*), VFAT support(*), NTFS file system support(*).

Console Drivers: nothing (up to you..)

Sound: (Yes) {get rid of Craetive Ensoniq} Crystal CS4281(*)

USB support: nothing (up to you..)

Kernel Hacking: nothing (up to you..)


Save and exit the configuration.


Step Three

Now for the long compiling parts.. here are the commands:

make dep
make bzImage
# you should backup your old modules before adding new ones
mv /lib/modules/{kernel_release} /lib/modules/{kernel_release.old}
make modules
make modules_install
make bzlilo
/sbin/mkinitrd /boot/initrd-2.4.1.img 2.4.1

Okay.. now to make the final changes - Pull up /etc/lilo.conf with your favorite editor:

# Sample lilo.conf file:
boot=/dev/hda
map=/System.map
prompt
timeout=50
default=linux
              
image=/boot/vmlinuz-2.2.13-13abit
        label=oldlinux
        initrd=/boot/initrd-2.2.13-13abit.img
        read-only
        root=/dev/hda5

image=/vmlinuz
        label=linux
		initrd=/boot/initrd-2.4.1.img
		root=/dev/hda5

other=/dev/hda1
	    label=dos

A couple notes: make sure you have the initrd=/boot/initrd-2.4.1.img, image=/vmlinuz, and map=/System.map

This will allow you to bootup to your old (in my case, 2.2.13-13abit) kernel if your new kernel fails.