LAVA
LAVA is the job scheduler for building Linux kernel based on configured system (ex: ARM board).
This page describes how to setup tools and run in your local machine.
Currently, LAVA is supported only in Debian system. I'm using Docker to run it.
Kernel CI
Kernel CI is the automated Linux kernel testing framework. It consists of several software components.
LAVA is the core part of Kernel CI. Kernel CI consists of LAVA and other software components.
Why do we need this tool?
Simply, it is developed for detecting regression problem efficiently
- Build Linux kernel automatically
- Kconfig -> build -> boot -> check the status of kernel image
For my private reason,
- Test Linux kernel on several ARM SBCs
LAVA Architecture
Installation
To build Linux kernel fast, higher performance host system is required.
It seems Linaro uses Xeon servers. I use Zotac Intel Core i7-4770T barebone system.
OS - Debian
I prefer Docker because I don't want to install new system for this.$ docker pull debian:jessie $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE debian jessie-backports 8d3e0261e9ea 2 weeks ago 123 MB
The option, '-p 8000:80' enables accessing the LAVA web pages inside the container through web browser with the url, 'http://localhost:8000'.
$docker run -p 8000:80 -i -t 8d3e0261e9ea /bin/bash
Run debian (8d3e0261e9ea)
root@03a89588dcc2:/#
Now, you are inside the Debian container.
Let's install the LAVA. Jessie backport supports it, so additional deb is required in /etc/apt/sources.list.
root@03a89588dcc2:/# apt update
root@03a89588dcc2:/# apt-get install vim
root@03a89588dcc2:/# vim /etc/apt/sources.list
# Add this line for LAVA setup
deb http://deb.debian.org/debian/ jessie-backports main
Then, install the postgresql.
root@03a89588dcc2:/# apt update
root@03a89588dcc2:/# apt-get install postgresql
Postgresql service should start prior to installing LAVA. If it doesn't starts, then port 5432 error will occur.
root@03a89588dcc2:/# service postgresql start
root@03a89588dcc2:/# apt-get install -t jessie-backports lava
Let's create admin account for LAVA
root@03a89588dcc2:/# lava-server manage createsuperuser
Start the LAVA service.
root@03a89588dcc2:/# service lava-server start
After LAVA installation,
root@03a89588dcc2:/#