参考链接
https://wk.baidu.com/view/28e3fd4a0975f46526d3e118
例程
Symbol: USB_G_SERIAL [=m]
Type : tristate
Prompt: Serial Gadget (with CDC ACM and CDC OBEX support)
Location:
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Gadget Support (USB_GADGET [=y])
-> USB Gadget precomposed configurations (<choice> [=m])
Defined at drivers/usb/gadget/legacy/Kconfig:296
Depends on: <choice> && TTY [=y]
//TTY被选中才能选中USB_G_SERIAL
Selects: USB_U_SERIAL [=m] && USB_F_ACM [=m]
//USB_G_SERIAL被选中USB_U_SERIAL和USB_F_ACM也会被选中
Kconfig语法
mainmenu 主菜单
menu/endmenu 菜单
config 菜单配置项
菜单配置项分为bool tristate string hex int多种类型
bool: y n两种选择
tristate: y m n三种选择
string:字符串类型
depends on 依赖于某个配置,使能依赖项才能被选中
例如:
Symbol: USB_G_SERIAL [=m]
Depends on: <choice> && TTY [=y]
TTY被选中才能选中USB_G_SERIAL
selects 方向依赖,当配置被选中后,相关选项也会被选中
例如:
Symbol: USB_G_SERIAL [=m]
Selects: USB_U_SERIAL [=m] && USB_F_ACM [=m]
USB_G_SERIAL被选中USB_U_SERIAL和USB_F_ACM也会被选中
choice/endchoice 定义多个选择项,供用户单选或多选
menuconfig 带选项的菜单
comment 注释
例如:comment "Generic NAND options"
source 读取另一个Kcofig
例如:source "arch/Kconfig"
.config
执行make xxx_defconfig生成的.config文件
执行make menuconfig可以修改.config文件。
常规流程
先make xxx_defconfig设置默认项
再make menuconfig增减其他项
常规命令
要修改/kernel/arch/arm64/configs/xxx_defconfig文件
make xxx_defconfig 生成/kernel/.config文件
make menuconfig 配置/kernel/.config文件
make menuconfig ARCH=arm64 配置/kernel/.config文件
make savedefconfig 生成/kernel/defconfig文件,该命令生成的defconfig文件比.config更精简,更易读。
所以不使用.config覆盖原有配置文件,而使用defconfig覆盖原文件
cp /kernel/defconfig /kernel/arch/arm64/configs/xxx_defconfig 覆盖原有配置文件
make busybox-menuconfig 配置busybox