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:

 

 

 

Linux v4.10 released, BayLibre contributions

The v4.10 release of the Linux kernel was made on February 19th, and BayLibre has (again) made the list of top 20 active employers.

An excellent summary of this release can be found at KernelNewbies, and below is a summary of our contributions, organized by SoC family and a summary graph of contributions by developer.  A special shout-out this development cycle goes to Neil Armstrong for the significant contributions of new DRM/KMS support for Amlogic SoCs.

Amlogic SoC family:

  • DT support for GXL family (S905X, S905D)
  • DT support for GXM family (S912)
  • added SD / eMMC driver
  • SDIO WLAN
  • GPIO IRQ support
  • SCPI
  • CPU DVFS (using SCPI)
  • DRM/KMS: display support (composite)

New boards:corn-kernels

  • Amlogic S905D P230
  • Amlogic S905X P212
  • Nexbox A95 (S905)
  • Nexbox A1 (S912)

TI DaVinci SoC family:

  • VPIF video capture: updated for DT support
  • USB: OHCI: DT support
  • USB: MUSB: DT support, host and device
  • push-buttons: supported with GPIO keys
  • fixed PLL0 rate setting
  • PWM support
  • SATA support
  • PM: suspend/resume suport for DT-based platforms

OXNAS SoCs:

  • Add SMP support
  • Add support for OX820 and Pogoplug V3
  • net: add oxnas support to DWMAC
  • pinctrl: Add SX150X GPIO Extender

Sierra Wireless SoCs:

  • Add support for WP8548 based MangOH Green board
  • Add DT base for MDM9615 SoC

BayLibre-v4.10

Linux v4.9 released, BayLibre contributions

The v4.9 release of the Linux Kernel has just been announced, and BayLibre has made the top 20 list of companies contributing to the Linux Kernel this release.

As described in the LWN coverage, this is largely due to the inclusion of Greybus in the staging tree, but BayLibre has also been active in several other areas:

peachpitAmlogic SoC family

  • added SPI support for flash controller (spifc)
  • added USB host support
  • added PWM support
  • added secure monitor support and NVMEM
  • added watchdog support
  • added AO clocks and reset
  • added IR/remote support
  • added I2C support
  • added MHU/mailbox support
  • network: added new DWMAC glue supporting GXBB

TI DaVinci SoC family

  • added  LCDK board support
  • Audio support
  • NAND support
  • Ethernet
  • MMC/SD supported

ARM OxNAS SoC family:

  • clocksource driver updates

Fixes, cleanups for BayLibre ACME hardware:

  • gpio: pca953x: code refactoring
  • gpio: fix an incorrect lockdep warning
  • eeprom: at24: check if the chip is functional in probe()

bl-v4-9-status

 

 

BayLibre contributions to the Linux Kernel, v4.8

Version 4.8 of the Linux kernel has just been announced and you can see the always excellent summary of new features at KernelNewbies as well as an overview at LWN.net.

At BayLibre, we’re active in the kernel development community and here’s a brief summary of our contributions merged into v4.8:

Support for the Amlogic 64-bit SoCs:

  • Basic boot, DT support, timers, IRQs
  • Core drivers: clock controller, pin controller, reset controller
  • Ethernet
  • Boards: Amlogic P200 board, Hardkernel Odroid-C2 board

Misc. ARM SoC support

  • Add support for Qualcomm MDM9615
  • TI DaVinci: add support for DA850-LCDK board: NAND, SD/MMC, ethernet
  • Oxford Semiconductor OXNAS family: pinctrl, GPIO, timers

Other Drivers

  • Support to read at24 EEPROMs on BayLibre: ACME boards

In total, 63 patches authored by BayLibre engineers were merged this cycle.  See the kernel git tree for all the details.

bl-changes-v4-8

 

Kernel Recipes 2016

kr-khilman-1
BayLibre was proud to be a sponsor of this this years Kernel Recipes conference in Paris.  Kernel Recipes is a small, technical conference focused on various topics related to the Linux Kernel.

kr-crowdI was a speaker again this year, and  gave a talk about the kernelci.org project.  The talk was a brief overview of the project, its history and ways to contribute.   Slides available here and video recordings are also available.

One of the fun parts of Kernel Recipes was all the speakers and some lucky audience members got caricatures of them drawn by artist Frank Tizzoni.  Here is one of me and one of the crowd, with a bunch more available on Kernel Recipes Twitter feed.