Skip to content

Conversation

@alok0366
Copy link

Replace the KernelCI build container images with the corresponding TuxMake images. This aligns the build environment with the toolchains and configurations provided by TuxMake and ensures consistent, reproducible kernel builds across architectures.

Key improvements over the previous KernelCI containers:

  • Reproducible, uniform build environments across all architectures
  • Lower maintenance burden with upstream-maintained images
  • First-class support for cross-compilers, QEMU, and common kernel toolchains
  • Stable, versioned interface optimized for CI workflows
  • Better integration with modern CI systems and cloud-native pipelines

No functional changes to the build steps; only the container source is updated. Only dtbs_check affected.

Replace the KernelCI build container images with the corresponding
TuxMake images. This aligns the build environment with the toolchains
and configurations provided by TuxMake and ensures consistent,
reproducible kernel builds across architectures.

Key improvements over the previous KernelCI containers:
- Reproducible, uniform build environments across all architectures
- Lower maintenance burden with upstream-maintained images
- First-class support for cross-compilers, QEMU, and common kernel toolchains
- Stable, versioned interface optimized for CI workflows
- Better integration with modern CI systems and cloud-native pipelines

No functional changes to the build steps; only the container source is
updated. Only dtbs_check affected.

Signed-off-by: Alok Ranjan <[email protected]>
@alok0366
Copy link
Author

@nuclearcat Do the KCI containers have any cached content (such as files, configuration fragments, or firmware) before build jobs are processed on them ?

@nuclearcat
Copy link
Member

Yes, they include kernelci-core components and configuration fragments, as well as pahole and dtschema.
https://github.com/kernelci/kernelci-core/blob/main/config/docker/base/host-tools.jinja2

Before we replace the containers, I think we should discuss the process. For example, what happens if we need to change the version of pahole? or add some new dependency to build some of tools in kernel.
Currently, our staging loop—making changes, building images, and testing—takes less than 30 minutes. I'd like to make sure we keep that.
Ideally, if someone wants to introduce a new dependency like dtschema or upgrade a library/tool version, the development cycle should remain fast.

@nuclearcat
Copy link
Member

Most likely best way will be to build kernelci containers based on this images, similar as we do with debos and existing compiling tools:
https://github.com/kernelci/kernelci-core/blob/main/config/docker/base/debos.jinja2
https://github.com/kernelci/kernelci-core/tree/main/config/docker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants