`
imaginecup
  • 浏览: 85495 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Makefile和Kconfig认识

阅读更多
linux2.6内核的配置系统由以下3个部分组成:
Makefile 定义linux内核的编译规则
配置文件Kconfig :给用户提供配置选择的功能
配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面

linux内核中增加程序需要完成以下3项工作:
将编写的源代码复制到linux内核源代码的相应目录。
在目录的Kconfig文件中增加新源代码对应项目的编译配置选项。
在目录的Makefile文件中增加对新源代码的编译条目。

Makefile文集是整个内核工程编译命令的集合。它根据配置情况,构造出需要编译的内核源码文件列表,然后分别编译,并把目标代码链接到一起,形成内核二进制文件。也就是说Makefile只是存储了源码文件构建目标文件的规则,具体是否按着规则去执行还要看那些配置变量。

我们进行make menuconfig时,会出现一个配置菜单,它是由各层Kconfig文件组成。Kconfig文件是以分布式的方式位于源码的各个子目录当中。最底层的Kconfig位于源码目录下的arch/x86/Kconfig。由此入口,使用source语句把需要的子Kconfig文件加入到上级目录的 Kconfig中,以此递归下去。Kconfig文件控制配置菜单是否出现新驱动的配置选项。用户通过Kconfig文件产生的配置选项,来控制对新驱动的配置。

在内核配置make menuconfig时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.config,就知道了用户对内核的配置情况。

Makefile文件

obj-$(CONFIG_EXT3_FS) += ext3.o

ext3-y  := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
           ioctl.o namei.o super.o symlink.o hash.o resize.o ext3_jbd.o

ext3-$(CONFIG_EXT3_FS_XATTR)     += xattr.o xattr_user.o xattr_trusted.o
ext3-$(CONFIG_EXT3_FS_POSIX_ACL) += acl.o
ext3-$(CONFIG_EXT3_FS_SECURITY)  += xattr_security.o

CONFIG_变量来决定文件的编译方式,它存储在.config文件中,其中Y表示编译入内核,M表示编译为内核模块,其他不会被编译

如果一个模块有多个文件组成,这时候应采用模块名家-objs后缀或者-s后缀来定义模块的组成文件。

Kconfig
config 关键字定义新的配置选项,这后的几行定义了该配置选项的树形,包括类型,数据范围,输入提示,依赖关系(反向依赖关系),帮助信息和默认值等。
 
分享到:
评论

相关推荐

    ( Linux教程之Linux内核的Makefile和kconfig解读

    ( Linux教程之Linux内核的Makefile和kconfig解读

    Linux系统的Makefile和Kconfig及模块简介.pdf

    Linux系统的Makefile和Kconfig及模块简介.pdf

    LED驱动源码和测试源码(包括makefile和Kconfig文件)

    包括:led驱动c源码文件led.c、应用层测试文件test.c、makefile和Kconfig,总共四个文件。

    Makefile与Kconfig

    网上很容易找的,暂时存放在在网上供自己用,没有必要下载

    Kconfig简介

    Kconfig和Makefile就好似一个城市的地图,地图引导我们去 认识一个城市,而Kconfig和Makefile则可以让我们了解一个内核目录下面的结构。在希望研究内核的某个子系统、某个驱动或其他某个部分时,都 有必要首先仔细...

    Kconfig和Makefile

    Linux内核源码树的每个目录下都有两个文档Kconfig和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在执行内核配置make menuconfig时...

    Makefile and Kconfig

    下载自己的资源都要积分????????????

    Makefile基础知识及Makefile Kconfig 内核配置 内核裁剪.rar

    免分放送,自己收集的资料。。如题。。大家赶快下吧。。

    linux下kconfig语法

    kconfig 语法详细介绍,要看内核必看makefile,要看makefile必看kconfig,要看kconfig必要了解kconfig语法。 万里长征第一步,大家走好。

    to_alice.c

    kernel也是九鼎的,不过他的Makefile和Kconfig中的名字对不上,记得修改,然后在make menuconfig中添加buzzer驱动,记得开启nfs 通过nfs挂载根文件系统 在linux下通过交叉编译工具链编译这个文件,复制到根文件系统...

    Kconfig详解

    关于kconfig和makefile语法的文章

    Makefile进阶 Makefile进阶

    Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶

    make和Makefile详解 一起写Makefile

     在通常的情况下命令行参数中只含有一个冒号":",此时command序列通常和makefile文件中某些定义文件间依赖关系的描述行有关。如果与目标相关连的那些描述行指定了相关的command序列,那么就执行这些相关的command...

    linux 驱动之Kconfig文件和Makefile文件实例

    linux 驱动之Kconfig文件和Makefile文件实例 在Linux编写驱动的过程中,有两个文件是我们必须要了解和知晓的。这其中,一个是Kconfig文件,另外一个是Makefile文件。如果大家比较熟悉的话,那么肯定对内核编译需要的...

    Makefile和gcc培训材料

    本资源包,包括了Makefile及GCC编译选项培训.ppt、makefile培训.pptx、Makefile培训1.pptx、make工具及makefile规则.doc、Linux下C编程.ppt等学习资料,是linux开发的好资料

    Makefile手册中文版

    Makefile手册中文版,非常详尽的makefile官方文档。

    跟我一起写Makefile[陈皓]

    像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile(在其它的系统上可能是另外的文件名)在绝大多数的IDE 开发环境中都在使用,已经成为一种...

    linux kconfig介绍

    kconfig 的语法介绍。查看kconfig具体的使用方法和各个语句段类型

    makefile 和gcc手册

    在linux编程中,人们使用gcc编程,通过makefile来完成对工程的管理,使其软件的维护变得简单。文件包含对makefile使用的详细讲解和对编译工具gcc的详细说明

Global site tag (gtag.js) - Google Analytics