~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/kbuild/kconfig.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/kbuild/kconfig.rst (Version linux-6.12-rc7) and /Documentation/kbuild/kconfig.rst (Version linux-5.15.171)


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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php