-
Notifications
You must be signed in to change notification settings - Fork 4
Architecture Overview
Status: moving to kernelci.org/docs
The following diagram provides a global overview of the kernelci.org service.
The dashboard itself has two components: a front-end and a back-end.
Stateless web application that users typically interact with.
The top bar menu has access to the build, boots and test reports.
You can use ?
for filtering results:
-
Filtering the platforms that are failing to boot:
http://kernelci.org/boot/?fail
-
Filtering which builds have failures:
http://kernelci.org/build/?fail
Provides the REST API and token based authentication.
Read the documentation of the API at https://api.kernelci.org/
The build system is provided by a Jenkins instance that uses several builders. The configuration used by the builders is managed by ansible playbook at https://github.com/kernelci/builder-config2
The build script and Jenkins Pipelines used by Jenkins are in the kernelci-core repository. This repository also contains all the script to create, submit and report LAVA jobs to and from the labs.
All the artifacts produced by Jenkins: kernel images, rootfs, build logs, etc. and all the logs from LAVA are uploaded to the storage server https://storage.kernelci.org/ with the upload API.
The rootfs are stored under https://storage.kernelci.org/images/
-
https://storage.kernelci.org/images/rootfs/debian/ stores the Debian rootfs, used by most of the arches
-
https://storage.kernelci.org/images/rootfs/buildroot/ stores the buildroot rootfs used for ARM/ARM64 big endian.
The kernel builds and logs are stored following a strict directory structure:
https://storage.kernelci.org/_kernel tree_/_git describe_/_architecture_/_defconfig+Fragment=y_/
-
Kernel Tree: mainline, next, arm-soc, lsk, etc...
-
Git Describe: v3.19-rc4-23-g971780b70194, v3.19-rc4, etc..
-
Architecture: arm, arm64, mips, x86
-
Defconfig+Fragment=y: defconfig, allmodconfig, defconfig+CONFIG_RANDOMIZE_BASE=y/
For example: https://storage.kernelci.org/mainline/master/v4.19-rc8/arm64/defconfig/
The files found under this last directory are:
-
Kernel: Image, bzImage, vmlinux
-
modules.tar.xz: Tarball of modules from the specific build configuration. When extracted, the results should be a directory tree of the form /lib/modules//.
-
System.map: Symbol table from the specific build configuration.
-
kernel.config: The configuration used to build a specific configuration.
-
build.log: This is the log produce by the specific build configuration, only contains errors and warnings.
-
build.json: This is a file encoded using JSON to describe to a kernel build to the dashboard. A detailed schema is available here.
-
Device Trees: Typically, this is a folder called
dtbs
which contains all of the device tree blobs for a specific build configuration. -
Lab Name: This is a directory that corresponds to a lab-id. It contains the platform logs in both .txt and .html format.
Labs are independent and administrated by the company or contributor that's providing it. Labs run LAVA v2.
KernelCI has currently a lot of moving parts and all the information in this wiki is work in progress. This is a public wiki, feel free to contribute!