linux kernel 配置与编译

本文详细介绍了Linux内核在九鼎s5pv210开发板上的配置与编译过程,包括检查Makefile的ARCH与CROSS_COMPILE设置,make xx_defconfig和make menuconfig的使用,以及make menuconfig的注意事项和工作原理。同时,还解析了Kconfig文件的结构和配置项的依赖关系,为内核定制提供了清晰的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux内核的配置与编译过程

选择九鼎s5pv210开发板移植的Linux内核,下载地址为:
链接:http://pan.baidu.com/s/1sl15QMD 密码:by3o


1.首先检查Makefile
查看Makefile主要看一下Makefile中的两个变量:ARCH与CROSS_COMPILE;
(1)主要是检查交叉编译工具链有没有设置对。
CROSS_COMPILE ?= /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
(2)确认ARCH = arm。主要目的是为了编译时能找到arch/arm目录。

2.配置过程
(1)配置主要通过两步进行:
第一步,make xx_defconfig,在九鼎x210开发板中是make x210ii_qt_defconfig,如果在配置信息最后一行看到configuration written to .config这句,表明把所有的配置选项都写到.config文件中。
第二步,make menuconfig,在这个图形界面进行配置。

(2)make xx_defconfig和make menuconfig相配合
make xxx_defconfig这一步其实是参考别人已经做好的,这样做有很多好处:减少很多工作量,避开了很多自己不懂的配置项(譬如对内存管理的、调度系统的等模块的配置项),我们只用管自己需要管的。
其实make x210ii_qt_defconfig就相当于:cp arch/arm/configs/x210ii_qt_defconfig .config
在arch/arm/configs目录下有很多xxx_defconfig,这些文件都是别人手工配置好适合一定的开发板的.config文件后自己把.config文件保存过去的

make menuconfig其实就是读取第一步得到的.config,然后给我们一个图形化的界面,让我们可以更加容易的找到自己想要修改的配置项,然后更改配置。

(3)make menuconfig注意事项
执行之后的图形界面如图所示:
这里写图片描述
1.用法:
箭头按键导航整个菜单;
回车按键选择子菜单(注意选项后面有 —>的选项才是有子菜单的,没有这个标识的没有子菜单);
高亮的字母是热键(快捷键);
键盘按键Y、N、M三个按键的作用分别是将选中模块编入、去除、模块化,在menuconfig中选项前面的括号里,*表示编入,空白表示去除,M表示模块化;
双击ESC表示退出;
按下”?“按键可以显示帮助信息;
按下”/“按键可以输入搜索内容来全局搜索信息(类似于vi中的搜索);
[]不可以模块化,<>的才可以模块化。

2.menuconfig的工作原理
a. menuconfig显示的菜单内容是由内核源码树各个目录下的Kconfig文件来支持的。Kconfig文件中按照一定的格式包含了一个又一个的配置项,每一个配置项在make menuconfig中都会成为一个菜单项目。而且menuconfig中显示的菜单目录结构和源码目录中的Kconfig的目录结构是一样的。在相应的Kconfig文件中删除一个config项,则再次make menuconfig时这个项目已经看不到了。

b. menuconfig读取/写入.config文件
menuconfig的菜单内容来自于Kconfig文件,但是每一个菜单的选择结果(Y、N、M)却不是保存在Kconfig文件中的。Kconfig文件是不变的,Kconfig文件只是决定有没有这个菜单项,并不管这个菜单项的选择结果。menuconfig工作时在我们make menuconfig打开时,他会读取.config文件,并且用.config文件中的配置选择结果来初始化menuconfig中各个菜单项的选择值。

总结:菜单项的项目内容从Kconfig文件来,菜单项的选择值从.config文件来。

3.Kconfig文件分析
几乎在大部分的目录下都有一个Kconfig文件,随便找一个Kconfig文件进行分析,比如\kernel\drivers\net\wireless目录下的Kconfig文件,内容如下:

menuconfig WLAN
	bool "Wireless LAN"
	depends on !S390
	depends on NET
	select WIRELESS
	default y
	---help---
	  This section contains all the pre 802.11 and 802.11 wir
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值