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