Chinaunix首页 | 论坛 | 博客
  • 博客访问: 314715
  • 博文数量: 63
  • 博客积分: 2018
  • 博客等级: 大尉
  • 技术积分: 694
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-23 16:34
文章存档

2010年(63)

我的朋友

分类: LINUX

2010-09-11 15:18:04

1. 首先在char/sep0718_char目录下编写源文件sep0718_hellomodule.c
 
#include
#include
#include
MODULE_LICENSE("GPL");
static int __init sep0718_hello_module_init(void)
{
printk("Hello, sep0718 module is installed !\n");
return 0;
}
 
static void __exit sep0718_hello_module_cleanup(void)
{
 printk("Good-bye, sep0718 module was removed!\n");
}
module_init(sep0718_hello_module_init);
module_exit(sep0718_hello_module_cleanup);
 
2. 修改当前目录的Kconfig 和 Makefile
2.1 Kconfig:
if SEP0718_CHAR
menu "sep0718 char device"

config SEP0718_GPIO
 tristate "sep0718 general gpio driver"

config SEP0718_HELLOMODULE
  tristate "sep0718 hello module driver(for testing)"
endmenu
 
endif
 
2.2 Makefile:
PWD = $(shell pwd)
KERNEL_SRC = /home/zhangyue/sep0718newest/sep0718linux-2.6.32
obj-m := sep0718_hellomodule.o
all:
 $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules
clean:
 rm -rf *.o *.ko
该Makefile可支持在当前目录直接make
 
3 若是支持源码树,则要确认上级目录中的Kconfig和Makefile索引本级目录的文件夹及Kconfig
 
4 遇到的问题:
在drivers/目录下新建了一个文件夹:modules,修改了drivers/目录下的Makefile:
obj-$(CONFIG_MODULES)  += modules/
 
这就引发了纠纷。。 在kernel目录下的Makefile也有:
obj-$(CONFIG_MODULES) += module.o
 
当勾掉drivers目录的Kconfig时,kernel的module也被勾掉了。。
 
 
 
 
阅读(1951) | 评论(0) | 转发(0) |
0

上一篇:Makefile中的wildcard和patsubst

下一篇:LLI和DMA

给主人留下些什么吧!~~