1.本地主机的参数
root@vickytong:/home/project/modules# uname -a
Linux vickytong 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux
root@vickytong:/home/project/modules# ls /usr/src/linux-headers-3.2.0-23-generic-pae/
arch crypto drivers fs init Kbuild kernel Makefile Module.symvers samples security source ubuntu virt
block Documentation firmware include ipc Kconfig lib mm net scripts sound tools usr
可以看到,目录/usr/src/linux-headers-3.2.0-23-generic-pae/ 就是在本地编译内核模块需要的头文件
2.编写内核模块文件
编写自己的内核模块文件myModule.c,内容如下:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
static int __init myModule_init(void)
{
printk(KERN_INFO"myModule init.\r\n");
return 0;
}
static void __exit myModule_exit(void)
{
printk(KERN_INFO"myModule exit.\r\n");
}
module_init(myModule_init);
module_exit(myModule_exit);
MODULE_LICENSE("GPL");
3.编写Makefile
#kernel代码的路径
KERN_DIR = /usr/src/linux-headers-3.2.0-23-generic-pae/
all:
make