ARM Linux移植(二)Kconfig

本文详细介绍了ARM Linux内核移植中的Kconfig配置,讲解了Kconfig的基本语法,包括菜单定义、选项类型、默认值、依赖关系等。通过实例展示了如何在内核配置中创建子菜单、设置默认值和帮助信息。还探讨了内核配置的通用设置、网络支持、启动选项以及设备驱动等关键部分。
摘要由CSDN通过智能技术生成

scripts/kconfig/mconf arch/arm/Kconfig

make menuconfig

相关文件:

1.默认配置文件

<arch/arm/configs/ EPC-M28x_defconfig >

设置默认配置


 

启动界面

内核源码每个子目录中,都有个Makefile 文件和Kconfig 文件。Kconfig 用于配置内核,他就是各种配置见面的源文件。内核的配置工具读取界面的源文件。内核的配置工具读取各Kconfig 文件,最终生成文件.config

Kconfig 基本语法
如程序清单所示代码摘自<drivers/char/Kconfig>文件,是一个比较典型的 Kconfig
文件片段,包含了 Kconfig 的基本语法。
程序清单 drivers/char/Kconfig 片段
menu "Character devices"
source "drivers/tty/Kconfig"
config DEVKMEM
bool "/dev/kmem virtual device support"
default y
help
Say Y here if you want to support the /dev/kmem device. The
/dev/kmem device is rarely used, but can be used for certain
kind of kernel debugging operations.
When in doubt, say "N".
……
endmenu
子菜单
通过 menu 和 endmenu 来定义一个子菜单, 程序清单 1.1 所示代码定义了一个“Character
devices” 子菜单,子菜单在界面中用“--->”表示

子菜单的菜单项则由 config 来定义,随后的“bool”、“default”、“help” 等都是该菜单
项的属性:
config DEVKMEM
bool "/dev/kmem virtual device support"
这两行语句定义了一个bool选项,在.config中的配置变量名称为CONFIG_DEVKMEM,
选项提示信息为“/dev/kmem virtual device support”,在内核配置界面的实际表现为:
[*] /dev/kmem virtual device support
由于设置其默认属性 default 为 y, 所以该选项默认选中。
help 引出帮助信息, 在内核配置界面, 选择选项后, 通过<Help>可以查看帮助信息。

属性
类型定义:每个菜单项都必须定义类型, 可选类型有: bool、 tristate、 string、 hex 和 int,
各类型描述如表 1.3 所列。
表 1.3 菜单项类型和说明

类型 说明 示例
bool 布尔型,可能值为 0 或者 1,只有选中与不
选中两种状态
config DEVKMEM
bool "/dev/kmem virtual device support"
tristate 三态型,可能值为 0、 1 或者 2,有选中、
模块和不选 3 种状态
config IKCONFIG
tristate "Kernel .config support"
string 字符串,用于填入字符串,如设置交叉编
译器,或者内核命令行参数等
config CMDLINE
string "Default kernel command string"
hex 十六进制,常用于填写地址信息 config PAGE_OFFSET
hex
default 0x40000000 if VMSPLIT_1G
default 0x80000000 if VMSPLIT_2G
default 0xC0000000
int 整型,用于填写数目,如 CPU 处理器个数、
系统 Hz 数等
config NR_CPUS
int "Maximum number of CPUs (2-32)
range 2 32
depends on SMP
default "4"


定义选项的类型后面可以加菜单信息,用引号(“”)给出,留空则不加提示信息。
对于布尔型选项,在配置界面用[ ]表示:
[*] /dev/kmem virtual device support
[*]表示选中, 对应 CONFIG_XXX=y, [ ]则表示未选中。
对于三态选项, 在配置界面用< >表示:
<*> Kernel .config support
<*>表示选中, 对应 CONFIG_XXXx=y, <M>表示编译为模块, 对应 CONFIG_XXX=m,
< >表示未选中。
子菜单也可同时设置类型,如下列代码在定义 PWM 菜单的同时定义了菜单属性为三态:
menuconfig GENERIC_PWM
tristate "PWM Support"
default n
help
Enables PWM device support implemented via a generic
framework. If unsure, say N.
在配置界面表现为:
< > PWM Support --->
说明:子菜单的配置值会影响其子选项的可能值。例如三态子菜单配置为<y>,则其三
态子选项依旧可有 3 种可能值,即可配置为<y>、 <M>或者不选中;而三态子菜单配置为<M>,
则其子选项只有<M>和不选中两种状态可用。
默认值:有写选项可以设置默认值,无论是哪种类型,都可以通过 d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值