It is incredibly easy to compile your own kernel on Debian using kernel-package. See e.g. http://verahill.blogspot.com.au/2013/02/342-compiling-kernel-38-on-debian.html
In the interest of learning how to compile a kernel in a more generic way which is applicable to non-debian systems (arch, red hat etc.), here's a method which doesn't rely on kpkg (kernel-package).
The downside is that this method does not produce a set of .deb files, and that you can't uninstall it using apt.
I'll be brief since most things are covered e.g. here. I looked at this post when writing this.
sudo apt-get install build-essential ncurses-bin mkdir ~/tmp cd ~/tmp wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.8.tar.bz2 tar xvf linux-3.8.tar.bz2 cd linux-3.8/ cat /boot/config-`uname -r`>.config make oldconfig
Once you're done answering the questions, do
time make -j3
This takes 29 minutes (AMD Athlon II X3).
time make -j3 modules
This takes 4 minutes. Finish by running
sudo make modules_install sudo make headers_install INSTALL_HDR_PATH=/usr/src/linux-3.8.0 sudo make install
Note that the default path for the headers is /usr/include, which doesn't play well with most programs that check for the presence of headers before installation, so use INSTALL_HDR_PATH to specify the destination (at least on debian).
make install takes care of initramfs and grub-update as well and generates
/boot/config-3.8.0And that's really it -- compiling a kernel even without kernel-packages is pretty easy. Reboot and everything should be in working order.