Configuration parameters

The following list gives an overview of the supported configuration parameters for the EB corbos Linux build helper tools. In the round brackets it is noted for whcih files which option is applicable. Embdgen is developed separately, and the details and options for the storage specification is documented in the embdgen documentation.

  • base (boot/initrd/root/config) [default: None ]: Parent configuration file. If specified, the values from the parent file will be used if not otherwise specified in the current file.

  • arch (boot/initrd/root) [default: arm64 ]: The CPU architecture of the target hardware. The supported values are arm64, amd64 and armhf.

  • use_fakeroot (boot/initrd/root/config) [default: False ]: Use fakeroot in the generator tools where possible, instead of sudo and chroot. This may cause issues for edge-cases.

  • apt_repos (boot/initrd/root) [default: None ]: A list of apt repositories to download the required Debian packages. Example:

apt_repos:
  - apt_repo: http://archive.ubuntu.com/ubuntu
    distro: jammy
    components:
      - main
      - universe
  - apt_repo: http://archive.ubuntu.com/ubuntu
    distro: jammy-security
    components:
      - main
      - universe

In addition, an armored public key file or URL can be given as “key”, and a dearmored gpg file can be given as “gpg”, to authenticate the package sources.

  • use_ebcl_apt (boot/initrd/root) [default: No ]: If yes, the public apt repository of the EB corbos Linux will be added. By default, the latest release will be used if the ebcl_version parameter is not given. This is a convenience feature, but be aware that this public apt repository doesn’t provide customer specific or proprietary packages.

  • ebcl_version (boot/initrd/root) [default: latest release ]: EB corbos Linux release version, for the automatically generated apt repository.

  • host_files (boot/initrd/root) [default: None ]: Files to include from the host or container environment. Example:

host_files:
  - source: bootargs-overlay.dts
    destination: boot
  - source: bootargs.its
    destination: boot

The destination is the path in the target root filesystem or chroot environment. In addition, the parameters “mode”, to specify the mode of the file, “uid”, to specify the owner of the file, and “gid”, to specify the owning group of the file, can be used.

  • files (boot) [default: None ]: Files to get as result from the chroot environment. Example:
files:
  - boot/vmlinuz*
  - boot/config*

These files can be part of an extracted Debian package, or result of a script executed in the chroot environment.

  • scripts (boot/initrd/root/config) [default: None ]: The scripts which shall be executed.
scripts:
  - name: config_root.sh
    env: chroot

The supported environments are “chroot”, to run the script in a chroot environment, “fake”, to run the script in a fakeroot environment, “sudo” to run the script with root privileges, or “shell” to run the script in a plain shell environment. For “chroot” the script will be placed at “/” and executed from this folder. For all other environments, the current work directory will be the folder containing the target environment. In addition, parameters which are forwarded to the script can be provided as “params”.

  • template (initrd/root) [default: None ]: A Jinja2 template to create a configuration. In case of the initrd generator, a template for the init script can be provided. In case of the root generator, a template for the elbe XML image specification, or the kiwi-ng XML image specification can be provided.

  • name (boot/initrd/root) [default: None ]: A name which is used in the filenames of the generated artifacts.

  • download_deps (boot/initrd) [default: True ]: Download the dependencies of the specified packages. This parameter must be True, to use e.g. a meta-package for the kernel binary and modules.

  • base_tarball (boot/initrd) [default: None ]: A base chroot environment for generating the boot artifacts and for the initrd.img. If no base chroot environment is given, a minimal busybox based environment will be used.

  • packages (boot/initrd/root/config) [default: None ]: A list of packages. For the root generator, these packages are installed in the base deboostrap environment. For the initrd generator, these packages will be downloaded and extracted to get the kernel modules. For the boot generator, these packages will be downloaded and extracted to get the kernel binary.

  • kernel (boot/initrd/root) [default: None ]: Name of the kernel package.

  • tar (boot) [default: True ]: Flag for packing the boot artifacts as a tarball. If embdgen is used to write the artifacts to an image, this will preserve the owner and mode of the artifacts.

  • busybox (initrd) [default: busybox-static ]: Name of the busybox package for the minimal busybox environment.

  • modules (initrd) [default: None ]: List of kernel modules to add and load from the initrd.img. Example:

