1This file contains some assistance for using "make *config". 2 3Use "make help" to list all of the possible configuration targets. 4 5The xconfig ('qconf') and menuconfig ('mconf') programs also 6have embedded help text. Be sure to check it for navigation, 7search, and other general help text. 8 9====================================================================== 10General 11-------------------------------------------------- 12 13New kernel releases often introduce new config symbols. Often more 14important, new kernel releases may rename config symbols. When 15this happens, using a previously working .config file and running 16"make oldconfig" won't necessarily produce a working new kernel 17for you, so you may find that you need to see what NEW kernel 18symbols have been introduced. 19 20To see a list of new config symbols when using "make oldconfig", use 21 22 cp user/some/old.config .config 23 yes "" | make oldconfig >conf.new 24 25and the config program will list as (NEW) any new symbols that have 26unknown values. Of course, the .config file is also updated with 27new (default) values, so you can use: 28 29 grep "(NEW)" conf.new 30 31to see the new config symbols or you can use diffconfig to see the 32differences between the previous and new .config files: 33 34 scripts/diffconfig .config.old .config | less 35 36______________________________________________________________________ 37Environment variables for '*config' 38 39KCONFIG_CONFIG 40-------------------------------------------------- 41This environment variable can be used to specify a default kernel config 42file name to override the default name of ".config". 43 44KCONFIG_OVERWRITECONFIG 45-------------------------------------------------- 46If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not 47break symlinks when .config is a symlink to somewhere else. 48 49CONFIG_ 50-------------------------------------------------- 51If you set CONFIG_ in the environment, Kconfig will prefix all symbols 52with its value when saving the configuration, instead of using the default, 53"CONFIG_". 54 55______________________________________________________________________ 56Environment variables for '{allyes/allmod/allno/rand}config' 57 58KCONFIG_ALLCONFIG 59-------------------------------------------------- 60(partially based on lkml email from/by Rob Landley, re: miniconfig) 61-------------------------------------------------- 62The allyesconfig/allmodconfig/allnoconfig/randconfig variants can also 63use the environment variable KCONFIG_ALLCONFIG as a flag or a filename 64that contains config symbols that the user requires to be set to a 65specific value. If KCONFIG_ALLCONFIG is used without a filename where 66KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", "make *config" 67checks for a file named "all{yes/mod/no/def/random}.config" 68(corresponding to the *config command that was used) for symbol values 69that are to be forced. If this file is not found, it checks for a 70file named "all.config" to contain forced values. 71 72This enables you to create "miniature" config (miniconfig) or custom 73config files containing just the config symbols that you are interested 74in. Then the kernel config system generates the full .config file, 75including symbols of your miniconfig file. 76 77This 'KCONFIG_ALLCONFIG' file is a config file which contains 78(usually a subset of all) preset config symbols. These variable 79settings are still subject to normal dependency checks. 80 81Examples: 82 KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig 83or 84 KCONFIG_ALLCONFIG=mini.config make allnoconfig 85or 86 make KCONFIG_ALLCONFIG=mini.config allnoconfig 87 88These examples will disable most options (allnoconfig) but enable or 89disable the options that are explicitly listed in the specified 90mini-config files. 91 92______________________________________________________________________ 93Environment variables for 'randconfig' 94 95KCONFIG_SEED 96-------------------------------------------------- 97You can set this to the integer value used to seed the RNG, if you want 98to somehow debug the behaviour of the kconfig parser/frontends. 99If not set, the current time will be used. 100 101KCONFIG_PROBABILITY 102-------------------------------------------------- 103This variable can be used to skew the probabilities. This variable can 104be unset or empty, or set to three different formats: 105 KCONFIG_PROBABILITY y:n split y:m:n split 106 ----------------------------------------------------------------- 107 unset or empty 50 : 50 33 : 33 : 34 108 N N : 100-N N/2 : N/2 : 100-N 109 [1] N:M N+M : 100-(N+M) N : M : 100-(N+M) 110 [2] N:M:L N : 100-N M : L : 100-(M+L) 111 112where N, M and L are integers (in base 10) in the range [0,100], and so 113that: 114 [1] N+M is in the range [0,100] 115 [2] M+L is in the range [0,100] 116 117Examples: 118 KCONFIG_PROBABILITY=10 119 10% of booleans will be set to 'y', 90% to 'n' 120 5% of tristates will be set to 'y', 5% to 'm', 90% to 'n' 121 KCONFIG_PROBABILITY=15:25 122 40% of booleans will be set to 'y', 60% to 'n' 123 15% of tristates will be set to 'y', 25% to 'm', 60% to 'n' 124 KCONFIG_PROBABILITY=10:15:15 125 10% of booleans will be set to 'y', 90% to 'n' 126 15% of tristates will be set to 'y', 15% to 'm', 70% to 'n' 127 128______________________________________________________________________ 129Environment variables for 'silentoldconfig' 130 131KCONFIG_NOSILENTUPDATE 132-------------------------------------------------- 133If this variable has a non-blank value, it prevents silent kernel 134config updates (requires explicit updates). 135 136KCONFIG_AUTOCONFIG 137-------------------------------------------------- 138This environment variable can be set to specify the path & name of the 139"auto.conf" file. Its default value is "include/config/auto.conf". 140 141KCONFIG_TRISTATE 142-------------------------------------------------- 143This environment variable can be set to specify the path & name of the 144"tristate.conf" file. Its default value is "include/config/tristate.conf". 145 146KCONFIG_AUTOHEADER 147-------------------------------------------------- 148This environment variable can be set to specify the path & name of the 149"autoconf.h" (header) file. 150Its default value is "include/generated/autoconf.h". 151 152 153====================================================================== 154menuconfig 155-------------------------------------------------- 156 157SEARCHING for CONFIG symbols 158 159Searching in menuconfig: 160 161 The Search function searches for kernel configuration symbol 162 names, so you have to know something close to what you are 163 looking for. 164 165 Example: 166 /hotplug 167 This lists all config symbols that contain "hotplug", 168 e.g., HOTPLUG, HOTPLUG_CPU, MEMORY_HOTPLUG. 169 170 For search help, enter / followed TAB-TAB-TAB (to highlight 171 <Help>) and Enter. This will tell you that you can also use 172 regular expressions (regexes) in the search string, so if you 173 are not interested in MEMORY_HOTPLUG, you could try 174 175 /^hotplug 176 177______________________________________________________________________ 178User interface options for 'menuconfig' 179 180MENUCONFIG_COLOR 181-------------------------------------------------- 182It is possible to select different color themes using the variable 183MENUCONFIG_COLOR. To select a theme use: 184 185 make MENUCONFIG_COLOR=<theme> menuconfig 186 187Available themes are: 188 mono => selects colors suitable for monochrome displays 189 blackbg => selects a color scheme with black background 190 classic => theme with blue background. The classic look 191 bluetitle => a LCD friendly version of classic. (default) 192 193MENUCONFIG_MODE 194-------------------------------------------------- 195This mode shows all sub-menus in one large tree. 196 197Example: 198 make MENUCONFIG_MODE=single_menu menuconfig 199 200 201====================================================================== 202xconfig 203-------------------------------------------------- 204 205Searching in xconfig: 206 207 The Search function searches for kernel configuration symbol 208 names, so you have to know something close to what you are 209 looking for. 210 211 Example: 212 Ctrl-F hotplug 213 or 214 Menu: File, Search, hotplug 215 216 lists all config symbol entries that contain "hotplug" in 217 the symbol name. In this Search dialog, you may change the 218 config setting for any of the entries that are not grayed out. 219 You can also enter a different search string without having 220 to return to the main menu. 221 222 223====================================================================== 224gconfig 225-------------------------------------------------- 226 227Searching in gconfig: 228 229 None (gconfig isn't maintained as well as xconfig or menuconfig); 230 however, gconfig does have a few more viewing choices than 231 xconfig does. 232 233### 234