Alternatively, you can obtain the latest kernel source from your favorite vendor. For example, for RedHat, you would obtain: kernel-source-2.4.x.rpm and install it with rpm, then skip the first two steps in the next section.
1. Download kernel from: http://www.kernel.org/pub/linux/kernel/v2.4/ (I assume you get linux-2.4.5.tar.gz and that you put it into /usr/src) 2. Download Alan Cox patch from: http://www.kernel.org/pub/linux/kernel/people/alan/2.4/ (I assume you get patch-2.4.5-ac12.gz and that you put it into /usr/src) 3. su root 4. cd /usr/src 5. Ensure that the directory linux does not exist, or if it is linked, remove the link or change the name. 6. Unpack the kernel with: tar xvfz linux-2.4.5.tar.gz 7. Unpack the patch with: gunzip patch-2.4.5-ac12.gz 8. Move the kernel source into a different directory: mv linux linux-2.4.5 or mv linux linux-2.4.5-ac12 9. cd linux-2.4.5 10. Apply the patch with: patch -p1 <../patch-2.4.5-ac12 There should be no errors. 11. make mrproper 12. Find a valid configuration file, and make sure it has the following configuration statements. If not, please add them: CONFIG_USB=m CONFIG_USB_LONG_TIMEOUT=y CONFIG_USB_LARGE_CONFIG=y CONFIG_USB_HID=m CONFIG_USB_HIDDEV=m Note, the CONFIG_USB_LARGE_CONFIG does not seem to be present in some of the later kernels (e.g. 2.4.18) 13. make menuconfig or make xconfig (if you are running X) load a valid configuration file check the above values and ensure they are correct save config 14. Check what you saved by editing .config You can skip this if you have done kernel builds before. 15. make dep 16. make clean 17. make bzImage 18. make modules 19. make modules_install 20. make install 21. If you boot from a SCSI, you will need to make a new initrd image 22. Update /etc/lilo.conf to include the new kernel. If you are using grub, edit the /boot/grub config file and skip steps 24 and 25. 23. cd /etc (skip this if you are using grub) 24. lilo -v (skip this if you are using grub) 25. reboot 26. Ensure that uhci and hid are loaded by doing cat /proc/modules If not, load them by hand. modprobe uhci modprobe hid