I’ve lost count of how many different kernels I’ve built for different systems, but in the past I always grab the vanilla source from kernel.org and experiment to get the necessary hardware support. Today I decided to learn how to play nice with Ubuntu’s kernel build facilities. I followed these instructions without issue (except that they show a space between options like –initrd, where there should be no space). Here’s the short version for Ubuntu Intrepid Ibex:
# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
# apt-get install linux-source
# cd /usr/src
# tar xjvf linux-source-2.6.27.tar.bz2
# ln -s linux-source-2.6.27 linux
# cd linux
# cp /boot/config-2.6.27-9-generic ./.config
# make menuconfig
# make-kpkg clean
# fakeroot make-kpkg --initrd --append-to-version=jm1 kernel_image kernel_headers
# dpkg -i linux-image-2.6.27.2jm1_2.6.27.2jm1-10.00.Custom_i386.deb
# dpkg -i linux-headers-2.6.27.2jm1_2.6.27.2jm1-10.00.Custom_i386.deb