modules:
  - kernel/drivers/virtio/virtio.ko 
  - kernel/drivers/virtio/virtio_ring.ko 
  - kernel/drivers/block/virtio_blk.ko 
  - kernel/net/core/failover.ko 
  - kernel/drivers/net/net_failover.ko 
  - kernel/drivers/net/virtio_net.ko
  • root_device (initrd) [default: None ]: Name of the root device to mount.

  • devices (initrd) [default: None ]: List of device nodes to add. Example:

devices:
  - name: mmcblk1
    type: block
    major: 8
    minor: 0
  - name: console
    type: char
    major: 5
    minor: 1

In addition, the parameters “mode”, to specify the mode of the device node, “uid”, to specify the owner of the device node, and “gid”, to specify the owning group of the device node, can be used.

  • kernel_version (initrd) [default: auto detected ]: The kernel version of the copied modules.

  • modules_folder (initrd) [default: None ]: A folder in the host or container environment containing the kernel modules. This can be used to provide modules from a local kernel build. Example:

modules_folder: $$RESULTS$$

The string “$$RESULTS$$” will be replaced with the path to the output folder, for all paths given in yaml config files of the build tools.

  • result_pattern (root) [default: auto detected ]: A name pattern to match the build result, e.g. *.tar.xz for kiwi-ng tbz builds.

  • image (boot/initrd/root/config) [default: None ]: A kiwi-ng or elbe XML image description. This parameter can be used to integrate old image descriptions into new build flows.

  • berrymill_conf (root) [default: None ]: A berrymill.conf used for berrymill build. If none is given, the configuration will be automatically generated using the provided apt repositories. This parameter can be used to integrate old image descriptions into new build flows.

  • use_berrymill (root) [default: True ]: Flag to use berrymill for kiwi-ng build. If this flag is set to false, kiwi-ng will be called without the berrymill wrapper.

  • use_bootstrap_package (root) [default: True ]: Flag if a bootstrap package shall be used for kiwi-ng builds. If this flag is set to True, one of the specified repositories needs to provide the bootstrap package.

  • bootstrap_package (root) [default: bootstrap-root-ubuntu-jammy ]: Name of the bootstrap package for the kiwi-ng build.

  • bootstrap (root) [default: None ]: List of additional bootstrap packages for the kiwi-ng build.

  • kiwi_root_overlays (root) [default: None ]: List of root overlay folders for the kiwi-ng build.

  • use_kiwi_defaults (root) [default: True ]: If this flag is true, the “root” folder and the kiwi-ng config scripts next to the appliance.kiwi, will be provided to kiwi-ng.

  • kiwi_scripts (root) [default: None ]: List of additional scripts which will be provided to kiwi-ng during the build.

  • kvm (root) [default: True ]: Flag if KVM acceleration shall be used for kiwi-ng builds.

  • image_version (root) [default: 1.0.0 ]: Image version for the generated kiwi-ng image descrption.

  • type (root) [default: elbe ]: Type of the root filesystem generator to use. The supported generators are “elbe” and “kiwi”.

  • primary_repo (root) [default: auto selected Ubuntu Jammy repository ]: The primary apt repository for the elbe or kiwi-ng build. The main component of this repository is used for debootrap.

  • primary_distro (root) [default: jammy ]: The name of the distribution used for debootrap.

  • root_password (root) [default: linux ]: The root password of the generated root filesystem.

  • hostname (root) [default: ebcl ]: The hostname of the generated root filesystem.

  • domain (root) [default: elektrobit.com ]: The domain name of the generated root filesystem.

  • console (root) [default: auto configured ]: The console parameter of the generated root filesystem. If none is given, “ttyS0,115200” is used for amd64, and “ttyAMA0,115200” is used for amd64.

  • packer (boot/initrd/root/config) [default: none ]: The packer used to compress the result of the elbe build. By default, the result is not compressed.

  • sysroot_packages (boot/initrd/root/config) [default: None ]: List of additional packages which shall be installed for sysroot builds. This can be used to add additional development headers.

  • sysroot_defaults (boot/initrd/root/config) [default: True ]: Flag if the default additional packages for sysroot builds shall be added. If yes, in addition to the specified packages the packages “build-essential” and “g++” will be added.