I'd done a lot of C/unix programming the in the past but no system/kernel stuff, so most of this was new to me.
I put this here because most descriptions make compiling a kernel sound harder than it is:
1: Download: http://www.kernel.org/pub/linux/kernel/ ... .5.tar.bz2 (or the version you want, of course).
2: uncompress/untar, and cd into "linux-3.5.0"
3: $ make mrproper
(This "cleans" the code - whatever tht means?)
4: Plug in all your gizmos - sd cards, camera, USB drives - and turn them on, mount, etc.
5: $ make localmodconfig
(This'll see what drivers and such are needed for your devices, and make the config. There's a zillion obscure options on the "menuconfig" method, so I didn't do it that way.)
Edit: Now I'm making another: after localmodconfig run "$ make gconfig", which is MUCH better than menuconfig but requires gtk-dev, etc.
6: $ make -j2 ( -j2 = use 2 processors)
(This takes a long time - half hour or more, typically)
I backed up /boot and /lib/modules, then:
7: $ sudo make modules_install (creates files in /lib/modules/version-name)
8: $ sudo make install (creates files in /boot)
(I had some errors on vbox stuff - which probably shouldn't even be there - and ignored them. This step took several minutes).
9: $ cd /boot
10: $ sudo mkinitramfs -o initrd.img-3.5.0 3.5.0 (make the initrd file).
9: Run update-grub or edit the grub file (grub.cfg or menu.lst).
Much to my amazement it booted on the first try and all gizmos seem to work