I tried to follow the instructions (here) as I was getting the following error when trying to build kernel modules (a simple hello_world module) -
error: linux/module.h: No such file or directory
and got the following errors -
~/workspace/work/rtl$ sudo make
make -C /lib/modules/2.6.28-15-generic/build M= modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.28-15-generic'
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
HOSTCC scripts/basic/hash
HOSTCC scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function ‘conf_askvalue’:
scripts/kconfig/conf.c:104: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
scripts/kconfig/conf.c: In function ‘conf_choice’:
scripts/kconfig/conf.c:306: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
HOSTCC scripts/kconfig/kxgettext.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf -s arch/x86/Kconfig
make[1]: Leaving directory `/usr/src/linux-headers-2.6.28-15-generic'
make[1]: Entering directory `/usr/src/linux-headers-2.6.28-15-generic'
CHK include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
make[2]: *** No rule to make target `kernel/bounds.c', needed by `kernel/bounds.s'. Stop.
make[1]: *** [prepare0] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.28-15-generic'
make: *** [all] Error 2
I've been following the steps above to get past the error. I first tried installing the linux-headers -
sudo apt-get --reinstall install linux-headers-`uname -r`
but I cannot see any file of the name linux-source-2.6.28-15-generic.tar.bz2. In fact, I don't see any compressed file (tar.bz2) at all!

Have I missed out installing something?