1.. SPDX-License-Identifier: GPL-2.0 2 3.. include:: ../disclaimer-zh_CN.rst 4 5:Original: Documentation/kbuild/kconfig.rst 6:Translator: 慕冬亮 Dongliang Mu <dzm91@hust.edu.cn> 7 8================ 9配置目标和编辑器 10================ 11 12本文件包含使用 ``make *config`` 的一些帮助。 13 14使用 ``make help`` 列出所有可能的配置目标。 15 16xconfig('qconf')、menuconfig('mconf')和 nconfig('nconf')程序也包含 17内嵌的帮助文本。请务必查看这些帮助文本以获取导航、搜索和其他帮助信息。 18 19gconfig('gconf')程序的帮助文本较少。 20 21 22通用信息 23======== 24 25新的内核版本通常会引入新的配置符号。更重要的是,新的内核版本可能会重命名配置符号。 26当这种情况发生时,使用之前正常工作的 .config 文件并运行 "make oldconfig" 27不一定会生成一个可正常工作的新内核,因此,你可能需要查看哪些新的内核符号被引入。 28 29要查看新配置符号的列表,请使用:: 30 31 cp user/some/old.config .config 32 make listnewconfig 33 34配置程序将列出所有新配置符号,每行一个。 35 36或者,你可以使用暴力破解方法:: 37 38 make oldconfig 39 scripts/diffconfig .config.old .config | less 40 41 42环境变量 43======== 44 45``*config`` 的环境变量: 46 47``KCONFIG_CONFIG`` 48 该环境变量可用于指定一个默认的内核配置文件名,以覆盖默认的 ".config"。 49 50``KCONFIG_DEFCONFIG_LIST`` 51 该环境变量指定了一个配置文件列表,当 .config 不存在时,这些文件可用作基础配置。 52 列表中的条目以空格分隔,只有第一个存在的文件会被使用。 53 54``KCONFIG_OVERWRITECONFIG`` 55 如果该环境变量被设置,当 .config 是指向其他位置的符号链接时,Kconfig 不会 56 破坏符号链接。 57 58``KCONFIG_WARN_UNKNOWN_SYMBOLS`` 59 该环境变量使 Kconfig 对配置输入中所有无法识别的符号发出警告。 60 61``KCONFIG_WERROR`` 62 如果该环境变量被设置,Kconfig 将所有警告视为错误。 63 64``CONFIG_`` 65 如果该环境变量被设置,Kconfig 将在保存配置时,为所有符号添加其值作为前缀, 66 而不是使用默认值。 67 68``{allyes/allmod/allno/rand}config`` 的环境变量: 69 70``KCONFIG_ALLCONFIG`` 71 allyesconfig/allmodconfig/allnoconfig/randconfig 这些变体也可以使用环境 72 变量 KCONFIG_ALLCONFIG 作为标志或包含用户要求设置为特定值的配置符号的文件名。 73 如果 KCONFIG_ALLCONFIG 未指定文件名,即 KCONFIG_ALLCONFIG == "" 或 74 KCONFIG_ALLCONFIG == "1",则 ``make *config`` 将查找名为 75 "all{yes/mod/no/def/random}.config" 的文件(对应于所使用的 ``*config`` 76 命令)以强制符号值。如果找不到此文件,它会查找名为 "all.config" 的文件以包含 77 强制值。 78 79 这可以创建“微型”配置(miniconfig)或自定义配置文件,其中仅包含感兴趣的配置符号。 80 然后,内核配置系统将生成完整的 .config 文件,包括 miniconfig 文件中的符号。 81 82 ``KCONFIG_ALLCONFIG`` 文件包含许多预设配置符号(通常是所有符号的子集)。 83 这些变量设置仍需遵守正常的依赖性检查。 84 85 示例:: 86 87 KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig 88 89 或:: 90 91 KCONFIG_ALLCONFIG=mini.config make allnoconfig 92 93 或:: 94 95 make KCONFIG_ALLCONFIG=mini.config allnoconfig 96 97 这些示例将禁用大多数配置选项(allnoconfig),但启用或禁用 miniconfig 文件 98 中显式列出的选项。 99 100``randconfig`` 的环境变量: 101 102``KCONFIG_SEED`` 103 如果你想调试 kconfig 解析器/前端的行为,你可以将此变量设置整数值,用于初始化 104 随机数生成器。如果未设置,将使用当前时间。 105 106``KCONFIG_PROBABILITY`` 107 该变量可用于倾斜概率分布。此变量可不设置或设置为空,或设置为以下三种不同格式: 108 109 ======================= ================== ===================== 110 KCONFIG_PROBABILITY y:n 分配 y:m:n 分配 111 ======================= ================== ===================== 112 未设置或设置为空 50 : 50 33 : 33 : 34 113 N N : 100-N N/2 : N/2 : 100-N 114 [1] N:M N+M : 100-(N+M) N : M : 100-(N+M) 115 [2] N:M:L N : 100-N M : L : 100-(M+L) 116 ======================= ================== ===================== 117 118其中 N、M 和 L 是范围在 [0,100] 内的整数(以十进制表示),并且需满足: 119 120 [1] N+M 的范围在 [0,100] 之间 121 122 [2] M+L 的范围在 [0,100] 之间 123 124示例:: 125 126 KCONFIG_PROBABILITY=10 127 10% 的布尔值将设置为 'y',90% 设置为 'n' 128 5% 的三态值将设置为 'y',5% 设置为 'm',90% 设置为 'n' 129 KCONFIG_PROBABILITY=15:25 130 40% 的布尔值将设置为 'y',60% 设置为 'n' 131 15% 的三态值将设置为 'y',25% 设置为 'm',60% 设置为 'n' 132 KCONFIG_PROBABILITY=10:15:15 133 10% 的布尔值将设置为 'y',90% 设置为 'n' 134 15% 的三态值将设置为 'y',15% 设置为 'm',70% 设置为 'n' 135 136``syncconfig`` 的环境变量: 137 138``KCONFIG_NOSILENTUPDATE`` 139 如果该变量非空,它将阻止静默的内核配置更新(需要明确更新)。 140 141``KCONFIG_AUTOCONFIG`` 142 该环境变量可以设置为 "auto.conf" 文件的路径和名称。默认值为 143 "include/config/auto.conf"。 144 145``KCONFIG_AUTOHEADER`` 146 该环境变量可以设置为 "autoconf.h" 头文件的路径和名称。默认值为 147 "include/generated/autoconf.h"。 148 149menuconfig 150========== 151 152在 menuconfig 中搜索: 153 154 搜索功能会搜索内核配置符号名称,因此你必须知道欲搜索内容的大致名称。 155 156 示例:: 157 158 /hotplug 159 这会列出所有包含 "hotplug" 的配置符号,例如,HOTPLUG_CPU, 160 MEMORY_HOTPLUG。 161 162 若需要搜索帮助,输入 / 后跟 TAB-TAB(高亮显示 <Help>)并按回车键。 163 这说明你还可以在搜索字符串中使用正则表达式(regex),所以如果你对 164 MEMORY_HOTPLUG 不感兴趣,你可以尝试:: 165 166 /^hotplug 167 168 在搜索时,符号将按以下顺序排序: 169 170 - 首先,完全匹配的符号,按字母顺序排列(完全匹配是指搜索与符号名称完全匹配); 171 - 然后是其他匹配项,按字母顺序排列。 172 173 例如,^ATH.K 匹配:: 174 175 ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG 176 [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...] 177 178 其中只有 ATH5K 和 ATH9K 完全匹配,因此它们排在前面(按字母顺序), 179 接下来是其他符号,同样按字母顺序排列。 180 181 在此菜单中,按下以 (#) 为前缀的键将直接跳转到该位置。退出此新菜单后, 182 你将返回当前的搜索结果。 183 184'menuconfig' 的用户界面选项: 185 186``MENUCONFIG_COLOR`` 187 可以使用变量 MENUCONFIG_COLOR 选择不同的配色主题。使用以下命令选择主题:: 188 189 make MENUCONFIG_COLOR=<theme> menuconfig 190 191 可用的主题有:: 192 193 - mono => 选择适合单色显示器的颜色 194 - blackbg => 选择具有黑色背景的配色方案 195 - classic => 经典外观,蓝色背景 196 - bluetitle => 经典外观的 LCD 友好版本(默认) 197 198``MENUCONFIG_MODE`` 199 此模式会将所有子菜单显示为一个大树状结构。 200 201 示例:: 202 203 make MENUCONFIG_MODE=single_menu menuconfig 204 205nconfig 206======= 207 208nconfig 是一个替代的基于文本的配置工具。它在终端(窗口)底部列出功能键,用于执行 209命令。除非你在数据输入窗口中,否则你也可以直接使用相应的数字键来执行命令。例如,你 210可以直接按 6,而非 F6 进行保存。 211 212使用 F1 获取全局帮助或 F3 打开简短帮助菜单。 213 214在 nconfig 中搜索: 215 216 你可以在菜单项“提示”字符串中或配置符号中进行搜索。 217 218 使用 / 开始在菜单项中搜索。这不支持正则表达式。使用 <Down> 或 <Up> 219 分别为下一个命中项和上一个命中项。使用 <Esc> 退出搜索模式。 220 221 F8(SymSearch)在配置符号中搜索给定的字符串或正则表达式(regex)。 222 223 在 SymSearch 中,按下 (#) 前缀的键会直接跳转到该位置。退出该新菜单后, 224 你将返回到当前的搜索结果。 225 226环境变量: 227 228``NCONFIG_MODE`` 229 此模式会将所有子菜单显示为一个大型树结构。 230 231 示例:: 232 233 make NCONFIG_MODE=single_menu nconfig 234 235xconfig 236======= 237 238在 xconfig 中搜索: 239 240 搜索功能会搜索内核配置符号名称,因此你必须知道欲搜索内容的大致名称。 241 242 示例:: 243 244 Ctrl-F hotplug 245 246 或:: 247 248 菜单:File, Search, hotplug 249 250 列出所有符号名称中包含 "hotplug" 的配置符号项。在此搜索对话框中, 251 你可以更改任何未灰显条目的配置设置。你还可以输入不同的搜索字符串, 252 而无需返回主菜单。 253 254gconfig 255======= 256 257在 gconfig 中搜索: 258 259 gconfig 中没有搜索命令。然而,gconfig 具有几种不同的查看选择、模式和选项。 260