Chinaunix首页 | 论坛 | 博客
  • 博客访问: 524955
  • 博文数量: 257
  • 博客积分: 1666
  • 博客等级: 上尉
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 23:02
文章分类

全部博文(257)

文章存档

2013年(2)

2012年(255)

分类:

2012-08-13 13:29:38

原文地址:linux编译内核模块 作者:kuce2006

内核模块的编译
linux documentation/kbuild下有内核构造的细节描述
如果我们需要构造模块名称为module.ko,并由两个源文件生成,比如file1.c和file2.c。
正确的makefile可以如下编写:

obj-m := module.o
module-objs := file1.o file2.o

obj-m的赋值说明有一个模块需要从目标文件module.o中构造(GUN make 扩展语法),改从该目标文件中构造的模块名称为module.ko
module-objs的赋值表示,该模块的编译依赖file1.o,file2.o

为了让上述makefile文件正常工作,必须在大的内核构造系统中调用他们。假设内核源码树保存在~/kernel-2.6目录下,用来构造模块的make命令应该是
make -C ~/kernel-2.6 M=‘pwd‘ modeles

上述命令-C表示改编目录到其指定位置,内核源代码目录,其中保存有内核顶层的makefile文件。
M=选项让makefile在构造modules目标之前返回到模块源代码目录。modules目标指向obj-m变量中设定的模块



阅读(253) | 评论(0) | 转发(0) |
0

上一篇:Linux中的split

下一篇:U-BOOT学习笔记一

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