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