[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.chelloworld.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.chelloworld.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