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