免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2596 | 回复: 7
打印 上一主题 下一主题

怎么编写linux2.6.x下内核模块的Makefile [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-13 19:37 |只看该作者 |倒序浏览
初学linux内核编程,这个我一直搞不定Makefile的编写。

最好能说明如下情况时Makefile的编写:
编写三个模块mod1、mod2、mod3(对应的文件分别为mod1.c、mod1.h;mod2.c、mod2.h;mod3.c、mod3.h),其中mod2要依赖到mod1.c中定义的某个变量。

哪位大虾能写个示范,并给出简单的分析,本人感激不尽

论坛徽章:
0
2 [报告]
发表于 2006-02-13 21:12 |只看该作者
http://down.linuxabc.net/book/os/linux/Linux%201.0核心游记.rar

里面有说
该书是分析Linux1.0的

论坛徽章:
0
3 [报告]
发表于 2006-02-14 09:32 |只看该作者

回复 1楼 wwwspirit 的帖子

如下是可以在2.6.12版本上边通过的模块的Makefile内容,非常简单。位于/home/kern_mod目录下:
#Makefile for Modules for test

obj-m := mod_test.o
obj-m := mod_prt.o

在kernel-2.6.12目录下执行 make M=/home/kern_mod就可以了。将会再目录下创建对应的模块mod_test.ko和mod_prt.ko

论坛徽章:
0
4 [报告]
发表于 2006-02-14 10:00 |只看该作者

回复 1楼 wwwspirit 的帖子

可以将三个头文件放在gcc -I参数指定的目录。假如所有的.c文件的所有目录为/home/spirit,那么可以在

此目录下创建目录include,并将所有的.h文件放在include的目录下。

描述编译这三个模块的Makefile内容如下:

# Makefile for Modules test

CFLAGS += /home/spirit/include

obj-m += mod1.o
obj-m += mod2.o
obj-m += mod3.o

# end Makefile

在linux源代码的目录下(linux-2.6.xx),执行make M=/home/spirit,就可以生成mod1.ko、mod2.ko和

mod3.ko这三个可加载模块。
使用insmod命令就可以加载这三个内核模块了。因为mod2依赖于mod1,因此在加载模块时,需要mod2在mod1

之后进行。

关于如何在Linux环境下编写Makefile和使用GNU make工具。可参考 http://xhbdahai.cublog.cn。网页上对GNU make v3.80版本的用法和如何编写Makefile有完整、详细的说明。

论坛徽章:
0
5 [报告]
发表于 2006-02-14 10:14 |只看该作者

回复 1楼 wwwspirit 的帖子

请参阅LDDR3中的Makefile,写得非常好,也非常简单.
可以在网上下载源码.

论坛徽章:
0
6 [报告]
发表于 2006-02-14 17:30 |只看该作者
搞定了,谢谢楼上诸位。

论坛徽章:
0
7 [报告]
发表于 2006-02-15 12:18 |只看该作者
原帖由 xhbdahai 于 2006-2-14 10:00 发表
可以将三个头文件放在gcc -I参数指定的目录。假如所有的.c文件的所有目录为/home/spirit,那么可以在

此目录下创建目录include,并将所有的.h文件放在include的目录下。

描述编译这三个模块的Makefile内容如 ...



一定要在源码目录下进行吗?
在/home/user下
把源码目录用-I /usr/src/linux/include 包含进来不可以吗?

(本人是新手,如果有露怯之处,请大家不要笑之,不胜感激)

论坛徽章:
0
8 [报告]
发表于 2006-02-15 12:31 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP