[root@localhost test]# ls helloworld.c Makefile [root@localhost test]# make make -C /lib/modules/2.6.32-71.29.1.el6.i686/build M=/home/android/test modules make[1]: Entering directory `/usr/src/kernels/2.6.32-71.29.1.el6.i686' CC [M] /home/android/test/helloworld.o Building modules, stage 2. MODPOST 1 modules CC /home/android/test/helloworld.mod.o LD [M] /home/android/test/helloworld.ko.unsigned NO SIGN [M] /home/android/test/helloworld.ko make[1]: Leaving directory `/usr/src/kernels/2.6.32-71.29.1.el6.i686' [root@localhost test]# ls helloworld.c helloworld.mod.c Makefile helloworld.ko helloworld.mod.o modules.order helloworld.ko.unsigned helloworld.o Module.symvers [root@localhost test]# insmod helloworld.ko insmod: error inserting 'helloworld.ko': -1 File exists [root@localhost test]# rmmod helloworld.ko [root@localhost test]# ls helloworld.c helloworld.mod.c Makefile helloworld.ko helloworld.mod.o modules.order helloworld.ko.unsigned helloworld.o Module.symvers [root@localhost test]# insmod helloworld.ko [root@localhost test]# modinfo helloworld.ko filename: helloworld.ko author: yuanwei license: GPL srcversion: E074EFF1EF4BF929639B50D depends: vermagic: 2.6.32-71.29.1.el6.i686 SMP mod_unload modversions 686 [root@localhost test]#
附上 helloworld 源码和Makefile
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int __init hellokernel_init(void)
{
printk(KERN_INFO "Hello kernel!\n");
return 0;
}
static void __exit hellokernel_exit(void)
{
printk(KERN_INFO "Exit kernel!\n");
}
module_init(hellokernel_init);
module_exit(hellokernel_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("yuanwei");
~
~
~
~
obj-m := helloworld.o
PWD := $(shell pwd)
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
rm -rf *.o *~ core .*.cmd *.mod.c ./tmp_version *.ko.* modules.* Module.*
如果是CentOS 平台。需要安装kernel头文件
需要用YUM安装
[root@localhost test]# yum install kernel-devel
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: data.nicehosting.co.kr
* extras: data.nicehosting.co.kr
* updates: data.nicehosting.co.kr
Setting up Install Process
Package kernel-devel-2.6.32-71.29.1.el6.i686 already installed and latest version
Nothing to do