← Documents Documentation/kbuild/kconfig.rst GitHub 원문 ↗

Linux 6.18.37 · Kbuild

Configuration Targets and Editors

Kconfig target, 환경 변수, randconfig 확률과 menuconfig·nconfig·xconfig·gconfig 사용법을 설명합니다.

Source pathDocumentation/kbuild/kconfig.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

kconfig.rst:1-295

새 kernel로 이동할 때는 `make listnewconfig`와 `scripts/diffconfig`로 새 symbol·이름 변경을 확인합니다. `KCONFIG_ALLCONFIG`는 관심 있는 symbol만 담은 miniconfig를 전체 `.config` 생성 과정에 결합합니다.

재현 가능한 `randconfig`에는 `KCONFIG_SEED`와 `KCONFIG_PROBABILITY`를 함께 기록해야 합니다. 자동 생성 파일 경로는 `KCONFIG_AUTOCONFIG`, `KCONFIG_AUTOHEADER`로 바꿀 수 있습니다.

Text editor 중 `menuconfig`는 regex symbol 검색, `nconfig`는 prompt 검색과 F8 symbol 검색을 분리합니다. `xconfig`는 search dialog에서 값을 바로 바꿀 수 있고 `gconfig`에는 search command가 없습니다.

구성 작업 선택
새 release 차이 확인: `listnewconfig`·`diffconfig`부분 정책 강제: `KCONFIG_ALLCONFIG`Random test 재현: `KCONFIG_SEED`·`KCONFIG_PROBABILITY`Terminal 탐색: `menuconfig` 또는 `nconfig`GUI 탐색: `xconfig`

