Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1744394
  • 博文数量: 1493
  • 博客积分: 38
  • 博客等级: 民兵
  • 技术积分: 5834
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-19 17:28
文章分类

全部博文(1493)

文章存档

2016年(11)

2015年(38)

2014年(137)

2013年(253)

2012年(1054)

2011年(1)

分类:

2012-08-13 08:34:44

原文地址: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变量中设定的模块



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

上一篇:Linux中的split

下一篇:Ubuntu 下设置分辨率

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