Gardenhouse

Using custom kernels instead of dist kernels

Gardenhouse uses Gentoo as a base, it’s not uncommon that users configure and compile their kernels themselves, Florist allows using practically any kernel in the builds.

To use a custom kernel, set GARDENHOUSE_KERNEL_TYPE="custom" in the profile make.defaults, this tells Florist to run the default kernel compilation commands (i.e. make, make install_modules, etc.). By default this value is set to dist, which makes Florist assume that the kernel is automatically compiled as part of the emerge process.

Once that’s done, set GARDENHOUSE_KERNEL_PACKAGE= to the full package atom of the kernel sources to be installed, by default this is set to sys-kernel/gentoo-kernel-bin.

The usage of custom kernels is supported in a limited sense. If there is an issue during the build, it will be considered a Gardenhouse issue, if an issue is encountered during boot it is up to the user to prove that it is not an issue caused by the Kernel configuration.

By default, Gardenhouse expects the following options to be set:

  • CONFIG_EROFS_FS & CONFIG_EROFS_FS_ZIP: The images are erofs images, the kernel needs to be able to mount them

  • CONFIG_DM_VERITY & CONFIG_CRYPTO_SHA256: If verity is used, the kernel needs to support dm-verity

  • CONFIG_EFI_ZBOOT & CONFIG_EFI_STUB: The kernels are booted as UKI images, they need to support efistub and zboot