Ok, first download the 2.4.21 kernel from kernel.org and unpack it into /usr/src
(Remove any previous kernel sources before doing this.)
This will create the directory /usr/src/linux-2.4.21. Then create a link called linux with "ln -s linux-2.4.21 linux"
I'm not sure if that step is needed any more, but just incase :-)
Now, in /usr/src/linux as root run "make menuconfig". This will take you into the kernel configurator. First of all enable "Prompt for development and/or .." in Code Maturity, and then go through the kernel options and set it up so it suits your system. Be sure (As previously stated) to enable AMD Viper support in IDE settings, and to also enable sound support and Ensonic 1370 support. (Might work with other cards, but I used this and it works fine for me)
Now when you have done this, exit and save, and then run "make dep bzImage modules modules_install"
This will take some time, and when its done you'll have a new compiled kernel image located at /usr/src/linux/arch/i386/boot called bzImage.
Move this kernel image to /boot and name it something like "linux2421" or "kickass_kernel_from_connyosis". You pick. :-)
If you are using LILO as boot loader, edit your /etc/lilo.conf so it finds your new kernel , save it and run /sbin/lilo. Then reboot and pick your new kernel.
If you are using grub as bootloader edit your /boot/grub/grub.conf (Or /boot/grub/menu.lst if you are using an older version) and add the correct info.
After you have booted into your new kernel, compile the nvnet and nvaudio modules, install them and run modprobe nvnet and modprobe nvaudio. Now everything should work fine. (You need to reinstall these modules every time you compile a new kernel. Same goes for the nvidia graphics driver)
"Never bump a baby carriage out of a crosswalk unless the kid's really asking for it."