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