목적에 따라 target과 editor 기능을 조합합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =================================
2 Configuration targets and editors
3 =================================
4
5 This file contains some assistance for using ``make *config``.
6
7 Use ``make help`` to list all of the possible configuration targets.
8
9 The xconfig ('qconf'), menuconfig ('mconf'), and nconfig ('nconf')
10 programs also have embedded help text. Be sure to check that for
11 navigation, search, and other general help text.
12
13 The gconfig ('gconf') program has limited help text.
14
15
16 General
17 =======
18
19 New kernel releases often introduce new config symbols. Often more
20 important, new kernel releases may rename config symbols. When
21 this happens, using a previously working .config file and running
22 "make oldconfig" won't necessarily produce a working new kernel
23 for you, so you may find that you need to see what NEW kernel
24 symbols have been introduced.
25
26 To see a list of new config symbols, use::
27
28 cp user/some/old.config .config
29 make listnewconfig
30
31 and the config program will list any new symbols, one per line.
32
33 Alternatively, you can use the brute force method::
34
35 make oldconfig
36 scripts/diffconfig .config.old .config | less
37
38
39 Environment variables
40 =====================
41
42 Environment variables for ``*config``:
43
44 ``KCONFIG_CONFIG``
45 This environment variable can be used to specify a default kernel config
46 file name to override the default name of ".config".
47
48 ``KCONFIG_DEFCONFIG_LIST``
49 This environment variable specifies a list of config files which can be
50 used as a base configuration in case the .config does not exist yet.
51 Entries in the list are separated with whitespaces to each other, and
52 the first one that exists is used.
53
54 ``KCONFIG_OVERWRITECONFIG``
55 If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not
56 break symlinks when .config is a symlink to somewhere else.
57
58 ``KCONFIG_WARN_UNKNOWN_SYMBOLS``
59 This environment variable makes Kconfig warn about all unrecognized
60 symbols in the config input.
61
62 ``KCONFIG_WERROR``
63 If set, Kconfig treats warnings as errors.
64
65 ``CONFIG_``
66 If you set ``CONFIG_`` in the environment, Kconfig will prefix all symbols
67 with its value when saving the configuration, instead of using the
68 default, ``CONFIG_``.
69
70 Environment variables for ``{allyes/allmod/allno/alldef/rand}config``:
71
72 ``KCONFIG_ALLCONFIG``
73 The allyesconfig/allmodconfig/alldefconfig/allnoconfig/randconfig variants
74 can also use the environment variable KCONFIG_ALLCONFIG as a flag or a
75 filename that contains config symbols that the user requires to be set to a
76 specific value. If KCONFIG_ALLCONFIG is used without a filename where
77 KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", ``make *config``
78 checks for a file named "all{yes/mod/no/def/random}.config"
79 (corresponding to the ``*config`` command that was used) for symbol values
80 that are to be forced. If this file is not found, it checks for a
81 file named "all.config" to contain forced values.
82
83 This enables you to create "miniature" config (miniconfig) or custom
84 config files containing just the config symbols that you are interested
85 in. Then the kernel config system generates the full .config file,
86 including symbols of your miniconfig file.
87
88 This ``KCONFIG_ALLCONFIG`` file is a config file which contains
89 (usually a subset of all) preset config symbols. These variable
90 settings are still subject to normal dependency checks.
91
92 Examples::
93
94 KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig
95
96 or::
97
98 KCONFIG_ALLCONFIG=mini.config make allnoconfig
99
100 or::
101
102 make KCONFIG_ALLCONFIG=mini.config allnoconfig
103
104 These examples will disable most options (allnoconfig) but enable or
105 disable the options that are explicitly listed in the specified
106 mini-config files.
107
108 Environment variables for ``randconfig``:
109
110 ``KCONFIG_SEED``
111 You can set this to the integer value used to seed the RNG, if you want
112 to somehow debug the behaviour of the kconfig parser/frontends.
113 If not set, the current time will be used.
114
115 ``KCONFIG_PROBABILITY``
116 This variable can be used to skew the probabilities. This variable can
117 be unset or empty, or set to three different formats:
118
119 ======================= ================== =====================
120 KCONFIG_PROBABILITY y:n split y:m:n split
121 ======================= ================== =====================
122 unset or empty 50 : 50 33 : 33 : 34
123 N N : 100-N N/2 : N/2 : 100-N
124 [1] N:M N+M : 100-(N+M) N : M : 100-(N+M)
125 [2] N:M:L N : 100-N M : L : 100-(M+L)
126 ======================= ================== =====================
127
128 where N, M and L are integers (in base 10) in the range [0,100], and so
129 that:
130
131 [1] N+M is in the range [0,100]
132
133 [2] M+L is in the range [0,100]
134
135 Examples::
136
137 KCONFIG_PROBABILITY=10
138 10% of booleans will be set to 'y', 90% to 'n'
139 5% of tristates will be set to 'y', 5% to 'm', 90% to 'n'
140 KCONFIG_PROBABILITY=15:25
141 40% of booleans will be set to 'y', 60% to 'n'
142 15% of tristates will be set to 'y', 25% to 'm', 60% to 'n'
143 KCONFIG_PROBABILITY=10:15:15
144 10% of booleans will be set to 'y', 90% to 'n'
145 15% of tristates will be set to 'y', 15% to 'm', 70% to 'n'
146
147 Environment variables for ``syncconfig``:
148
149 ``KCONFIG_NOSILENTUPDATE``
150 If this variable has a non-blank value, it prevents silent kernel
151 config updates (requires explicit updates).
152
153 ``KCONFIG_AUTOCONFIG``
154 This environment variable can be set to specify the path & name of the
155 "auto.conf" file. Its default value is "include/config/auto.conf".
156
157 ``KCONFIG_AUTOHEADER``
158 This environment variable can be set to specify the path & name of the
159 "autoconf.h" (header) file.
160 Its default value is "include/generated/autoconf.h".
161
162
163 menuconfig
164 ==========
165
166 Searching in menuconfig:
167
168 The Search function searches for kernel configuration symbol
169 names, so you have to know something close to what you are
170 looking for.
171
172 Example::
173
174 /hotplug
175 This lists all config symbols that contain "hotplug",
176 e.g., HOTPLUG_CPU, MEMORY_HOTPLUG.
177
178 For search help, enter / followed by TAB-TAB (to highlight
179 <Help>) and Enter. This will tell you that you can also use
180 regular expressions (regexes) in the search string, so if you
181 are not interested in MEMORY_HOTPLUG, you could try::
182
183 /^hotplug
184
185 When searching, symbols are sorted thus:
186
187 - first, exact matches, sorted alphabetically (an exact match
188 is when the search matches the complete symbol name);
189 - then, other matches, sorted alphabetically.
190
191 For example, ^ATH.K matches:
192
193 ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
194 [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]
195
196 of which only ATH5K and ATH9K match exactly and so are sorted
197 first (and in alphabetical order), then come all other symbols,
198 sorted in alphabetical order.
199
200 In this menu, pressing the key in the (#) prefix will jump
201 directly to that location. You will be returned to the current
202 search results after exiting this new menu.
203
204 User interface options for 'menuconfig':
205
206 ``MENUCONFIG_COLOR``
207 It is possible to select different color themes using the variable
208 MENUCONFIG_COLOR. To select a theme use::
209
210 make MENUCONFIG_COLOR=<theme> menuconfig
211
212 Available themes are::
213
214 - mono => selects colors suitable for monochrome displays
215 - blackbg => selects a color scheme with black background
216 - classic => theme with blue background. The classic look
217 - bluetitle => a LCD friendly version of classic. (default)
218
219 ``MENUCONFIG_MODE``
220 This mode shows all sub-menus in one large tree.
221
222 Example::
223
224 make MENUCONFIG_MODE=single_menu menuconfig
225
226
227 nconfig
228 =======
229
230 nconfig is an alternate text-based configurator. It lists function
231 keys across the bottom of the terminal (window) that execute commands.
232 You can also just use the corresponding numeric key to execute the
233 commands unless you are in a data entry window. E.g., instead of F6
234 for Save, you can just press 6.
235
236 Use F1 for Global help or F3 for the Short help menu.
237
238 Searching in nconfig:
239
240 You can search either in the menu entry "prompt" strings
241 or in the configuration symbols.
242
243 Use / to begin a search through the menu entries. This does
244 not support regular expressions. Use <Down> or <Up> for
245 Next hit and Previous hit, respectively. Use <Esc> to
246 terminate the search mode.
247
248 F8 (SymSearch) searches the configuration symbols for the
249 given string or regular expression (regex).
250
251 In the SymSearch, pressing the key in the (#) prefix will
252 jump directly to that location. You will be returned to the
253 current search results after exiting this new menu.
254
255 Environment variables:
256
257 ``NCONFIG_MODE``
258 This mode shows all sub-menus in one large tree.
259
260 Example::
261
262 make NCONFIG_MODE=single_menu nconfig
263
264
265 xconfig
266 =======
267
268 Searching in xconfig:
269
270 The Search function searches for kernel configuration symbol
271 names, so you have to know something close to what you are
272 looking for.
273
274 Example::
275
276 Ctrl-F hotplug
277
278 or::
279
280 Menu: File, Search, hotplug
281
282 lists all config symbol entries that contain "hotplug" in
283 the symbol name. In this Search dialog, you may change the
284 config setting for any of the entries that are not grayed out.
285 You can also enter a different search string without having
286 to return to the main menu.
287
288
289 gconfig
290 =======
291
292 Searching in gconfig:
293
294 There is no search command in gconfig. However, gconfig does
295 have several different viewing choices, modes, and options.
296

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

구성 target과 새 symbol 확인

1-38

이 문서는 `make *config` 사용을 돕습니다. 가능한 configuration target 전체는 `make help`로 확인할 수 있습니다.

`xconfig`의 `qconf`, `menuconfig`의 `mconf`, `nconfig`의 `nconf`에는 navigation, search와 일반 사용법을 설명하는 내장 help text가 있습니다. `gconfig`의 `gconf`는 help text가 제한적입니다.

Kconfig editor
TargetProgram도움말
`xconfig``qconf`Navigation·search·일반 도움말
`menuconfig``mconf`Navigation·search·일반 도움말
`nconfig``nconf`Navigation·search·일반 도움말
`gconfig``gconf`제한된 도움말

각 editor의 실행 이름과 내장 도움말 수준입니다.

새 kernel release는 새 config symbol을 도입하기도 하고 기존 symbol 이름을 바꾸기도 합니다. 그래서 예전에 동작하던 `.config`에 `make oldconfig`만 실행해도 새 kernel이 반드시 정상 동작하는 것은 아닙니다. 새로 추가된 symbol을 확인해야 할 수 있습니다.

새 symbol 목록은 기존 config를 `.config`로 복사한 뒤 `make listnewconfig`를 실행해 얻습니다. Config program은 새 symbol을 한 줄에 하나씩 출력합니다.

cp user/some/old.config .config
make listnewconfig

대안으로 `make oldconfig`를 실행한 뒤 `scripts/diffconfig .config.old .config | less`로 이전·현재 구성을 강제로 비교할 수 있습니다.

새 release 구성 점검
기존 `.config` 준비`make listnewconfig`로 신규 symbol 확인필요하면 `make oldconfig` 실행`scripts/diffconfig`로 변경점 검토

기존 config를 새 symbol 체계에 맞춰 검토하는 절차입니다.

=================================
Configuration targets and editors
=================================

This file contains some assistance for using ``make *config``.

Use ``make help`` to list all of the possible configuration targets.

The xconfig ('qconf'), menuconfig ('mconf'), and nconfig ('nconf')
programs also have embedded help text.  Be sure to check that for
navigation, search, and other general help text.

The gconfig ('gconf') program has limited help text.


General
=======

New kernel releases often introduce new config symbols.  Often more
important, new kernel releases may rename config symbols.  When
this happens, using a previously working .config file and running
"make oldconfig" won't necessarily produce a working new kernel
for you, so you may find that you need to see what NEW kernel
symbols have been introduced.

To see a list of new config symbols, use::

    cp user/some/old.config .config
    make listnewconfig

and the config program will list any new symbols, one per line.

Alternatively, you can use the brute force method::

    make oldconfig
    scripts/diffconfig .config.old .config | less

일반 및 allconfig 환경 변수

39-107

`*config`용 `KCONFIG_CONFIG`는 기본 이름 `.config`를 대신할 kernel config file name을 지정합니다. `KCONFIG_DEFCONFIG_LIST`는 `.config`가 아직 없을 때 base configuration으로 사용할 config file 목록을 지정합니다. 항목은 whitespace로 구분하며 실제로 존재하는 첫 파일을 사용합니다.

`KCONFIG_OVERWRITECONFIG`를 environment에 설정하면 `.config`가 다른 위치를 가리키는 symlink일 때 Kconfig가 그 symlink를 끊지 않습니다. `KCONFIG_WARN_UNKNOWN_SYMBOLS`는 config input의 인식할 수 없는 모든 symbol을 경고하게 하고, `KCONFIG_WERROR`는 warning을 error로 처리합니다.

Environment variable `CONFIG_`를 설정하면 configuration 저장 시 모든 symbol 앞에 기본 `CONFIG_` 대신 해당 값을 prefix로 붙입니다.

일반 `*config` 환경 변수
변수역할
`KCONFIG_CONFIG`기본 `.config` 대신 사용할 file name
`KCONFIG_DEFCONFIG_LIST``.config`가 없을 때 순서대로 찾을 base config 목록
`KCONFIG_OVERWRITECONFIG``.config` symlink를 유지
`KCONFIG_WARN_UNKNOWN_SYMBOLS`알 수 없는 input symbol 전체 경고
`KCONFIG_WERROR`Warning을 error로 처리
`CONFIG_`저장되는 symbol의 prefix 변경

입출력 경로와 진단 동작을 제어합니다.

`allyesconfig`, `allmodconfig`, `alldefconfig`, `allnoconfig`, `randconfig`는 `KCONFIG_ALLCONFIG`를 flag 또는 사용자가 특정 값으로 강제할 symbol을 담은 file name으로 사용할 수 있습니다.

`KCONFIG_ALLCONFIG`가 빈 문자열 또는 `1`이고 file name을 직접 주지 않으면 `make *config`는 실행 target에 대응하는 `all{yes/mod/no/def/random}.config`를 먼저 찾습니다. 이 파일이 없으면 강제 값을 담은 `all.config`를 찾습니다.

이를 이용하면 관심 있는 symbol만 담은 miniature config, 즉 miniconfig나 custom config를 만들 수 있습니다. Kernel config system은 miniconfig의 symbol을 포함해 전체 `.config`를 생성합니다. 단, preset 값도 정상 dependency check를 그대로 받습니다.

KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig
KCONFIG_ALLCONFIG=mini.config make allnoconfig
make KCONFIG_ALLCONFIG=mini.config allnoconfig

이 예제들은 `allnoconfig`로 대부분의 option을 끄되 지정한 mini-config에 명시된 option은 해당 값으로 enable 또는 disable합니다.

`KCONFIG_ALLCONFIG` 적용
`KCONFIG_ALLCONFIG` 값 또는 기본 후보 file 탐색Preset symbol·value 읽기정상 dependency check 적용나머지 symbol은 선택한 `*config` target 규칙으로 결정전체 `.config` 생성

Miniconfig는 전체 구성을 대체하지 않고 강제할 일부 symbol을 제공합니다.

Environment variables
=====================

Environment variables for ``*config``:

``KCONFIG_CONFIG``
    This environment variable can be used to specify a default kernel config
    file name to override the default name of ".config".

``KCONFIG_DEFCONFIG_LIST``
    This environment variable specifies a list of config files which can be
    used as a base configuration in case the .config does not exist yet.
    Entries in the list are separated with whitespaces to each other, and
    the first one that exists is used.

``KCONFIG_OVERWRITECONFIG``
    If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not
    break symlinks when .config is a symlink to somewhere else.

``KCONFIG_WARN_UNKNOWN_SYMBOLS``
    This environment variable makes Kconfig warn about all unrecognized
    symbols in the config input.

``KCONFIG_WERROR``
    If set, Kconfig treats warnings as errors.

``CONFIG_``
    If you set ``CONFIG_`` in the environment, Kconfig will prefix all symbols
    with its value when saving the configuration, instead of using the
    default, ``CONFIG_``.

Environment variables for ``{allyes/allmod/allno/alldef/rand}config``:

``KCONFIG_ALLCONFIG``
    The allyesconfig/allmodconfig/alldefconfig/allnoconfig/randconfig variants
    can also use the environment variable KCONFIG_ALLCONFIG as a flag or a
    filename that contains config symbols that the user requires to be set to a
    specific value.  If KCONFIG_ALLCONFIG is used without a filename where
    KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", ``make *config``
    checks for a file named "all{yes/mod/no/def/random}.config"
    (corresponding to the ``*config`` command that was used) for symbol values
    that are to be forced.  If this file is not found, it checks for a
    file named "all.config" to contain forced values.

    This enables you to create "miniature" config (miniconfig) or custom
    config files containing just the config symbols that you are interested
    in.  Then the kernel config system generates the full .config file,
    including symbols of your miniconfig file.

    This ``KCONFIG_ALLCONFIG`` file is a config file which contains
    (usually a subset of all) preset config symbols.  These variable
    settings are still subject to normal dependency checks.

    Examples::

        KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig

    or::

        KCONFIG_ALLCONFIG=mini.config make allnoconfig

    or::

        make KCONFIG_ALLCONFIG=mini.config allnoconfig

    These examples will disable most options (allnoconfig) but enable or
    disable the options that are explicitly listed in the specified
    mini-config files.

randconfig와 syncconfig 환경 변수

108-162

`randconfig`용 `KCONFIG_SEED`에는 RNG seed로 쓸 integer를 설정할 수 있습니다. Kconfig parser나 frontend 동작을 재현하며 debug할 때 유용합니다. 설정하지 않으면 현재 시간을 사용합니다.

`KCONFIG_PROBABILITY`는 random selection의 확률을 기울입니다. 설정하지 않거나 빈 값으로 둘 수 있고, 숫자 하나 `N`, 두 수 `N:M`, 세 수 `N:M:L` 형식을 지원합니다.

`KCONFIG_PROBABILITY` 형식
설정y:ny:m:n
미설정 또는 빈 값50 : 5033 : 33 : 34
`N`N : 100-NN/2 : N/2 : 100-N
`N:M`N+M : 100-(N+M)N : M : 100-(N+M)
`N:M:L`N : 100-NM : L : 100-(M+L)

Boolean의 y:n과 tristate의 y:m:n 분할입니다.

N, M, L은 모두 0~100 범위의 base-10 integer여야 합니다. `N:M`에서는 N+M도 0~100 범위여야 하고, `N:M:L`에서는 M+L이 0~100 범위여야 합니다.

확률 설정 예제
BooleanTristate
`10`y 10%, n 90%y 5%, m 5%, n 90%
`15:25`y 40%, n 60%y 15%, m 25%, n 60%
`10:15:15`y 10%, n 90%y 15%, m 15%, n 70%

원문 예제의 실제 boolean·tristate 분포입니다.

`syncconfig`용 `KCONFIG_NOSILENTUPDATE`에 빈 문자열이 아닌 값을 주면 kernel config가 조용히 자동 갱신되는 것을 막고 명시적인 update를 요구합니다.

`KCONFIG_AUTOCONFIG`는 `auto.conf`의 경로와 이름을 지정하며 기본값은 `include/config/auto.conf`입니다. `KCONFIG_AUTOHEADER`는 `autoconf.h` header의 경로와 이름을 지정하며 기본값은 `include/generated/autoconf.h`입니다.

`syncconfig` 환경 변수
변수기본값·효과
`KCONFIG_NOSILENTUPDATE`비어 있지 않으면 명시적 update 요구
`KCONFIG_AUTOCONFIG``include/config/auto.conf`
`KCONFIG_AUTOHEADER``include/generated/autoconf.h`

자동 갱신 정책과 생성 파일 위치를 제어합니다.

Environment variables for ``randconfig``:

``KCONFIG_SEED``
    You can set this to the integer value used to seed the RNG, if you want
    to somehow debug the behaviour of the kconfig parser/frontends.
    If not set, the current time will be used.

``KCONFIG_PROBABILITY``
    This variable can be used to skew the probabilities. This variable can
    be unset or empty, or set to three different formats:

    =======================     ==================  =====================
    KCONFIG_PROBABILITY         y:n split           y:m:n split
    =======================     ==================  =====================
    unset or empty              50  : 50            33  : 33  : 34
    N                            N  : 100-N         N/2 : N/2 : 100-N
    [1] N:M                     N+M : 100-(N+M)      N  :  M  : 100-(N+M)
    [2] N:M:L                    N  : 100-N          M  :  L  : 100-(M+L)
    =======================     ==================  =====================

where N, M and L are integers (in base 10) in the range [0,100], and so
that:

    [1] N+M is in the range [0,100]

    [2] M+L is in the range [0,100]

Examples::

    KCONFIG_PROBABILITY=10
        10% of booleans will be set to 'y', 90% to 'n'
        5% of tristates will be set to 'y', 5% to 'm', 90% to 'n'
    KCONFIG_PROBABILITY=15:25
        40% of booleans will be set to 'y', 60% to 'n'
        15% of tristates will be set to 'y', 25% to 'm', 60% to 'n'
    KCONFIG_PROBABILITY=10:15:15
        10% of booleans will be set to 'y', 90% to 'n'
        15% of tristates will be set to 'y', 15% to 'm', 70% to 'n'

Environment variables for ``syncconfig``:

``KCONFIG_NOSILENTUPDATE``
    If this variable has a non-blank value, it prevents silent kernel
    config updates (requires explicit updates).

``KCONFIG_AUTOCONFIG``
    This environment variable can be set to specify the path & name of the
    "auto.conf" file.  Its default value is "include/config/auto.conf".

``KCONFIG_AUTOHEADER``
    This environment variable can be set to specify the path & name of the
    "autoconf.h" (header) file.
    Its default value is "include/generated/autoconf.h".

menuconfig 검색과 UI 옵션

163-226

`menuconfig`의 Search는 kernel configuration symbol name을 찾으므로 찾을 대상과 비슷한 이름을 알아야 합니다. `/hotplug`를 입력하면 `HOTPLUG_CPU`, `MEMORY_HOTPLUG`처럼 이름에 `hotplug`가 들어간 모든 config symbol을 나열합니다.

검색 help는 `/` 다음 TAB을 두 번 눌러 `<Help>`를 강조하고 Enter를 눌러 엽니다. Search string에는 regular expression도 쓸 수 있습니다. `MEMORY_HOTPLUG`은 제외하고 이름이 `hotplug`로 시작하는 symbol만 보려면 `/^hotplug`를 사용합니다.

검색 결과는 완전 일치한 symbol을 먼저 alphabet 순으로 정렬한 뒤, 나머지 일치 항목을 alphabet 순으로 정렬합니다. 예를 들어 `^ATH.K`는 `ATH5K`, `ATH9K`, `ATH5K_AHB`, `ATH5K_DEBUG`, `ATH6KL`, `ATH6KL_DEBUG`, `ATH9K_AHB`, `ATH9K_BTCOEX_SUPPORT`, `ATH9K_COMMON` 등을 찾습니다. 이 가운데 완전 일치는 `ATH5K`, `ATH9K`뿐이므로 두 항목이 먼저 나옵니다.

검색 menu에서 `(#)` prefix에 표시된 key를 누르면 해당 위치로 바로 이동합니다. 새 menu를 나가면 현재 검색 결과로 돌아옵니다.

menuconfig 검색
`/`로 symbol name 검색 시작문자열 또는 regex 입력완전 일치를 alphabet 순으로 표시나머지 일치를 alphabet 순으로 표시`(#)` key로 항목 위치 이동종료 시 검색 결과로 복귀

완전 일치를 우선 표시하고 결과에서 구성 위치로 이동할 수 있습니다.

`MENUCONFIG_COLOR`로 color theme을 고를 수 있으며 `make MENUCONFIG_COLOR=<theme> menuconfig` 형태로 사용합니다.

`MENUCONFIG_COLOR` theme
Theme설명
`mono`Monochrome display에 적합한 색상
`blackbg`검은 배경 color scheme
`classic`고전적인 파란 배경
`bluetitle`LCD 친화적인 classic 변형이며 기본값

menuconfig에서 선택 가능한 네 theme입니다.

`MENUCONFIG_MODE=single_menu`는 모든 sub-menu를 하나의 큰 tree로 보여 줍니다. 실행 예는 `make MENUCONFIG_MODE=single_menu menuconfig`입니다.

menuconfig
==========

Searching in menuconfig:

    The Search function searches for kernel configuration symbol
    names, so you have to know something close to what you are
    looking for.

    Example::

        /hotplug
        This lists all config symbols that contain "hotplug",
        e.g., HOTPLUG_CPU, MEMORY_HOTPLUG.

    For search help, enter / followed by TAB-TAB (to highlight
    <Help>) and Enter.  This will tell you that you can also use
    regular expressions (regexes) in the search string, so if you
    are not interested in MEMORY_HOTPLUG, you could try::

        /^hotplug

    When searching, symbols are sorted thus:

    - first, exact matches, sorted alphabetically (an exact match
      is when the search matches the complete symbol name);
    - then, other matches, sorted alphabetically.

    For example, ^ATH.K matches:

        ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
        [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]

    of which only ATH5K and ATH9K match exactly and so are sorted
    first (and in alphabetical order), then come all other symbols,
    sorted in alphabetical order.

    In this menu, pressing the key in the (#) prefix will jump
    directly to that location. You will be returned to the current
    search results after exiting this new menu.

User interface options for 'menuconfig':

``MENUCONFIG_COLOR``
    It is possible to select different color themes using the variable
    MENUCONFIG_COLOR.  To select a theme use::

        make MENUCONFIG_COLOR=<theme> menuconfig

    Available themes are::

      - mono       => selects colors suitable for monochrome displays
      - blackbg    => selects a color scheme with black background
      - classic    => theme with blue background. The classic look
      - bluetitle  => a LCD friendly version of classic. (default)

``MENUCONFIG_MODE``
    This mode shows all sub-menus in one large tree.

    Example::

        make MENUCONFIG_MODE=single_menu menuconfig

nconfig 조작과 검색

227-264

`nconfig`는 대체 text-based configurator입니다. Terminal 아래쪽에 command를 실행하는 function key를 나열합니다. Data entry window가 아니라면 해당 숫자 key만 눌러도 됩니다. 예를 들어 Save의 F6 대신 `6`을 누를 수 있습니다.

Global help는 F1, Short help menu는 F3으로 엽니다. 검색은 menu entry의 `prompt` string과 configuration symbol에서 각각 수행할 수 있습니다.

`/`는 menu entry 검색을 시작하며 regular expression을 지원하지 않습니다. `<Down>`과 `<Up>`은 각각 다음·이전 일치 항목으로 이동하고 `<Esc>`는 search mode를 끝냅니다.

F8 `SymSearch`는 입력한 string 또는 regular expression으로 configuration symbol을 검색합니다. SymSearch에서 `(#)` prefix의 key를 누르면 해당 위치로 바로 이동하며, 새 menu를 나가면 기존 검색 결과로 돌아옵니다.

nconfig 검색 방식
시작대상Regex이동
`/`Menu entry prompt미지원`<Down>`·`<Up>`
F8 `SymSearch`Configuration symbol지원`(#)` key로 위치 이동

Prompt 검색과 symbol 검색은 기능이 다릅니다.

`NCONFIG_MODE=single_menu`는 모든 sub-menu를 하나의 큰 tree로 표시합니다. `make NCONFIG_MODE=single_menu nconfig`로 실행합니다.

nconfig
=======

nconfig is an alternate text-based configurator.  It lists function
keys across the bottom of the terminal (window) that execute commands.
You can also just use the corresponding numeric key to execute the
commands unless you are in a data entry window.  E.g., instead of F6
for Save, you can just press 6.

Use F1 for Global help or F3 for the Short help menu.

Searching in nconfig:

    You can search either in the menu entry "prompt" strings
    or in the configuration symbols.

    Use / to begin a search through the menu entries.  This does
    not support regular expressions.  Use <Down> or <Up> for
    Next hit and Previous hit, respectively.  Use <Esc> to
    terminate the search mode.

    F8 (SymSearch) searches the configuration symbols for the
    given string or regular expression (regex).

    In the SymSearch, pressing the key in the (#) prefix will
    jump directly to that location. You will be returned to the
    current search results after exiting this new menu.

Environment variables:

``NCONFIG_MODE``
    This mode shows all sub-menus in one large tree.

    Example::

        make NCONFIG_MODE=single_menu nconfig

xconfig와 gconfig 검색

265-295

`xconfig`의 Search는 kernel configuration symbol name을 검색하므로 찾으려는 대상과 가까운 이름을 알아야 합니다. `Ctrl-F hotplug` 또는 menu에서 `File`, `Search`, `hotplug` 순서로 실행합니다.

검색 결과는 symbol name에 `hotplug`가 들어간 모든 config symbol entry를 나열합니다. Search dialog에서 gray 처리되지 않은 항목은 config setting을 바로 바꿀 수 있고, main menu로 돌아가지 않고 다른 search string도 입력할 수 있습니다.

`gconfig`에는 search command가 없습니다. 대신 여러 viewing choice, mode와 option을 제공합니다.

Configurator 검색 비교
Editor검색Regex특징
`menuconfig``/` symbol search지원완전 일치 우선, 위치 jump
`nconfig``/` prompt, F8 symbolSymbol 검색만 지원두 검색 mode 분리
`xconfig`Ctrl-F 또는 File/Search문서에 명시 없음Dialog에서 값 변경·연속 검색
`gconfig`없음없음여러 view·mode·option 제공

동일한 symbol을 찾을 때 editor마다 제공하는 기능이 다릅니다.

xconfig
=======

Searching in xconfig:

    The Search function searches for kernel configuration symbol
    names, so you have to know something close to what you are
    looking for.

    Example::

        Ctrl-F hotplug

    or::

        Menu: File, Search, hotplug

    lists all config symbol entries that contain "hotplug" in
    the symbol name.  In this Search dialog, you may change the
    config setting for any of the entries that are not grayed out.
    You can also enter a different search string without having
    to return to the main menu.


gconfig
=======

Searching in gconfig:

    There is no search command in gconfig.  However, gconfig does
    have several different viewing choices, modes, and options.