• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Building External Linux Kernel Modules Under FC3

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 9次 | 进入软件测试论坛讨论

领测软件测试网

Building External Linux Kernel Modules UnderFedora Core 3

Kernel Preparation

First you need to fetch the proper kernel source rpm. Obtainyour kernel version using the command:

# uname -r

My computer gives:

2.6.9-1.667

Fetch the kernel source rpm from a rpmfind web site. I obtainedkernel-2.6.9-1.667.FC3.src.rpm. Next, install thekernel source rpm using rpm as root. I used thefollowing command. Your kernel version may vary.

# rpm -ivh kernel-2.6.9-1.667.FC3.src.rpm

Now change your working directory to the SPECSdirectory and extract the kernel source using rpmbuild:

# cd /usr/src/redhat/SPECS
# rpmbuild -bp kernel-2.6.spec

rpmbuild only prepared the kernel for compilation.We do not need to actually compile kernel. Next, change yourcurrent working directory to the kernel source. The path willvary depending on your kernel version. Copy the appropriatearchitecture either i586, i686, i586-smp, or i686-smp config filefrom the configs directory to the root of the kerneltree and call the copy .config. Use unameto obtain your architecture. My computer has an architecture ofi686.

# cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
# uname -m
i686
# cp configs/kernel-2.6.9-i686.config .config

The final step to prepare the kernel is to build the make targetmodules_prepare.

# make modules_prepare

Building External Modules

After creating a Makefile and writing module codein a different directory, using make to build yourmodule. Refer to The Linux Kernel Module Programming Guidefor information about writing module Makefiles and code. makerequires the path to the kernel source, the variable Mset to the current working directory and the target modules.It will vary depending on your kernel version. For my computer:

# cd ~/mydriver
# vi Makefile
# vi mydevice.c
# make -C /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 M=$PWD modules

You can use the target clean as well.

Building Specific Internal Modules

To build all configured moduleswithin a particular subdirectory in the Linux kernel tree, issuethe same make command as for external modules. Only modules thathave been configured in the .config file will bebuilt. This means the make variable related to a particularmodules must exist and have a value of a lower case m.For example, for the kernel module blkmtd to bebuilt, the associated make variable called CONFIG_MTD_BLKMTDmust appears in the .config file as follows:

CONFIG_MTD_BLKMTD=m

The associated make variable name can be found in the localMakefile, for this case in drivers/mtd/devices/Makefile.To compile the module, including several others in the directory,give the following command

# cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/drivers/mtd/devices 
# make -C /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 M=$PWD modules

Alternatively, you can copy the desired files out of the kernelsource tree, edit the Makefile, and treat the result like anexternal module. Again, see The Linux Kernel ModuleProgramming Guide to helpyou edit the Makefile.

# cp blkmtd.c Makefile /tmp
# vi Makefile
# make -C /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 M=$PWD modules

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网