Next
Previous
Contents
This section is written by
Al Dev
The latest version of this section is at
http://www.aldev.8m.com and click on
"Quick Steps to recompile linux kernel". Mirror site is at
http://aldev.webjump.com.
A copy of the above web-site is reproduced here -
Kernel re-compile is required in order to make the kernel very lean
and which will result in FASTER operating system . It is also
required to support any new devices.
- Login in as 'root' throughout all these steps. Mount Redhat linux cdrom and install the linux kernel source rpm
cd /mnt/cdrom/RedHat/RPMS
rpm -i kernel-headers*.rpm
rpm -i kernel-sources*.rpm
rpm -i bin86*.rpm
(The bin86*.rpm is required only for OLDER Linux systems like redhat 5.x.
Install the Intel assembler 'as86' command. Get from
http://rpmfind.net/linux/RPM/mandrake/7.1/Mandrake/RPMS/bin86-0.4-12mdk.i586.html)
or at
http://rpmfind.net/linux/RPM/kondara/jirai/i586/bin86-0.4-8k.i586.html
- Start X-windows with 'startx'.
cd /usr/src/linux
make xconfig
The "make xconfig" brings up a user friendly GUI interface! DO NOT
use 'make config' which is a command-line option (
use this only if you CANNOT bring up X-window). You load
the configuration file from /usr/src/linux/arch/i386/config.in
- Enable the Loadable kernel modules support! See these man pages
man lsmod
man insmod
man rmmod
man depmod
With this option you can load/unload the device drivers
dynamically on running linux system on the fly.
- Save and Exit "make xconfig". And now, do -
make dep
make clean
- Read the following file (to gain some knowledge about kernel building...) -
man less
less /usr/src/linux/arch/i386/config.in
Type 'h' for help and to navigate press i, j, k, l, h or arrow, page up/down keys.
- Now, give the make command -
cd /usr/src/linux
man nohup
nohup make bzImage &
tail nohup.out (.... to monitor the progress)
This will put the kernel in /usr/src/linux/arch/i386/boot/bzImage
man tail
- After bzImage is successful, copy the kernel image to /boot directory -
cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage.myker
You must copy the new kernel image to /boot directory, otherwise the new kernel may not boot. And then read the manual page on lilo -
man lilo
man lilo.conf
And edit /etc/lilo.conf file and put these lines -
image=/boot/bzImage.myker
label=myker
root=/dev/hda1
read-only
You can check device name for 'root=' with the command -
df /boot
- Now give
lilo ;
lilo -q ;
You must re-run lilo even if entry 'myker' exists, everytime you create a new bzImage.
- Reboot the machine and at lilo press tab key and
type 'myker' If it boots then you did a good job! Otherwise at lilo
select your old kernel, boot and re-try all over again. Your old kernel
is still intact at say /boot/vmlinuz-2.0.34-0.6
- Loadable Modules: Boot new kernel and install the loadable modules from RedHat Linux cdrom
rpm -i /mnt/cdrom/contrib/kernel-modules*.rpm ....(For old linux systems which do not have
insmod pre-installed)
man insmod
insmod
- If your linux is already had loadable module enabled, then check
for files in /lib/modules. The step given below may not be
needed. Build modules by installing kernel-source*.rpm and kernel-headers*.rpm.
cd /usr/src/linux
make modules
make install_modules
- Since the new kernel 'myker' boots, you can create the boot disk. Insert a blank floppy into floppy drive and -
cd /usr/src/linux
make bzdisk
Next
Previous
Contents