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

  • over 5 years ago: metan liked this project.
  • over 5 years ago: sebchlad liked this project.
  • over 5 years ago: vrothberg added keyword "linux" to this project.
  • over 5 years ago: vrothberg added keyword "kernel" to this project.
  • over 5 years ago: vrothberg added keyword "testing" to this project.
  • over 5 years ago: vrothberg added keyword "containers" to this project.
  • over 5 years ago: vrothberg added keyword "infrastructure" to this project.
  • over 5 years ago: FabianBmn joined this project.
  • over 5 years ago: ereslibre joined this project.
  • over 5 years ago: vrothberg started this project.
  • over 5 years ago: vrothberg originated this project.

  • Comments

    • metan
      over 5 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
        over 5 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 and adding GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the Gitter channel! [https://gitter.im/uy...


    Improve Qualcomm SOC msm8994/msm8992 kernel mainline support by pvorel

    Project Description

    Due previous hackweek...


    Encrypted volumes in elemental-toolkit by flonnegren

    [comment]: # (Please use the project descriptio...


    Authenticated hashes for BTRFS by dsterba

    Project Description

    Implement a checksum ...


    Modular kernel packaging by mwilck

    Project Description

    Create a PoC for a mo...


    How software creation process can save energy and CO2 emissions by acervesato

    [comment]: # (Please use the project descriptio...


    Linux on Cavium CN23XX cards by tsbogend

    Before Cavium switched to ARM64 CPUs they devel...


    drgn: implement crash top-level commands by marxin

    Project Description

    The goal of the proje...


    Create a DRM driver for VGA video cards by tdz

    Yes, those [VGA video cards](https://en.wikiped...


    How software creation process can save energy and CO2 emissions by acervesato

    [comment]: # (Please use the project descriptio...


    Uyuni: add SLE-Micro acceptance tests by mbussolotto

    Project Description

    Uyuni: add SLE-Micro ...


    Uyuni test suite improvements by dgedon

    Project Description

    Uyuni is the upstream...


    Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the Gitter channel! [https://gitter.im/uy...


    OpenQA test list views improvement by mdati

    Project Description

    Create views of **Ope...


    Man pages in a container by doreilly

    [comment]: # (Please use the project descriptio...


    Make iguana-workflow to support multiple container frontends by oholecek

    Project Description

    Iguana is an attempt ...


    Building a CNF solution for Edge environment by lizhang

    Project Description

    Network managemen...


    K3S Control Planes as a service by ademicev0

    [comment]: # (Please use the project descriptio...


    Hack on project MONAI (Medical Open Network for Artificial Intelligence) by jordimassaguerpla

    Project Description

    MONAI is a set of o...