Brussels / 1 & 2 February 2020


GNU Guix as an alternative to the Yocto Project

This talk demonstrates how to use GNU Guix to build a root filesystem for an embedded device (Pine A64 LTS). I will also try to answer the question: could GNU Guix be a viable alternative to the Yocto project and what would be the benefits of using GNU Guix?

Working as an embedded software engineer, I've been using Yocto and Buildroot projects to create root filesystems for embedded devices. While Buildroot is only suitable for small embedded systems, Yocto does scale well, but is a really complex tool.

Plus, both tools are difficult to handle for developers without a strong understanding of Linux system integration, and on the other hand, do not provide APIs and introspection tools for integrators.

In this talk, I want to explore the possibility of using GNU Guix as an alternative to the Yocto project to generate embedded root filesystems.

With 7 years of existence, more than 10000 packages and 4 supported architectures, GNU Guix can be used as a transactional package manager and an advanced distribution of the GNU operating system running on the Linux kernel.

What would be missing to cover all Yocto features? How could the embedded developer benefit from GNU Guix features such as its high level Scheme API, package substitution mechanism, strong reliability and reproducibility?

To provide some real world application, I'll compare the process of adding support for a new board (Pine A64 LTS) on Yocto and GNU Guix. Then I'll compare how to configure, build and flash a small root filesystem for that same board, on the two tools.


Mathieu Othacehe