linux Kconfig 学习与总结

本文详细介绍了Linux内核配置系统Kconfig的使用方法与注意事项,包括如何定义配置宏、宏变量的不同类型及其应用场景,以及如何利用Kconfig进行高效内核配置。

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

linux Kconfig 学习与总结

使用Kconfig时,需要注意的地方
1.在Kconfig中定义的配置宏,前缀都没有"CONFIG_",只有编译内核时,自动生成autoconf.h才会出现前缀。
2.如果 XX_defconfig 板卡配置文件中定义新的宏=y时,而在Kconfig并没有声明它,则内核编译出来的autoconf.h里也不会定义它的。
3.如果 XX_defconfig 板卡配置文件中没有设置 CONFIG_MODULES=y,则编译 make modules 时将会失败,而 make menuconfig 时,Kconfig中的tristate参数也会被读写为bool参数(也就是不能设置m)。
 
CONFIG宏变量参数

bool:     表示该CONFIG宏只能选择y(编译内核)或者n(不编译)
tristate: 表示该CONFIG宏可以设置y/m/n三种模式(tristate),m(编译为模块)
string:   表示该CONFIG宏可以设为一串字符,比如#define CONFIG_XXX "config test"
hex:      表示该CONFIG宏可以设为一个十六进制,比如#define CONFIG_XXX 0x1234
int:      表示该CONFIG宏可以设为一个整数,比如#define CONFIG_XXX 1234

常用参数

default y:  表示默认是勾上的,当然也可以写为default m或者default n
help:       帮助提示信息
depends on: 依赖项,比如 depends on XXX 表示当前宏需要 CONFIG_ XXX 宏打开的前提下,才能设置它 (注意依赖项的config参数只有bool或tristate才有效)
select :    反依赖项,和 depends on 刚好相反,比如 selecton XXX 表示当前宏如果是y或者m,则会自动设置XXX=y或者m(注意参数只有bool或tristate才有效)
choice:     会生成一个单选框,里面通过多选一方式选择config,需要注意choice中的config参数只能bool或tristate
prompt:     提示信息,如果对于choice而言,则会用来当做一个单选框入口点的标签
range :     设置用户输入的数据范围,比如 range 0 100 表示数据只能位于 0~100
menuconfig: menuconfig XXX 和 config XXX 类似,唯一不同的是该选项除了能设置 y/m/n 外,还可以实现菜单效果(能回车进入该项内部)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__Benco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值