make menuconfig 做了哪些事?

Linux 2.6 内核的配置系统由以下3 个部分组成。

l Makefile:分布在Linux 内核源代码中的Makefile,定义Linux 内核的编

译规则。

l 配置文件(Kconfig):给用户提供配置选择的功能。

l 配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和

配置用户界面(提供字符界面和图形界面)。这些配置工具都是使用脚本语言编

写的,如Tcl/TK、Perl等。

 

 

使用make config、make menuconfig等命令后,会生成一个.config配置文件(隐

含在顶层Makefile中),记录哪些部分被编译入内核、哪些部分被编译为内核模块。

运行make menuconfig时,配置工具首先分析与体系结构对应的/arch/xxx/Kconfig

文件(xxx 即为传入的ARCH 参数),/arch/xxx/Kconfig文件中除本身包含一些与体系

结构相关的配置项和配置菜单以外,还通过source语句引入了一系列Kconfig文件,

而这些Kconfig 文件又可能再次通过source 引入下一层的Kconfig,配置工具依据这

些Kconfig 包含的菜单和项目即可描绘出一个如图3.6 所示的分层结构。例如,


make ARCH=arm CROSS_COMPILE=arm-linux- smdk2410_defconfig(指定体系结

构为ARM,交叉编译器为arm-linux-gcc,采用smdk_2410defconfig配置)


/arch/arm/Kconfig文件的结构如下:

mainmenu "Linux Kernel Configuration"

config ARM

bool

default y

help

The ARM series is a line of low-power-consumption RISC chip

designs

licensed by ARM Ltd and targeted at embedded applications and

handhelds such as the Compaq IPAQ. ARM-based PCs are no longer

manufactured, but legacy ARM-based PC hardware remains popular

in

Europe. There is an ARM Linux project with a web page at

<http://www.arm.linux.org.uk/>.

config MMU

bool

default y

...

config ARCH_S3C2410

bool "Samsung S3C2410"

help

Samsung S3C2410X CPU based systems, such as the Simtec Electronics

BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ

1940 or

the Samsung SMDK2410 development board (and derivatives).

...

source "mm/Kconfig"

...

source "net/Kconfig"

...

source "arch/arm/mach-s3c2410/Kconfig"

...

用户运行make zImage、make bzImage等生成映像的命令时,先检索顶层Makefile

(在arch/xxx 目录下的Makefile 为顶层Makefile 补充体系结构相关的信息),顶层

Makefile完成两个主要的任务:产生内核映像文件和内核模块。为了达到此目的,顶

层Makefile会递归地进入内核的各个子目录中,分别调用位于这些子目录中Makefile

(子目录中的Makefile属于kbuild类型的Makefile,记录编译目标)。进入哪些子目录

则取决于内核的配置,这也就是make config和make menuconfig等生成的.config文件

发挥作用的地方。

 


Kconfig和Makefile

在Linux 内核中增加程序需要完成以下3项工作。

l 将编写的源代码复制到Linux 内核源代码的相应目录。

l 在目录的Kconfig文件中增加新源代码对应项目的编译配置选项。

l 在目录的 Makefile文件中增加对新源代码的编译条目。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值