Have you ever given your kernel a rebuild? You may want to, go on over to the kernel HQ
www.kernel.org and get the latest stable kernel (2.4.19 as of now) and download it to /usr/src Make sure you have write permissions on the directory, I usually log in as root to do all of this.
Unpack your kernel using the following command:
cd /usr/src
tar xvzf linux-2.4.19.tar.gz
cd /usr/src/linux-2.4.19
and now we are in the kernel's directory. If you are in X, this may be a little easier for your first time. Run:
make xconfig
to start the ball rolling. This will bring up your kernel "configurator". Here you will be able to go step by step through each part of your kernel, picking out things you don't need, adding things you do, and modulizing others. Most of the time the "help" button next to each item will be very useful, and give you alot of information on the option. If you have any questions about certain options while picking through the kernel configurator head over here and do a search, or go to
www.google.com/linux and see what comes up.
After you have picked through the kernel, and you are ready to test it to see if you have made a "working" kernel for you system, choose save and exit. You should get a message saying "next you must run 'make dep'. So guess what? Next we will run:
make dep
This will help to satisfy all the dependencies you have created from the configure. This works most of the time for me. Sometimes though, you have to go back in and check some options (reading the help file will usually tell you) and sometimes satisfy those dependencies yourself.
Next we will clean up the files running:
make clean
Followed by the module builder:
make modules
and the module installer:
make modules_install
And now for the cruncher, we will build the kernel into a chunk of data:
make bzImage
The bzImage is a compressed kernel image. There are other options here, this is just the one I use.
It's very nice to see the screen crunching away, and know that you helped caused it all. Once it finishes you will get a message showing you the size of the file, and maybe something saying a warning about it being to big for a single floppy boot or something. Ignore that unless you are building a kernel for a floppy distro, or something similar.
Now we need to put the kernel somewhere so that the startup scripts can use it. Usually it's the /boot directory. So we will type:
cp /usr/src/linux-2.4.19/arch/i386/boot/bzImage /boot/bzImage.new
Notice the .new I added to the end of the copied file, this is to help if you have other bzImages in there, you can see what is the new kernel and you won't over write the other images.
If you have a current System.map file in /boot, it's likely a symlink. So simply remove the symlink (if that's what it is) or rename it with:
mv /boot/System.map /boot/System.map.old
And now copy over your new System.map from the lowest level directory in your kernel directory:
cp /usr/src/linux-2.4.19/System.map /boot/System.map.new
And create a new symlink to it:
ln -sf /boot/System.map.new /boot/System.map
Now we need to edit your /etc/lilo.conf file to display the changes and add the new kernel option so you can boot it. If you use something other than lilo to boot, good luck.
Using your favorite text editor, open /etc/lilo.conf In my example we will use mine, pico.
pico /etc/lilo.conf
Scroll down the last line in the file and add the following:
image = /boot/bzImage.new
root = /dev/hda1 (this is wherever your / directory is located, if you have 1 hard drive, and only linux installed, then it's hopefully going to match my example)
label = Newkernel
read-only
This addition is just an example, if you have questions on what to add on your particular system, and can't figure it out from the example above, ask.
Now exit your favorite text editor:
CTRL + X
Save the file:
Y
And write it:
ENTER
Now run lilo to install the new entry:
/sbin/lilo -v
And watch to make sure there are no errors.
You can now reboot your system, and try out your new kernel.
Good luck, and someone correct me if I am wrong on any part of that.
Cool