Skip to content

Kernel Configuration

One or more kconfig arguments are required and are used to define what kernel config to use.

The first argument must be a URL to a valid kconfig file or defconfig argument that ends in "config", such as "defconfig" or "allmodconfig".

Subsequent kconfig arguments may also be provided to modify the contents of the resulting config. There are multiple ways to specify additional configuration:

  • an in-tree configuration target (e.g. kvm_guest.config)
  • a URL to a config file, in which case it will be downloaded
  • a config fragment matching one of these:
  • CONFIG_*=[y|m|n]
  • # CONFIG_* is not set

Any in-tree configuration target 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.

Examples

tuxsuite build

Perform an arm64 build against mainline using the most recent nightly version of Clang using defconfig plus KASAN plus a config fragment from a URL.

tuxsuite build \
--git-repo 'https://github.com/torvalds/linux.git' \
--git-ref master \
--target-arch arm64 \
--toolchain clang-nightly \
--kconfig defconfig \
--kconfig CONFIG_KASAN=y \
--kconfig "https://gist.githubusercontent.com/danrue/9e1e4d90149daadd5199256cc18a0499/raw/752138764ec039e4593185bfff888250a3d7692f/gistfile1.txt"

tuxsuite build-set

Perform an arm64 build-set with allyesconfig, allnoconfig, and allmodconfig. In the case of allnoconfig, enable KASAN and a config fragment.

In YAML syntax, kconfig can be a single string, or a list of strings.

Given ./example.yaml containing the following:

sets:
  - name: example
    builds:
      - toolchain: clang-nightly
        target_arch: arm64
        kconfig: allyesconfig
      - toolchain: clang-nightly
        target_arch: arm64
        kconfig: allmodconfig
      - toolchain: clang-nightly
        target_arch: arm64
        kconfig:
          - allnoconfig
          - CONFIG_KASAN=y
          - "https://gist.githubusercontent.com/danrue/9e1e4d90149daadd5199256cc18a0499/raw/752138764ec039e4593185bfff888250a3d7692f/gistfile1.txt"

Perform the build-set:

tuxsuite build-set \
--git-repo 'https://github.com/torvalds/linux.git' \
--git-ref master \
--tux-config example.yaml \
--set-name example