免费注册 查看新帖 |

Chinaunix

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

2.6模块驱动的Makefile [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-15 15:22 |只看该作者 |倒序浏览
2.4下编译模块:
    # gcc -c -O2 -DMODULE -D__KERNEL__ -I/usr/src/linux hello .c
    # insmod test.o
2.6却非要个如下的Makefile:

  1. obj-m := module.o
  2. KDIR := /lib/modules/$(shell uname -r)/build
  3. PWD := $(shell pwd)
  4. default:
  5.     $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
复制代码


刚接触2.6模块编程,对这个Makefile我不是很明白(刚开始接触linux,makefile等,我很菜,^_^):
1.makefile是怎么找到依赖文件的?是根据目标文件来搜寻同名的c 文件的吗?
2.KDIR这个目录下的东西到底做啥用的?内核不是在/usr/src/kernels/2.6.11-1.1369_FC4-i686下吗?
3.$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules这条语句是啥意思啊? SUBDIRS代表啥意思?
4.这个makefile中不是没编译命令嘛,它是怎么编译的呢?
5.我要交叉编译模块,那makefile应该怎么改呢,在哪指定交叉编译器啊?KDIR是不是就设成与开发板相应的内核源代码的目录?

谢谢前辈们解答!

论坛徽章:
0
2 [报告]
发表于 2006-04-15 17:42 |只看该作者
【1】从这个makefile上看,没有检查依赖关系
【2】是用来安装Kernel Module的目标目录
【3,4】man make,看一下-C的意思,这个makefile会转去执行KDIR目录下的makefile去了
【5】我不懂交叉编译,就不乱说了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP