Linux Kernel Testing: Intro to kernelci.org

This is the first article in a series about automation, testing and validation of the Linux kernel.

The kernelci.org project aims to improve the quality of the mainline Linux kernel by improving testing and validation across the wide variety of diverse hardware platforms that run Linux.

There are soimage many different devices and platforms that run Linux, and Linux kernel development is moving so quickly that it is difficult to ensure that any given platform will remain working and stable with each Linux version.  As an example, the chart here shows the growth in the number of 32-bit ARM based devices supported by Linux, with the total number of unique devices as of v4.11 just shy of 1400!  That doesn’t even count the growing number of 64-bit ARM devices or any of the other architectures like x86 or MIPS.

With such an incredible range of supported hardware, how can the Linux kernel community continue to ensure that all of this hardware remains well supported and evolves with the rest of the Linux kernel?boards1

The kernelci.org project set out to help solve that problem.

During the development cycle of the Linux kernel, whenever there are changes to the source-code repository, the kernel is built in a wide variety of configurations for several different architectures. Today, there are over 270 different build configurations across 4 architectures (x86, MIPS, ARM and ARM64.)

After a successful build, the kernel images are made available to the several distributed labs for testing. Due to the diversity of hardware that runs linux, no one lab is going to have all the hardware, so kernelci.org was designed for distributed testing. When builds are completed, each lab can download the images for the hardware available, and perform the testing. Currently there are 8 active labs contributing a total of more than 250 unique hardware platforms across 4 unique architectures.

BayLibre’s Kevin Hilman is a founding developer of the kernelci.org project, and today, BayLibre has the largest lab contributing results from over 80 unique boards across 25 unique SoC families and performing thousands of tests each day.

If you have hardware you’d like to see tested with the latest Linux kernel in the kernelci.org project, feel free to contact us.  We can help guide you through setting up your own lab, or you could just send us your hardware and we can add it to our lab.

Want to know even more?

For a more in-depth overview, Kevin gave an overview talk of the kernelci.org project at the 2016 edition of the Kernel Recipes conference in Paris.  Slides are available online and the full talk was recorded and available right here:

 

 

 

Nexbox A1 serial console

The Nexbox A1 which includes an 8-core Amlogic S912 processor, is now supported in v4.10 of the Linux kernel, thanks in part to the work of BayLibre.

If you’d like to help with kernel development on this platform, the first think you’ll need is access to the serial console.  The serial port is not brought out to a connector, but pads are easily accessible on the main board.Nexbox A1 UART pins

Once you open the case, you’ll pads for the UART signals between the heat sink and the edge of the board.

In the photo to the right, wires have been soldered to the pads:

  • Red: VCC (not used)
  • Orange: RX
  • Yellow: TX
  • Black: Ground

Hooking the newly soldered wires up to a USB serial cable such as this one, you’ll see the boot-loader and linux kernel messages on your as soon as you power on the board.  NOTE: signal levels are 3.3V, and no need to hook up the VCC line.

Now you’ll be ready to dive in and help with kernel development on Amlogic processors.   Enjoy!

Nexbox A1