Linux内核配置浅析

 

1Linux Kernel Kconfig系统的基本结构

Linux内核的配置系统由三个部分组成,分别是:

1>Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则;

2>Kconfig:分布在 Linux 内核源代码根目录及各层目录中,给用户提供配置选择的功能;

3>.config:保存了配置选项结果;

4>、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make configMake menuconfig make xconfig)。这些配置工具都是使用脚本语言,如 Tcl/TKPerl 编写的(也包含一些用 C 编写的代码)。该部分的代码在linux-3.18.42/scripts目录下。

 

2Linux Kernel 配置

    假如我们基于ARM的开发板配置内核,常用的方法有两个:

方法一(不推荐):修改内核源码顶层目录下的Makefile文件,将其中ARCH ?= $(SUBARCH)修改为ARCH ?= arm(指定目标处理器的架构,内核跑在ARM芯片上则把该项指定为arm,将CROSS_COMPILE  ?= 修改为CROSS_COMPILE  ?= arm-linux-gcc(指定交叉编译工具,在配置内核的时候可以不指定,但是在编译内核的时候一定要指定);然后内核的根目录下运行make menuconfig(或者是Make configmake xconfig)命令后,会弹出一个配置界面。

方法二:直接通过命令行把ARCHCROSS_COMPILE变量传递到内核根目录下的Makefile文件中。在内核的根目录下运行make ARCH=arm menuconfig(或者是Make ARCH=arm configmake ARCH=arm  xconfig)命令后,会弹出一个配置界面。

clip_image002

当把所有选项都配置好,点击save保存后,会在内核的根目录下生成一个.config文件。该文件记录了我们对内核所做的配置。在编译内核的时候,内核的Kbuild系统会根据该文件去编译内核源代码。一般我们会把该.config文件拷贝到内核根目录下的arch/arm/configs/文件夹下,并重命名为xxx_defconfig(xxx一般为对应的开发板名称)

 

 

 

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/LoTGu/p/5943983.html