免费注册 查看新帖 |

Chinaunix

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

Fedora中建立内核源码树并且单独编译模块的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览
   (原创)

    这几天,一直困惑于在Fedora中写好的驱动程序别编译成模块,由于现在的Fedora以及很多linux的发行版本都取消了在/usr/src目录的内核源码树,导致在做开发的时候遇到了很多问题。下面就这类问题介绍一下解决的办法。

    首先,查看/usr/src/kernel目录中有没有内核源码树,如果没有,在root账户执行以下命令:

                  yum install kernel-devel

   前提是必须连上网络,如果没有连接到网络,可以拷贝源码树到/usr/src/kernel。完成以后,查看/usr/src/kernel会发现有了内核源码树。如图

下面介绍利用此内核源码树编译内核的方法,比如,我的root目录有module.c的模块测试源文件,那么我们还需要编写一个Makefile,这个Makefile几乎是通用的,代码如下:

obj-m    :=module.o
KDIR    :=/usr/src/kernels/2.6.34.8-68.fc13.i686             #指定内核源码树,以我的情况为例
PWD    :=$(shell pwd)

default:

    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

clean:

   rm -rf *.ko

   rm -rf *.mod.*

   rm -rf .*.cmd

   rm -rf *.o

#注意类似$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules这样的命令前面必须有tab键,不能有空格键

(作者:pstary)

下面,只要在当前还有module.c和Makefile的目录执行make,即可看到.ko文件的产生

如图:

这里只说明了单个源文件的编译方法,如果有多个源文件只需要按章Makefile的规则在obj-m    :=module.o这一句上添加一些代码即可

转载请注明来源


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP