When a kernel is built, we layer various Edera config fragments on top of the upstream kernel's default config,
and (if selected) any variant configs on top of that, relying on the kernel's make system to do config merging.
flavors are the different basic kernels we ship. variants are variations on those flavors.
- The
flavorconfigs are expressed as delta fragments from the kernel branch's default config for the given architecture. - The
variantconfigs are expressed as delta fragments from theflavorconfigs for the given architecture.
When a kernel is built, we take the flavor config, and any variants (if defined) and overlay them on top of the default config. The result is the actual config the kernels are built with.
- We currently have two kernel
flavors-zoneandhost - We currently ship two
zoneflavorvariants,zone-amdgpuandzone-nvidiagpu. A third,zone-openpax, is parked until the openpax series is restored on the Edera kernel branches; its fragments are still here.
A "flavor config" is an Edera config fragment that contains only the Edera-specific changes from the default config of an Edera kernel branch, for a given architecture.
Example: we want to generate a clean/updated zone.config against the edera/6.18-lts default config for x86_64
- Run
./hack/build/generate-clean-flavor-config.sh edera/6.18-lts x86_64 configs/x86_64/zone.config my-updated-zone.config my-updated-zone.configshould only have the kernel config options that are not in the x86_64 default config on that branch now.cp my-updated-zone.config configs/x86_64/zone.configand check in.- ditto for
host.config, andaarch64. - It is strongly recommended to use the oldest branch Edera currently builds (today
edera/6.18-lts) as the base, as newer kernels commonly add new defaults that were optional in older kernels.
A "variant config" is an Edera config fragment that contains only the Edera-specific changes from the flavor config it belongs to, for a given architecture.
Example: we want to generate a clean/updated zone-amdgpu.config from the latest zone.config
- Run
./hack/build/generate-clean-variant-config.sh zone 6.18-lts amd64 configs/x86_64/zone-amdgpu.fragment.config my-updated-zone-admgpu.fragment.config - This will fetch & extract the full flavor
configfromghcr.io/edera-dev/zone-kernel:6.18-lts. my-updated-zone-admgpu.fragmentshould only have the kernel config options that are not in the extracted full flavor config now.cp my-updated-zone-admgpu.fragment configs/x86_64/zone-amdgpu.fragment.config- It is strongly recommended to use the oldest branch Edera currently builds as the base, as newer kernels commonly add new defaults that were optional in older kernels.