How to install Kernel v2.4.x.


First, get the newest Kernel from www.Kernel.org.
I'm unsing linux-2.4.1.tar.gz but this applies to any 2.2.X and 2.4.X Kernel.



Bold stuff means it's a command and you have to type it in Don't type the  '  they are for Lynx users
Underlined stuff are hints, files, or folders.

1. login as 'root'
2. 'cp linux-2.4.2.tar.gz /usr/src/'
3. 'cd /usr/src/'
4a. Check if you old Kernel source is in /usr/src/linux if so, do 'mv /usr/src/linux linux-X.X.X' where X.X.X is your curent kernel version. This will keep your old Kernel source it case you don't like your new kernel. You can remove it later.
5. 'tar -zxvf linux-2.4.2.tar.gz'
6. Now move you new Kernel source, 'mv /usr/src/linux /usr/src/linux-2.4.2' and create a link to it 'ln -s /usr/src/linux-2.4.2 /usr/src/linux'
7. Check the file 'linux/Documentaion/Changes' for the latest requirements.
o Gnu C   |  2.91.66    # gcc --version
o Gnu make  |  3.77    # make --version
o binutils  |   2.9.1.0.25     # ld -v
o util-linux  |   2.10o     # fdformat --version
o modutils  |   2.4.0      # insmod -V
o e2fsprogs  |   1.19     # tune2fs --version
o pcmcia-cs  |   3.1.21     # cardmgr -V
o PPP   |  2.4.0     # pppd --version
o isdn4k-utils  |   3.1pre1     # isdnctrl 2>&1|grep version

Check 'linux/Documentaion/Changes' for the Download locations if you don't have the correct version.
8. Now you have the correct software you need to run 'make mrproper' in /usr/src/linux/
9. You are ready to configure your Kernel, you have 4 choices:
    'make config'   Config with bash, config asks you the config questions
    'make menuconfig'   Text based color menus, radiolists & dialogs.
    'make xconfig'   X windows based configuration tool.
    'make oldconfig'   Default all questions based on the contents of your existing ./.config file.
I recommend using 'make menuconfig' or 'make xconfig'
10. When you are done configuring your kernel AND you saved the configuration, you should check you '/usr/src/linux/Makefile' if the paths are correct. You proberbly don't need to change anything - but you should take a look!
11. REDHAT USERES WATCH OUT!!! RedHat puts it's Kernel and stuff into /boot so uncomment the line '#export INSTALL_PATH=/boot' (that means remove the #)

AND
In RedHat 7.0 gcc (compiler) is corrupt download the newest kgcc from RedHat.com and change the '/usr/src/linux/Makefile' so it is using kgcc instead of gcc.

HOSTCC = kgcc
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer

CROSS_COMPILE =

#
# Include the make variables (CC, etc...)
#

AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)kgcc
Change the two bold lines!
12. Now it's time to run 'make dep' no probs so far...
13. I ran 'make bzImage' ....cool so far
14. In order to use ppp I had to run 'mknod /dev/ppp c 108 0' to create a device called ppp
15. If you build ppp support as modules, you will need the following in your '/etc/modules.conf' file:

alias char-major-108 ppp_generic
alias /dev/ppp ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-14 ppp_synctty
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
16. Now I ran 'make modules' ...no errors so far....
17. Now install the modules 'make modules_install'
18. When it's done, 'cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.2'
19. edit 'vi /etc/lilo.conf' and add the new kernel image.

boot=/dev/hda
map=/boot/map

prompt
timeout=50
message=/boot/message
default=new

image=/boot/vmlinuz-2.4.2
label=new
read-only
root=/dev/hda5

image=/boot/vmlinuz-2.2.16-22
label=old
read-only
root=/dev/hda5
20. NOTE: the devices on your box might be different then in the example above.
21. run 'lilo'
22. If you don't get an error from Lilo, and you think that you did everything you are sopose to do, type 'shutdown -r now'
23. That's it, evertying should be up and running, if you get messages like (fat not supported by kernel, ne2000 not supproted by kernel) you need to go toStep 9,10,11,.... again and insert the configuration which is not working into the kernel.
--- You can patch a Kernel like this:
Copy your patch file into /usr/src/
Now execute 'bzip2 -dc patch-2.4.3.bz2 | patch -p0' and check the kernel version with '/usr/src/linux/scripts/patch-kernel linux'
Created by Skylinux