Problem statement

Once a kernel is built, a developer/janitor may want to boot the kernel for various reasons, such as performing simple boot test or running tests and workloads from user space or simply playing around in a shell. However, an easy to use and a descriptive tool to perform those tasks doesn't exist to our knowledge.

We talked to kernel developers and were told to have a look at the following resources:

The approach

We plan to address this issue in the upcoming Hackweek. Our idea is to leverage LinuxKit as a driver to boot a given kernel image in different environments (qemu, Hyper-V, VMware and public clouds). As linuxkit is container-based, it is trivial to boot the kernel with various rootfs-images of all kinds of distributions. Note that it's easy to create custom rootfs images.

The tool we seek to implement should wrap everything up into something useful for developers and CI systems to use from the command line as well as from configuration files. The benefits of using a container-based infrastructure include:

Reproducibility: We bundle kernel images with the desired rootfs together and store them for a given amount of time. Re-running and re-creating those becomes trivial and easy.

Declarative approach: All steps to create the desired image are baked into configuration files. The benefits are again reproducibility and documentation.

Flexibility: In theory, we can bundle any kernel image with any rootfs and add as many files, binaries and directories on top as we please. Supporting different kinds of environments, including public clouds, makes the tool attractive for a broader audience.

Looking for hackers with the skills:

linux kernel testing containers infrastructure

This project is part of:

Hack Week 16

Activity

  • almost 3 years ago: metan liked Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: sebchlad liked Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: vrothberg added keyword "linux" to Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: vrothberg added keyword "kernel" to Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: vrothberg added keyword "testing" to Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: vrothberg added keyword "containers" to Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: vrothberg added keyword "infrastructure" to Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: FabianBmn joined Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: ereslibre joined Kernel Boot/Testing Framework with LinuxKit
  • almost 3 years ago: vrothberg started Kernel Boot/Testing Framework with LinuxKit
  • All Activity

    Comments

    • metan
      almost 3 years ago by metan | Reply

      FYI there is also the 0day framework from intel that more or less does this. But it works only on Debian, etc. See:

      https://01.org/lkp/documentation https://github.com/intel/lkp-tests

      • vrothberg
        almost 3 years ago by vrothberg | Reply

        Thanks for the pointer. We're aware of the 0-Day robot, but the infrastructure behind isn't open. However, we can re-use parts of the tests.

    Similar Projects

    Testing GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the rocket chat channel! [https://chat.su...


    Upstreaming of mediatek helios board by mbrugger

    The only Mediatek "hacker" board available is f...


    ethtool ops for netdevsim by mkubecek

    This can be seen as a subproject of [ethtool ne...


    Help with mainline support for the Mediatek chromebook (MT8173 based) by mbrugger

    Lately the necessary patches to get rudimentary...


    openSUSE/SLE/Mainline U-boot for some not-yet-supported ARM64 boards by ldevulder

    The Khadas VIM (http://khadas.com/vim/) is an a...


    work on sunxi a64 cpufreq driver (for teres-1, pine64) by mbrugger

    With the teres-1 [1] laptop we have a first arm...


    ethtool ops for netdevsim by mkubecek

    This can be seen as a subproject of [ethtool ne...


    libuitest - a generic GUI testing library by dancermak

    Testing GUIs is hard: unit tests require a ...


    Testing GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the rocket chat channel! [https://chat.su...


    labgrid: add support for sispmctl and remote ykush access by mbrugger

    labgrid [0] is an embedded board control python...


    Packaging libnvidia-containers and nvidia-container-runtime-hook by jordimassaguerpla

    This is a follow up to https://hackweek.suse.co...


    Run VMs in CaaSP 4 cluster with SUSE-powered kubevirt by jfehlig

    This project aims to run VMs in a CaaSP 4 clust...


    Modernize Mash deployment by seanmarlow

    Mash is a Python based CI/CD pipeline for aut...


    Hammer an Envoy service mesh onto a SAP S4/HANA landscape and watch everything explode. by STorresi

    Although CNCF projects are almost exclusively r...


    Improve openSUSE infrastructure by lrupp

    There is always something to do if you run the ...