七度黑光---只为伊人守侯 和我共同营造苍凉的远方 醉解千愁,他处不堪留 我冷因为我看到世界的冷漠,我傲因为孤独的灵魂漂泊于芸芸众生之上,我酷因为没被事故磨去棱角,我狂因为愿意用生命去追求理想,我痴因为还相信爱情的魔力 我的笑隐约透露着孤独,快乐背后深深藏着痛楚,坚强的面对然后偷偷的哭.......

在刚刚编译出来的内核上编译的内核模块

2008-03-12 15:46:46 / 个人分类:linux学习笔记

以下是内核模块的编译:

 

以一个非常简单的程序hello.c为例:

 

/*hello.c*/

 

#include <linux/init.h>

#include <linux/module.h>

MODULE_LICENSE("GPL");   //General Public License

 

static int hello_init(void)

{

printk(KERN_ALERT "Hello, world\n");

return 0;

}

 

static void hello_exit(void)

{

printk(KERN_ALERT"Goodbye world\n");

}

 

module_init(hello_init);

module_exit(hello_exit);

 

Makefile文件的内容为:

obj-m := hello.o

KERNELDIR := /usr/src/kernels/linux-2.6.24/

modules:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

clean:

rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

其中,hello.cMakefile文件应该位于同一个目录下,,本文的两个文件都位于/var/ftp/hello

编译和装载模块:

在文件所处的目录下,执行:

# make

使用

#insmod hello.ko

#dmesg

#lsmod

之后的结果截图:

 

在使用

#rmmod hello

#dmesg

之后的截图:

 

 

 

 


TAG: linux学习笔记

我来说两句

-5 -3 -1 - +1 +3 +5

Open Toolbar