- 论坛徽章:
- 0
|
最简单的模块例子,编写代码:
/root/ldd/hello/hello.c
/root/ldd/hello/Makefile
#make -C /usr/src/linux M=/root/ldd/hello/ modules
附代码:
/* hello.c */
#include /* headfile which any module will need */
#include /* related Macro of init&exit */
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk("hello module init\n");
return 0;
}
static void hello_exit(void)
{
printk("hello module exit\n");
}
module_init(hello_init);
module_exit(hello_exit);
/* Makefile */
obj-m := hello.o
或更通用的Makefile
/* Makefile */
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/74638/showart_1117330.html |
|