mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 07:24:39 +08:00
61401a8724
- Enable -Wenum-conversion warning option - Refactor the rpm-pkg target - Fix scripts/setlocalversion to consider annotated tags for rt-kernel - Add a jump key feature for the search menu of 'make nconfig' - Support Qt6 for 'make xconfig' - Enable -Wformat-overflow, -Wformat-truncation, -Wstringop-overflow, and -Wrestrict warnings for W=1 builds - Replace <asm/export.h> with <linux/export.h> for alpha, ia64, and sparc - Support DEB_BUILD_OPTIONS=parallel=N for the debian source package - Refactor scripts/Makefile.modinst and fix some modules_sign issues - Add a new Kconfig env variable to warn symbols that are not defined anywhere - Show help messages of config fragments in 'make help' -----BEGIN PGP SIGNATURE----- iQJJBAABCgAzFiEEbmPs18K1szRHjPqEPYsBB53g2wYFAmT3X/oVHG1hc2FoaXJv eUBrZXJuZWwub3JnAAoJED2LAQed4NsG58oQAIXDrka3r53Flky/uJjSl8ab620o XL3u4PF/ekv6qsZoLlU24WQP8BzcJO6gPHFz88mE9/J1+wHpNKZLZehjpgj1cCY3 LatbEAa3DCZPC/c7P/nz+FT4mjTZpKOeQmvZVfA+xonBHmTyVUKgws0uDB/xuTjE GARyOX7ymD0AAZv84SUUCiaBe5Y2Bkrki67HfteS4bxW8GHg0rZWzrFUUkEkoG54 elNOYR0WYROwyo8Iokd2MedVdK2SPZxvY8i67hXl2K+Qve6tLNk8dbRIENnYI0pk 7oQVmIfC20eu9CteywHlyjt8jpTOeIrRc2yhJKR0YrjjIzKhulRGMh+pFAAwoySd Se60uWCS2AydcXWTrtb+iwFUyM2zRK4SaMlxleqnoE/bWYp6jhg9qbV9xpztWSYI j39k9aX7B19stN1drzJeyXdILRVtaAQCcax3RR+mGgm4Z5fuTDntPepvIv8J3lBg QZ4MCdOdtFw33eQaKa7O3LddD3q1X355xeaIITivEe3rAk5iIJYu3Ty1VY+/XTcH ktSVl83zQ5Ge3tvx8D6kCR9J8jAQyTLIKHxvr/j969HgZKguS2i37eChnPyKcu23 ZMKJcmCJ1O7naQXVrb/TeiaMR0UEo/PSdrUjpEO3LlMpRthNXLVSLfgJGv8WLO7/ pb/HFXHgKaSORiRV =lfUi -----END PGP SIGNATURE----- Merge tag 'kbuild-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild updates from Masahiro Yamada: - Enable -Wenum-conversion warning option - Refactor the rpm-pkg target - Fix scripts/setlocalversion to consider annotated tags for rt-kernel - Add a jump key feature for the search menu of 'make nconfig' - Support Qt6 for 'make xconfig' - Enable -Wformat-overflow, -Wformat-truncation, -Wstringop-overflow, and -Wrestrict warnings for W=1 builds - Replace <asm/export.h> with <linux/export.h> for alpha, ia64, and sparc - Support DEB_BUILD_OPTIONS=parallel=N for the debian source package - Refactor scripts/Makefile.modinst and fix some modules_sign issues - Add a new Kconfig env variable to warn symbols that are not defined anywhere - Show help messages of config fragments in 'make help' * tag 'kbuild-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (62 commits) kconfig: fix possible buffer overflow kbuild: Show marked Kconfig fragments in "help" kconfig: add warn-unknown-symbols sanity check kbuild: dummy-tools: make MPROFILE_KERNEL checks work on BE Documentation/llvm: refresh docs modpost: Skip .llvm.call-graph-profile section check kbuild: support modules_sign for external modules as well kbuild: support 'make modules_sign' with CONFIG_MODULE_SIG_ALL=n kbuild: move more module installation code to scripts/Makefile.modinst kbuild: reduce the number of mkdir calls during modules_install kbuild: remove $(MODLIB)/source symlink kbuild: move depmod rule to scripts/Makefile.modinst kbuild: add modules_sign to no-{compiler,sync-config}-targets kbuild: do not run depmod for 'make modules_sign' kbuild: deb-pkg: support DEB_BUILD_OPTIONS=parallel=N in debian/rules alpha: remove <asm/export.h> alpha: replace #include <asm/export.h> with #include <linux/export.h> ia64: remove <asm/export.h> ia64: replace #include <asm/export.h> with #include <linux/export.h> sparc: remove <asm/export.h> ...
327 lines
10 KiB
ReStructuredText
327 lines
10 KiB
ReStructuredText
===================
|
|
Kconfig make config
|
|
===================
|
|
|
|
This file contains some assistance for using `make *config`.
|
|
|
|
Use "make help" to list all of the possible configuration targets.
|
|
|
|
The xconfig ('qconf'), menuconfig ('mconf'), and nconfig ('nconf')
|
|
programs also have embedded help text. Be sure to check that for
|
|
navigation, search, and other general help text.
|
|
|
|
The gconfig ('gconf') program has limited 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, use::
|
|
|
|
cp user/some/old.config .config
|
|
make listnewconfig
|
|
|
|
and the config program will list any new symbols, one per line.
|
|
|
|
Alternatively, you can use the brute force method::
|
|
|
|
make oldconfig
|
|
scripts/diffconfig .config.old .config | less
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Environment variables for `*config`
|
|
|
|
KCONFIG_CONFIG
|
|
--------------
|
|
This environment variable can be used to specify a default kernel config
|
|
file name to override the default name of ".config".
|
|
|
|
KCONFIG_DEFCONFIG_LIST
|
|
----------------------
|
|
|
|
This environment variable specifies a list of config files which can be used
|
|
as a base configuration in case the .config does not exist yet. Entries in
|
|
the list are separated with whitespaces to each other, and the first one
|
|
that exists is used.
|
|
|
|
KCONFIG_OVERWRITECONFIG
|
|
-----------------------
|
|
If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not
|
|
break symlinks when .config is a symlink to somewhere else.
|
|
|
|
KCONFIG_WARN_UNKNOWN_SYMBOLS
|
|
----------------------------
|
|
This environment variable makes Kconfig warn about all unrecognized
|
|
symbols in the config input.
|
|
|
|
KCONFIG_WERROR
|
|
--------------
|
|
If set, Kconfig treats warnings as errors.
|
|
|
|
`CONFIG_`
|
|
---------
|
|
If you set `CONFIG_` in the environment, Kconfig will prefix all symbols
|
|
with its value when saving the configuration, instead of using the default,
|
|
`CONFIG_`.
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Environment variables for '{allyes/allmod/allno/rand}config'
|
|
|
|
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 where
|
|
KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", `make *config`
|
|
checks for a file named "all{yes/mod/no/def/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 symbols of your 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.
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Environment variables for 'randconfig'
|
|
|
|
KCONFIG_SEED
|
|
------------
|
|
You can set this to the integer value used to seed the RNG, if you want
|
|
to somehow debug the behaviour of the kconfig parser/frontends.
|
|
If not set, the current time will be used.
|
|
|
|
KCONFIG_PROBABILITY
|
|
-------------------
|
|
This variable can be used to skew the probabilities. This variable can
|
|
be unset or empty, or set to three different formats:
|
|
|
|
======================= ================== =====================
|
|
KCONFIG_PROBABILITY y:n split y:m:n split
|
|
======================= ================== =====================
|
|
unset or empty 50 : 50 33 : 33 : 34
|
|
N N : 100-N N/2 : N/2 : 100-N
|
|
[1] N:M N+M : 100-(N+M) N : M : 100-(N+M)
|
|
[2] N:M:L N : 100-N M : L : 100-(M+L)
|
|
======================= ================== =====================
|
|
|
|
where N, M and L are integers (in base 10) in the range [0,100], and so
|
|
that:
|
|
|
|
[1] N+M is in the range [0,100]
|
|
|
|
[2] M+L is in the range [0,100]
|
|
|
|
Examples::
|
|
|
|
KCONFIG_PROBABILITY=10
|
|
10% of booleans will be set to 'y', 90% to 'n'
|
|
5% of tristates will be set to 'y', 5% to 'm', 90% to 'n'
|
|
KCONFIG_PROBABILITY=15:25
|
|
40% of booleans will be set to 'y', 60% to 'n'
|
|
15% of tristates will be set to 'y', 25% to 'm', 60% to 'n'
|
|
KCONFIG_PROBABILITY=10:15:15
|
|
10% of booleans will be set to 'y', 90% to 'n'
|
|
15% of tristates will be set to 'y', 15% to 'm', 70% to 'n'
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Environment variables for 'syncconfig'
|
|
|
|
KCONFIG_NOSILENTUPDATE
|
|
----------------------
|
|
If this variable has a non-blank value, it prevents silent kernel
|
|
config updates (requires explicit updates).
|
|
|
|
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/generated/autoconf.h".
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
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_CPU, MEMORY_HOTPLUG.
|
|
|
|
For search help, enter / followed by 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
|
|
|
|
When searching, symbols are sorted thus:
|
|
|
|
- first, exact matches, sorted alphabetically (an exact match
|
|
is when the search matches the complete symbol name);
|
|
- then, other matches, sorted alphabetically.
|
|
|
|
For example: ^ATH.K matches:
|
|
|
|
ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
|
|
[...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]
|
|
|
|
of which only ATH5K and ATH9K match exactly and so are sorted
|
|
first (and in alphabetical order), then come all other symbols,
|
|
sorted in alphabetical order.
|
|
|
|
In this menu, pressing the key in the (#) prefix will jump
|
|
directly to that location. You will be returned to the current
|
|
search results after exiting this new menu.
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
User interface options for 'menuconfig'
|
|
|
|
MENUCONFIG_COLOR
|
|
----------------
|
|
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)
|
|
|
|
MENUCONFIG_MODE
|
|
---------------
|
|
This mode shows all sub-menus in one large tree.
|
|
|
|
Example::
|
|
|
|
make MENUCONFIG_MODE=single_menu menuconfig
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
nconfig
|
|
-------
|
|
|
|
nconfig is an alternate text-based configurator. It lists function
|
|
keys across the bottom of the terminal (window) that execute commands.
|
|
You can also just use the corresponding numeric key to execute the
|
|
commands unless you are in a data entry window. E.g., instead of F6
|
|
for Save, you can just press 6.
|
|
|
|
Use F1 for Global help or F3 for the Short help menu.
|
|
|
|
Searching in nconfig:
|
|
|
|
You can search either in the menu entry "prompt" strings
|
|
or in the configuration symbols.
|
|
|
|
Use / to begin a search through the menu entries. This does
|
|
not support regular expressions. Use <Down> or <Up> for
|
|
Next hit and Previous hit, respectively. Use <Esc> to
|
|
terminate the search mode.
|
|
|
|
F8 (SymSearch) searches the configuration symbols for the
|
|
given string or regular expression (regex).
|
|
|
|
In the SymSearch, pressing the key in the (#) prefix will
|
|
jump directly to that location. You will be returned to the
|
|
current search results after exiting this new menu.
|
|
|
|
NCONFIG_MODE
|
|
------------
|
|
This mode shows all sub-menus in one large tree.
|
|
|
|
Example::
|
|
|
|
make NCONFIG_MODE=single_menu nconfig
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
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:
|
|
|
|
There is no search command in gconfig. However, gconfig does
|
|
have several different viewing choices, modes, and options.
|