まずは,Kernelをどこからかダウンロードしてきましょう。
http://www.kernel.org
等から取ってきてください。

ダウロードしたファイルを
/usr/src/linux-<取ってきたKernelのバージョン>
というディレクトリに持ってきます
私は,2.4.4をとってきたので linux-2.4.4
としました。
最後に
rm linux
ln -s linux-<取ってきたKernelのバージョン> Linux
として取ってきたKernelの入っているディレクトリに
シンボリックリンクを作成します。
もし,
rm linux
とした時に,これはディレクトリだよと文句をいってきたら
linuxという名前のディレクトリは他の名前に変更してください。

次に,カーネルの設定をします。
cd /usr/src/linux
make xconfig
とします。
Xを使用していない場合には
menuconfig
等を利用します。

xconfig
を起動してKernelに関するパラメータを設定します。
ほとんどy,n,mで選んでいきます。

終わったら,saveして終了です。
saveして終了すると
.config
というファイルが出力されます。

以前にKernelを設定したことがあり,その設定を利用したいのであれば, この".config"を
xconfig
のときに読み込みます。

カーネルのコンパイルです。
以下の順番で進めます。
make dep
make clean
make bzImage
make modules,
エラーがでれば再び
xconfig です。エラーの最後の方を読めば,だいたい何に問題があるのか, 見当がつくのでそこを変更します。
また,やたらと
xconfig
のときに,yを付けすぎると,エラーが出てしまうので注意します。

エラーがなくなったら
make modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz-<取ってきたバージョン>
cd /usr/src/linux
mv /boot/System.map /boot/system.map-<取ってきたバージョン>
ln -s /boot/System.map-<取ってきたバージョン> /boot/System.map
とします

最後にLILOの設定です。

/etc/lilo.conf
を編集します

image=/boot/vmlinuz-<取ってきたバージョン>
label=linux<取ってきたバージョン>
read-only
root=/dev/hda1

以上を追加します。
saveしたら
lilo -v
とします
うまくいっていれば再起動した時, lilo:のところに
linux-<取ってきたバージョン>
が追加されているはずです。