笔记 28 : linux 里 Kconfig 语法详解

(239)源码

bash 复制代码
#
# Kconfig test file
#

menu "Level 1 menu"                                     #一级菜单开始

    menu "Level 2-1 menu"                               #二级菜单(1)开始

        config MENU_2_1_CONFIG_1                        #二级菜单(1)的选项1
            bool "MENU_2_1_CONFIG_1"                    #bool类型(y/n),跟着提示信息
            select MENU_2_1_CONFIG_2                    #本条件选中则选中条件 MENU_2_1_CONFIG_2
            select MENU_2_1_CONFIG_4                    #本条件选中则选中条件 MENU_2_1_CONFIG_4
            default y                                   #bool默认值为y

        config MENU_2_1_CONFIG_2                        #二级菜单(1)的选项2
            bool "MENU_2_1_CONFIG_2"                    #bool类型(y/n),跟着提示信息
            default n                                   #bool默认值为n

        config MENU_2_1_CONFIG_3                        #二级菜单(1)的选项3
            bool "MENU_2_1_CONFIG_3"                    #bool类型(y/n),跟着提示信息
            depends on MENU_2_1_CONFIG_2                #当条件 MENU_2_1_CONFIG_2 被选中时,本条件才显示
            default y                                   #bool默认值为y

        config MENU_2_1_CONFIG_4                        #二级菜单(1)的选项4
            bool                                        #bool类型(y/n),没带提示信息,本选项不会显示,但是存在
            default n                                   #bool默认值为y
    endmenu                                             #二级菜单(1)结束

    menu "Level 2-2 menu"                               #二级菜单(2)开始
        config MENU_2_2_CONFIG_1                        #二级菜单(2)的选项1
            bool "MENU_2_2_CONFIG_1"                    #bool类型(y/n),跟着提示信息
            default n                                   #bool默认值为n

        config MENU_2_2_CONFIG_2                        #二级菜单(2)的选项2
            tristate "MENU_2_2_CONFIG_2"                #tristate类型(y/n/m),跟着提示信息
            default m                                   #tristate默认值为m

        config MENU_2_2_CONFIG_3                        #二级菜单(2)的选项3
            string "MENU_2_2_CONFIG_3"                  #string类型(任意字符串),跟着提示信息
            default "this is MENU_2_2_CONFIG_3"         #string默认值为 this is MENU_2_2_CONFIG_3

        config MENU_2_2_CONFIG_4                        #二级菜单(2)的选项4
            hex "MENU_2_2_CONFIG_4"                     #hex类型(十六进制的值),跟着提示信息
            default 0x456789                            #hex默认值为 0x456789

        config MENU_2_2_CONFIG_5                        #二级菜单(2)的选项5
            int "MENU_2_2_CONFIG_5"                     #int类型(十进制的值),跟着提示信息
            default 666                                 #int默认值为 666
    endmenu                                             #二级菜单(2)结束

    menu "Level 2-3 menu"                               #二级菜单(3)开始
        choice                                          选择配置项,类似单选功能
            prompt "choice name"                        #配置项的显示名称

            default OPTION_2                            #默认选择的配置

            config OPTION_1                             #选项1
                bool "OPTION_1"                        

            config OPTION_2                             #选项2
                bool "OPTION_2"          

            config OPTION_3                             #选项3
                bool "OPTION_3"          

            config OPTION_4                             #选项4
                bool                                    #没带提示信息的条件类型不会现实
         
        endchoice                                       选择配置项结束
    endmenu                                             #二级菜单(3)结束

    menu "Level 2-4 menu"                               #二级菜单(4)开始
        config MENU_2_4_CONFIG_1                        #二级菜单(4)的选项1
        bool "MENU_2_4_CONFIG_1"                        #bool类型(y/n),跟着提示信息
        default n                                       #bool默认值为n

        if MENU_2_4_CONFIG_1                            #如果 选项(MENU_2_4_CONFIG_1)被选中
            comment "you choose MENU_2_4_CONFIG_1 !!"   #打印注释信息
        endif
    endmenu                                             #二级菜单(4)结束

    menuconfig Level_2-5_menu                           #二级菜单(5)开始
        bool "Level 2-5 menuconfig"
        default n
       
        if Level_2-5_menu
            config MENU_2_5_CONFIG_1                    #选项1
                bool "MENU_2_5_CONFIG_1"                        
                default n                               #bool默认值为n

            config MENU_2_5_CONFIG_2                    #选项2
                bool "MENU_2_5_CONFIG_2"                        
                default y                               #bool默认值为n
        endif

endmenu                 

++

++

++

++

++

++

++

++ 配置项没有提示词,则不会显示出来

++

++

++

++ 工作中,若发现自己的配置项没有出现,很有可能就是依赖项没有被选中

++

(240 a)彩色源码 :

++

++

++

(240 b) source

(241)

(242)

谢谢

相关推荐
zhangzhangkeji14 小时前
笔记 25 - 1 :linux 驱动模块移植,obj-y、obj-m,命令 dmesg,开启已有的硬件驱动
arm
zhangzhangkeji15 小时前
笔记 25 - 2 :linux 驱动模块移植,创建自定义驱动(编译为模块),调整 shell 里字体大小,
arm
zhangzhangkeji2 天前
笔记 24 -2 :linux 内核编译,实验举例,及编译脚本
arm
zhangzhangkeji2 天前
笔记 23 :linux 内核基础知识,内核的目录
arm
抓不住时间的沙2 天前
N1搭建Hexo个人博客,部署到Github
python·docker·node.js·debian·github·arm
躺不平的理查德2 天前
ARCH与交叉编译器的关系
服务器·arm
奔跑的架构师5 天前
[A-49]ARMv9/v8-PSCI接口规范与工作流程简介
android·linux·arm开发·arm
zhangzhangkeji7 天前
笔记 22 - 5a :彭老师 15章,uboot 启动,linux 挂载 nfs 文件系统,组网与启动 NFS 服务
arm
zhangzhangkeji8 天前
笔记 22 - 4a :彭老师 15章,uboot 启动,zynq zturn ,uboot 启动参数分析;QSPI 操作
arm