2.6内核的源码树目录下一般都会有两个文文:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.config,就知道了用户对内核的配置情况。
上面的内容说明:Kconfig就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就有途径选择我们的驱动,假如想使这个驱动被编译,还要修改该驱动所在目录下的Makefile。
因此,一般添加新的驱动时需要修改的文件有两种(注意不只是两个)
*Kconfig
*Makefile
下面简要介绍一下Kconfig
每个菜单项都有一个关键字标识,最常见的就是config。
语法:
config symbol
options
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
symbol就是新的菜单项,options是在这个新的菜单项下的属性和选项
其中options部分有:
1、类型定义:
每个config菜单项都要有类型定义,bool:布尔类型, tristate三态:内建、模块、移除, string:字符串, hex:十六进制, integer:整型
例如config HELLO_MODULE
bool "hello test module"
bool类型的只能选中或不选中,tristate类型的菜单项多了编译成内核模块的选项,假如选择编译成内核模块,则会在.config中生成一个CONFIG_HELLO_MODULE=m的配置,假如选择内建,就是直接编译成内核影响,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置.
2、依赖型定义depends on或requires
指此菜单的出现是否依赖于另一个定义
config HELLO_MODULE
bool "hello test module"
depends on ARCH_PXA
这个例子表明HELLO_MODULE这个菜单项只对XScale处理器有效,即只有在选择了ARCH_PXA, 该菜单才可见(可配置)。
3、帮助性定义
只是增加帮助用关键字help或---help---
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
转:http://blog.chinaunix.net/uid-26980210-id-3222529.html
分享到:
相关推荐
Kconfig 语法是一个非常复杂的系统,需要深入了解 Kconfig 的语法结构和规则。Kconfig 语法可以分为多个部分,包括 config、options 和 help 等。 在 Kconfig 语法中,config 是一个关键字,用于定义新的菜单项。...
kconfig语法定义了配置文件的结构和语法规则,用于生成Linux内核的配置菜单。 配置文件结构 配置文件kconfig语法将配置选项组织成树形结构,每个选项都有其依赖关系。父选项可见,子选项才能可见。每个选项都有其...
Kconfig是一种配置文件语法,主要用于Linux内核构建系统中,用于定义内核配置的选项和菜单。它让开发者可以创建和管理各种配置选项,如布尔值、三态值(内建、模块、不包含)、字符串等。在Linux内核的配置过程中,...
### Linux Kconfig 详解与语法 #### 一、Kconfig 的基本概念 在 Linux 内核开发中,Kconfig 文件是用于定义内核配置菜单的关键文件。这些菜单允许用户在编译内核时进行定制,选择需要哪些特性、驱动程序等。...
Kconfig文件的详细语法规则可以在内核文档`Documentation/kbuild/kconfig-language.txt`中找到。通过Kconfig,开发者可以轻松地启用或禁用内核的特定功能,根据硬件特性定制内核,甚至在不修改源码的情况下调整内核...
这些sub-Makefile定义了根据该子目录下的源码文件构建目标文件的规则,并且仅对该目录下的文件作适当的修改。顶层Makefile采用递归的方式调用位于init/、drivers/、sound/、net/、lib/、usr/等目录下的各个子目录中...
Linux内核配置系统(Kconfig)是Linux...随着Linux内核的不断演进,对Kconfig语法和Makefile编译系统的理解对于嵌入式系统开发者尤为重要,可以帮助他们在资源受限的环境中优化系统性能,满足特定硬件和软件的需求。
#### 二、Kconfig的作用与语法 ##### 1. 作用 - **配置选项管理**:Kconfig定义了内核编译时的可配置选项,如内核功能启用、驱动支持等。 - **用户界面生成**:Kconfig被`makemenuconfig`等工具读取,生成友好的...
定义的变量将在每个菜单都有一个关键字标识,最常见的就是config语法:config symbol是新的标记的菜单项,options是这个新的菜单项下的属性和选项。options部分有多种类型,例如bool、tristate、string、hex、...
`Kconfig`文件的语法结构包括以下几个关键部分: 1. **配置符号(Config Symbol)**:通常以`config`关键字开始,定义一个新的配置项。比如`config HELLO_MODULE bool "hello test module"`,`HELLO_MODULE`是配置...
Kconfig文件使用一种特定的语法,用于定义内核配置选项,包括布尔型、枚举型、字符串型等。 1. **配置选项(Configuration Option):** Kconfig文件定义了内核配置的各个选项,每个选项都有一个唯一的标识符...
`Kconfig` 文件的语法主要包括以下几部分: 1. **菜单项定义**:通常以`config`关键字开始,如`config HELLO_MODULE`,接着是配置项的名称。 2. **类型定义**:配置项的类型决定了用户可以选择的选项。例如: - `...
总结来说,Linux内核配置涉及到Kconfig文件的语法理解和Makefile的规则应用,正确地编辑这两类文件可以使新驱动程序融入内核配置流程,从而实现按需编译。对于想要深入理解这一过程的开发者,可以通过阅读`...
`Kconfig`文件的语法结构主要包括以下几个要素: 1. **关键字标识**:最常见的关键字是`config`,它用于创建一个新的配置项。例如: ```conf config HELLO_MODULE bool "hello test module" ``` 这里`HELLO_...
它能够理解Kconfig语法,包括符号(symbols)、菜单、选择和条件语句等。 2. **符号操作**:库支持对内核配置中的符号进行操作,例如获取符号的值、设置符号的值、检查符号是否被选定或启用等。 3. **配置生成**:...
Makefile使用GNU Make的语法,包括目标、依赖项和命令。这些文件通过规则定义如何生成目标文件,比如编译源代码或创建库。 4. 变量传递 从顶级Makefile向下传递的变量包括架构相关的变量、vmlinux构建变量、后vm...
Linux内核的构建系统,称为kbuild,是用于编译和构建Linux内核及其模块的一套工具和规则。kbuild基于GNU Makefile系统,但针对Linux内核的特性进行了优化和扩展,使得它能处理复杂的依赖关系和多平台构建。在深入...
`kconfig`拥有自己的语言语法,允许用户定义配置项之间的逻辑关系,例如依赖、互斥等。这种灵活的语言特性使得`kconfig`能够根据不同的需求动态调整配置选项。 ###### kconfig的解析 `kconfig`的解析过程由名为`...
1. **理解Kconfig和Makefile的基本概念**:这是学习Linux内核的基础,需要熟悉这两类文件的基本语法和用途。 2. **实践操作**:通过实际修改Kconfig文件和Makefile,观察其对内核构建的影响。 3. **参考文档**:...