Kernel Configuration
Both the command line and the Python API have two
arguments for configuration: --kconfig/kconfig and
--kconfig-add/kconfig_add.
kconfig can only be specified once, and specifies the main kernel configuration. It can be specified in three different ways:
- a named configuration target (
defconfig, etc); - a path to a config file on the local filesystem;
- a (relative) path to a config file in the source tree;
- a URL to a config file, in which case TuxMake will download it.
kconfig_add specifies extra configuration to apply on top of the main configuration specified by kconfig. It can be specified in the following ways:
- an in-tree configuration target (e.g.
kvm_guest.config); - an explicit make target (
make:targetname); TuxMake will callmake targetnameduring the configuration step (e.g.make:kselftest-mergewill causemake kselftest-mergeto be called). - an explicit interactive make target (
imake:targetname); likemake:targetname, but runs interactively (i.e. you can interact with it with the keyboard). Use for interactive targets such asmenuconfig. - a path to a config file on the local filesystem;
- a URL to a config file, in which case TuxMake will download it;
- a config fragment matching one of these:
CONFIG_*=<value>
<value> can be y, m, n, a number, a hex value, or a string.
TuxMake only checks the format. The value is passed to kconfig
(merge_config.sh and make olddefconfig), which decides what to do
with it.
- # CONFIG_* is not set
kconfig_add can be specified multiple times. Any in-tree configuration target
and explicit make targets will be built with make, and then all of the others
will be saved to a local file in the order they were passed. They will be then
merged on top of the existing configuration by calling
scripts/kconfig/merge_config.sh and make olddefconfig.