![Randy Dunlap](/assets/img/avatar_default.png)
Create a kconfig user assistance guide, with a few tips and hints about using menuconfig, xconfig, and gconfig. Mostly contains user interface, environment variables, and search topics, along with mini.config/custom.config usage. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
189 lines
6.5 KiB
Plaintext
189 lines
6.5 KiB
Plaintext
This file contains some assistance for using "make *config".
|
|
|
|
Use "make help" to list all of the possible configuration targets.
|
|
|
|
The xconfig ('qconf') and menuconfig ('mconf') programs also
|
|
have embedded help text. Be sure to check it for navigation,
|
|
search, and other general help text.
|
|
|
|
======================================================================
|
|
General
|
|
--------------------------------------------------
|
|
|
|
New kernel releases often introduce new config symbols. Often more
|
|
important, new kernel releases may rename config symbols. When
|
|
this happens, using a previously working .config file and running
|
|
"make oldconfig" won't necessarily produce a working new kernel
|
|
for you, so you may find that you need to see what NEW kernel
|
|
symbols have been introduced.
|
|
|
|
To see a list of new config symbols when using "make oldconfig", use
|
|
|
|
cp user/some/old.config .config
|
|
yes "" | make oldconfig >conf.new
|
|
|
|
and the config program will list as (NEW) any new symbols that have
|
|
unknown values. Of course, the .config file is also updated with
|
|
new (default) values, so you can use:
|
|
|
|
grep "(NEW)" conf.new
|
|
|
|
to see the new config symbols or you can 'diff' the previous and
|
|
new .config files to see the differences:
|
|
|
|
diff .config.old .config | less
|
|
|
|
(Yes, we need something better here.)
|
|
|
|
|
|
======================================================================
|
|
menuconfig
|
|
--------------------------------------------------
|
|
|
|
SEARCHING for CONFIG symbols
|
|
|
|
Searching in menuconfig:
|
|
|
|
The Search function searches for kernel configuration symbol
|
|
names, so you have to know something close to what you are
|
|
looking for.
|
|
|
|
Example:
|
|
/hotplug
|
|
This lists all config symbols that contain "hotplug",
|
|
e.g., HOTPLUG, HOTPLUG_CPU, MEMORY_HOTPLUG.
|
|
|
|
For search help, enter / followed TAB-TAB-TAB (to highlight
|
|
<Help>) and Enter. This will tell you that you can also use
|
|
regular expressions (regexes) in the search string, so if you
|
|
are not interested in MEMORY_HOTPLUG, you could try
|
|
|
|
/^hotplug
|
|
|
|
|
|
______________________________________________________________________
|
|
Color Themes for 'menuconfig'
|
|
|
|
It is possible to select different color themes using the variable
|
|
MENUCONFIG_COLOR. To select a theme use:
|
|
|
|
make MENUCONFIG_COLOR=<theme> menuconfig
|
|
|
|
Available themes are:
|
|
mono => selects colors suitable for monochrome displays
|
|
blackbg => selects a color scheme with black background
|
|
classic => theme with blue background. The classic look
|
|
bluetitle => a LCD friendly version of classic. (default)
|
|
|
|
______________________________________________________________________
|
|
Environment variables in 'menuconfig'
|
|
|
|
KCONFIG_ALLCONFIG
|
|
--------------------------------------------------
|
|
(partially based on lkml email from/by Rob Landley, re: miniconfig)
|
|
--------------------------------------------------
|
|
The allyesconfig/allmodconfig/allnoconfig/randconfig variants can
|
|
also use the environment variable KCONFIG_ALLCONFIG as a flag or a
|
|
filename that contains config symbols that the user requires to be
|
|
set to a specific value. If KCONFIG_ALLCONFIG is used without a
|
|
filename, "make *config" checks for a file named
|
|
"all{yes/mod/no/random}.config" (corresponding to the *config command
|
|
that was used) for symbol values that are to be forced. If this file
|
|
is not found, it checks for a file named "all.config" to contain forced
|
|
values.
|
|
|
|
This enables you to create "miniature" config (miniconfig) or custom
|
|
config files containing just the config symbols that you are interested
|
|
in. Then the kernel config system generates the full .config file,
|
|
including dependencies of your miniconfig file, based on the miniconfig
|
|
file.
|
|
|
|
This 'KCONFIG_ALLCONFIG' file is a config file which contains
|
|
(usually a subset of all) preset config symbols. These variable
|
|
settings are still subject to normal dependency checks.
|
|
|
|
Examples:
|
|
KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig
|
|
or
|
|
KCONFIG_ALLCONFIG=mini.config make allnoconfig
|
|
or
|
|
make KCONFIG_ALLCONFIG=mini.config allnoconfig
|
|
|
|
These examples will disable most options (allnoconfig) but enable or
|
|
disable the options that are explicitly listed in the specified
|
|
mini-config files.
|
|
|
|
KCONFIG_NOSILENTUPDATE
|
|
--------------------------------------------------
|
|
If this variable has a non-blank value, it prevents silent kernel
|
|
config udpates (requires explicit updates).
|
|
|
|
KCONFIG_CONFIG
|
|
--------------------------------------------------
|
|
This environment variable can be used to specify a default kernel config
|
|
file name to override the default name of ".config".
|
|
|
|
KCONFIG_OVERWRITECONFIG
|
|
--------------------------------------------------
|
|
If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not
|
|
break symlinks when .config is a symlink to somewhere else.
|
|
|
|
KCONFIG_NOTIMESTAMP
|
|
--------------------------------------------------
|
|
If this environment variable exists and is non-null, the timestamp line
|
|
in generated .config files is omitted.
|
|
|
|
KCONFIG_AUTOCONFIG
|
|
--------------------------------------------------
|
|
This environment variable can be set to specify the path & name of the
|
|
"auto.conf" file. Its default value is "include/config/auto.conf".
|
|
|
|
KCONFIG_AUTOHEADER
|
|
--------------------------------------------------
|
|
This environment variable can be set to specify the path & name of the
|
|
"autoconf.h" (header) file. Its default value is "include/linux/autoconf.h".
|
|
|
|
______________________________________________________________________
|
|
menuconfig User Interface Options
|
|
----------------------------------------------------------------------
|
|
MENUCONFIG_MODE
|
|
--------------------------------------------------
|
|
This mode shows all sub-menus in one large tree.
|
|
|
|
Example:
|
|
MENUCONFIG_MODE=single_menu make menuconfig
|
|
|
|
======================================================================
|
|
xconfig
|
|
--------------------------------------------------
|
|
|
|
Searching in xconfig:
|
|
|
|
The Search function searches for kernel configuration symbol
|
|
names, so you have to know something close to what you are
|
|
looking for.
|
|
|
|
Example:
|
|
Ctrl-F hotplug
|
|
or
|
|
Menu: File, Search, hotplug
|
|
|
|
lists all config symbol entries that contain "hotplug" in
|
|
the symbol name. In this Search dialog, you may change the
|
|
config setting for any of the entries that are not grayed out.
|
|
You can also enter a different search string without having
|
|
to return to the main menu.
|
|
|
|
|
|
======================================================================
|
|
gconfig
|
|
--------------------------------------------------
|
|
|
|
Searching in gconfig:
|
|
|
|
None (gconfig isn't maintained as well as xconfig or menuconfig);
|
|
however, gconfig does have a few more viewing choices than
|
|
xconfig does.
|
|
|
|
###
|