读书频道 > 系统 > linux > 深度探索Linux操作系统系统构建和原理解析
3.3.2 基本内核配置
2013-09-28 16:28:35     我来说两句 
收藏    我要投稿   
全书一共8章:第1章介绍了如何准备工作环境。在第2章中构建了编译工具链,这是后面构建操作系统各个组件的基础。在这一章中,不仅详细讲解了工具链的构建过程,而且还通过对编译链接过程的探讨,深入讨论了工具链  立即去当当网订购

编译内核的第一步是配置内核,但是在我们使用的这一版的内核中,有成千上万的配置项,并且很多配置项彼此之间存在着非常紧密的依赖关系,如果从零开始一项一项地配置,显然不是一个好办法。

幸运的是,在很多情况下,我们都会有一个目标系统的老版本内核配置文件,而不必每次都从零开始。在此种情况下,首先将已有的内核配置文件复制到顶层目录下,并命名为.config;然后运行make oldconfig,其将会询问用户如何处理变动的内核配置;最后用户可以使用make menuconfig进行微调。虽然内核提供make oldconfig的方法,但是这些方法并不是完美的,读者需要小心处理新内核中新增或改变的配置项。

但是也有很多情况,已有配置并不理想,我们需要进行更彻底定制,或者我们根本找不到一个合适的已有配置。难道我们就别无选择,只能从零开始了吗?当然不是,内核构建系统已经为开发者考虑了这些。

一方面内核为很多平台附带了默认配置文件,保存在arch/<arch>/configs目录下,其中<arch>对应具体的架构,如x86、arm或者mips等。比如,对于x86架构,内核分别提供了32位和64位的配置文件,即i386_defconfig和x86_64_defconfig;对于arm架构,内核提供了如NVIDA的Tegra平台的默认配置tegra_defconfig,Samsung的S5PV210平台的默认配置s5pv210_defconfig等。

如果我们打算使用x86的32位的默认配置,执行下面命令即可:
make i386_defconfig

如果想使用Samsung的S5PV210平台的默认配置,则使用如下命令:
make ARCH=arm s5pv210_defconfig

如果对这些内核内置的默认配置依然不满意,kbuild还提供了创建一个最小配置的方法,从某种意义上讲,这是最彻底的定制方式了,命令如下:
make allnoconfig

执行该命令后,内核除了选中必选项外,其余全部不选。我们举个例子来展示这个配置方式,例如某Kconfig文件中有如下配置:
config A
    def_bool y
config B
    def_bool y if X86_64

config C
    def_tristate y
    select D
config D
    bool

config E
    bool "config E"

config F
    bool "config F"
    default y

如果我们在IA32上执行“make allnoconfig”,则内核构建系统基本按照如下规则处理上述各配置项。

config A:无条件选中。

config B:不会被选中,因为平台不是X86_64架构。

config C:无条件选中。另外,因为该选项明确要求选中D,所以选项D也会被选中。

config E:不会被选中。

config F:不会被选中。虽然该选项指出默认值“default y”,但是注意“default y”和“def_bool y”是有本质区别的,“def_bool y”是无条件选中,“default y”只是建议。
执行make allnoconfig后,生成的配置文件.config如下:
CONFIG_A=y
CONFIG_C=y
CONFIG_D=y
# CONFIG_E is not set
# CONFIG_F is not set

在本书中,我们基于make allnoconfig的结果开始配置内核,命令如下:
vita@baisheng:/vita/build/linux-3.7.4$ make allnoconfig

接下来各节中,我们以这个基本配置为基础,按照需要进行具体的配置。希望读者可以通过这个过程的学习,能够做到举一反三,在具体的项目中进行最优的配置。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.3.1 交叉编译内核设置
下一篇:3.3.3 配置处理器
相关文章
图文推荐
3.3.6 GNOME的软件管
3.3.5 GNOME的文件管
3.3.4 GNOME的窗口管
3.3.3 收藏夹和快捷
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站