KCONFIG(1)
π KCONFIG π
okay bestie, welcome to the kconfig manual β it's the kconfig page from the kconfig manual, dated October 2017, and honestly? it's giving "quietly runs your entire kernel config and never asks for credit." let's get into it π
β¨ NAME β¨
kconfig β a standalone implementation of the Linux Kconfig parser. that's it, that's the whole vibe π«Ά
β¨ SYNOPSIS β¨
kconfig [options] <KConfig_file>
β¨ DESCRIPTION β¨
so the kconfig toolkit is the whole girlboss situation: it supports the Kconfig language, and it implements the parser plus all the configuration support that goes along with the KConfig files β and it respects the Linux kernel KConfig convention the entire time. no notes, iconic behavior π
At configuration time, you've got options, literally:
kconfig-mconfβ built on ncurses (menuconfig) πkconfig-confβ built on dialog (config)kconfig-gconfβ built on GTK+ (gconfig)
And the associated tools, bestie, don't sleep on these:
kconfig-diffβ displays the symbols diff between.configfiles π¦
β¨ OPTIONS β¨
--silentoldconfigβ only forkconfig-conf, okay? it reloads a given.configand regenerates the header and command files accordingly. very "i'll handle it quietly" energy π--allnoconfigβ sets all boolean configuration to no. respectfully, everything is off π--allyesconfigβ sets all boolean configuration to yes. everything is ON. main character config π₯--randconfigβ generates a random configuration. chaos mode, no cap π
β¨ ENVIRONMENT β¨
πΈ Environment variables for '*config' πΈ
KCONFIG_CONFIGβ you can set this environment variable to specify a default kernel config file name, so it overrides the default name of".config". cute little rename πKCONFIG_OVERWRITECONFIGβ if you setKCONFIG_OVERWRITECONFIGin the environment, Kconfig will not break symlinks when.configis a symlink to somewhere else. it respects the link, periodt β¨CONFIG_β if you setCONFIG_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β theallyesconfig/allmodconfig/allnoconfig/randconfigvariants can also use the environment variableKCONFIG_ALLCONFIGas a flag or a filename that contains config symbols that the user requires to be set to a specific value. so ifKCONFIG_ALLCONFIGis used without a filename whereKCONFIG_ALLCONFIG == ""orKCONFIG_ALLCONFIG == "1","make *config"checks for a file named"all{yes/mod/no/def/random}.config"(corresponding to the*configcommand that was used) for symbol values that are to be forced. and if that 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. literally so efficient π«Ά
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 β so don't think you can just sneak past deps, bestie π
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. iconic. obsessed. π
πΈ 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 it's not set, the current time will be used. βKCONFIG_PROBABILITYβ this variable can be used to skew the probabilities. see/usr/share/doc/kconfig-frontends/kconfig.txt.gz. π
πΈ Environment variables for 'silentoldconfig' πΈ
KCONFIG_NOSILENTUPDATEβ if this variable has a non-blank value, it prevents silent kernel config updates (requires explicit updates). no sneaky updates allowed, we ask first π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_TRISTATEβ this environment variable can be set to specify the path name of the"tristate.conf"file. its default value is"include/config/tristate.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". π
β¨ HISTORY β¨
June 2017 β this man page was originally compiled by Philippe Thierry (phil at reseau-libre dot com). thank you for your service, king π«‘π
and that's the whole page, bestie!! π¦ this was the kconfig man page from the kconfig manual, page date October 2017, written by Philippe Thierry, and it's a wrap π
β¨π
π¦ where this page comes from
- debian bookworm: kconfig-frontends 4.11.0.1+dfsg-6 Β· GPL-2.0-only
- debian bookworm: kconfig-frontends-nox 4.11.0.1+dfsg-6 Β· GPL-2.0-only
- debian trixie: kconfig-frontends 4.11.0.1+dfsg-6+b1 Β· GPL-2.0-only
- debian trixie: kconfig-frontends-nox 4.11.0.1+dfsg-6+b1 Β· GPL-2.0-only
- ubuntu jammy: kconfig-frontends 4.11.0.1+dfsg-6 Β· GPL-2.0-only
- ubuntu jammy: kconfig-frontends-nox 4.11.0.1+dfsg-6 Β· GPL-2.0-only
- ubuntu noble: kconfig-frontends 4.11.0.1+dfsg-6build2 Β· GPL-2.0-only
- ubuntu noble: kconfig-frontends-nox 4.11.0.1+dfsg-6build2 Β· GPL-2.0-only
- ubuntu questing: kconfig-frontends 4.11.0.1+dfsg-6build2
- ubuntu questing: kconfig-frontends-nox 4.11.0.1+dfsg-6build2
- ubuntu resolute: kconfig-frontends 4.11.0.1+dfsg-6build3 Β· GPL-2.0-only
- ubuntu resolute: kconfig-frontends-nox 4.11.0.1+dfsg-6build3 Β· GPL-2.0-only
- ubuntu stonking: kconfig-frontends 4.11.0.1+dfsg-6build3 Β· GPL-2.0-only
- ubuntu stonking: kconfig-frontends-nox 4.11.0.1+dfsg-6build3 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms