以下是我的源文件和Makefile文件
*************************************test.c***********************************
//MY first module test routine
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("huangchz");
static int test_init(void)
{
printk("Hello Test!/n");
return 0;
}
static void test_exit(void)
{
printk("Good bye Test!/n");
}
module_init(test_init);
module_exit(test_exit);
*********************************************************************************************
***************************************Makefile****************************************
#
# Makefile for test.c file
#
KDIR:=/lib/modules/$(shell uname -r)/build
obj-m:=test.o
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(RM) .*.cmd *.mod.c *.o *.ko -r .tmp*
***********************************************************************************************
把以上两个文件放在/opt/huang/mod目录下,然后执行make命令,可看到打印信息:
make -C /lib/modules/2.6.18-1.2798.fc6/build SUBDIRS=/opt/huang/ismod modules
make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2798.fc6-i586'
CC [M] /opt/huang/ismod/test.o
Building modules, stage 2.
MODPOST
CC /opt/huang/ismod/test.mod.o
LD [M] /opt/huang/ismod/test.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2798.fc6-i586'
说明已经编译成功,可以在/opt/huang/mod目录下生成了要加载的目标文件test.ko!
利用以下命令可以测试模块的功能已实现--------
安装模块
insmod test.ko
查看已经安装的模块
lsmod
或:cat /proc/modules
卸载模块
rmmod test.ko
查看模块输出信息
tail /var/log/messages
只是走了一遍编译内核的过程,对其中的原理要开始研究了!现在刚刚开始------------->>>>>>>>>>>>>