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