. The obvious place to put it is /usr/src. Then do :
cd /usr/src
rm linux
tar jxvf linux-2.4.16.tar.bz2
mv linux linux-2.4.16
ln -s linux-2.4.16 linux
cd linux
make oldconfig
make xconfig (or make menuconfig if not in X) -- Select all the bits you want to build incl ntfs under filesystems....
make dep
make clean
make bzImage
make modules
make modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.16
cp System.map /boot/System.map-2.4.16
If you have scsi then do :
/sbin/mkinitrd /boot/initrd-2.4.16.img 2.4.16
Next you alter /etc/lilo.conf and add a new image block for the new kernel :
image = /boot/vmlinuz-2.4.16
root = /dev/hda7 <-- example only as per your existing block
label = Linux2416
read-only
If your existing image block has an 'append=' line copy that to the new image block and, if required, add the 'initrd=/boot/initrd-2.4.16.img' entry.
Then you update lilo in the boot sector with /sbin/lilo -v . I tend to do all of the above as root for simplicity although not all steps require it.
Then reboot...
N.B. Be careful if you have redhat 7.2 or Mandrake 8.1 with ext3 / jfs or similar. The 'standard' kernels provided with those distros have been patched (i.e. are different to the vanilla ones from kernel.org on which they are based). If you need ext3 or similar you would have to get the source code patches and patch the kernel source after untarring and before the 'make xconfig' stage.
Yes - you either compile things in (making your bzImage larger !) or as modules which are loadable 'on demand' . There are advantages and disadvantages to both approaches. The main advantage to the modular method is that memory is freed when the resource is not used because, by default, modules are removed from memory if not used for a period of time.
If its the first time you have done your own kernel then its highly likely you'll have forgotten something. If you look in your /etc/modules.conf file you should see reference to all the normally used modules on your system. You have to work out whats missing and to the compile / build again.
Items like soundcards and network cards are invariably supplied by redhat et al as modules for fairly obvious reasons - the kernels on their CDs have to be quite generic and they just set everything else to be compiled as a module to allow for all variations of hardware. If you look in the /lib/modules/2.4.2-2 (or whatever) directory of your original kernel you will see a large number of files there for all manner of hardware.
On sound in particular, you might like to try the alsa stuff (
. You can do that outside of the kernel build as an add-on. I think Suse use alsa by default and at one time it was supposed to be replacing the stuff in the kernel - not sure about that now though.
Also, for info, the latest kernel 2.4.17 has the ext3 stuff merged into the main source code tree so that issue I referred to above is no longer a problem at least for ext3. It was actually merged in 2.4.15 - hadn't spotted it at the time....
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.