In order to build a kernel module outside of a kernel source tree, I understand it is necessary to set up a makefile containing lines such as ... obj-m:=driver.o ... and quote the KERNELDIR directory to the make system
(e.g. see O'Reilly book on Linux device drivers)
However, doing this with Centos either 'as-is', or even after doing a yum remove kernel-devel-<version> then yum upgrade kernel-devel, (to cause a reinstall of the latest version) leads to a series of error messages, e.g.:
In file included from include/asm/smp.h:18, from include/linux/smp.h:96, from include/linux/sched.h:23, from include/linux/module.h:10, from /home/fred/appbuild/mydriver/mydriver.c:22: include/asm/mpspec.h:6:25: mach_mpspec.h: No such file or directory
although I am not set up for SMP !
These errors are 'fixed' if I add to the make's CFLAGS, -I$(KERNELDIR)/include/asm-386/mach-default
but I would guess that this should really happen by means of some symlink trickery, which was set up when the package gets installed.
I do not think that everything else is correct if I do this !
Am I missing another installation step ?
Thanks. MikeW