I never madde it beyond bzImage, but the following is what I tried.
1- download sources
* install the kernel sources of your distro. they will install in /usr/src/linux-version-number. You can also download a .tar.bz2 file at
http://www.kernel.org. Go to /usr/src/, and extract it with "tar jxf linux-2.4.22.tar.bz2"
* create a symlink from /usr/src/linux-version-number to /usr/src/linux, for example:
ls -s /usr/src/linux-2.4.22 /usr/src/linux
configure it
* if you can find the kernel configuration of your distro (maybe at the source cd??), I'd recommend you use it! ..to be sure you don't forget anything important The file should be copied/saved as /usr/src/linux/.config
* cd /usr/src/linux
* make menuconfig
Navigate through these config menu's, read the help for every option, the help usually gives suggestions too.
Compile drivers as modules (<M> ), and other features + file systems as built-in (<*> ) You could disable features if you're sure your system doesn't support this. removing built-in features speeds up your system kernel. At the general menu, choose your processor type. (will speed up too) If you want to dive in very deep, use the "dmesg | less" command to see what the kernel has to tell you, and what your system has/uses
* open /usr/src/linux/Makefile in a text editor, and upgrade the revision number, for example "-my1". (or you might overwrite your existing kernel modules)
compile it
* type these commands:
make dep
make clean
make bzImage
make modules
install it
make modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/linux-2.4.22-my1
cp /usr/src/linux/System.map /boot/System.map-2.4.22-my1
* create the links to System.map:
cd /boot
ln -s -f System.map-2.4.22-my1 System.map
* You may need to remove System.map first:
rm System.map
* update your boot loader.. (I'll assume it's lilo here)
edit /etc/lilo.conf, add another "image = /boot/linux-2.4.22-my1" line, etc..
* run lilo, and reboot.
* backup your .config: cp /usr/src/linux/.config /boot/config-2.4.22-my1.
* clean up compiler objects:
cd /usr/src/linux
make clean
make mrproper
