Yocto

boards IoT-LAB A8-M3

Description

The Yocto Project is an open-source project which allows the creation of embedded Linux distributions. The project was announced by the Linux Foundation in 2010 and launched in March, 2011, in collaboration with 22 organizations. It uses a build system based on the OpenEmbedded (OE) project, which uses the BitBake tool, to construct complete Linux images. The BitBake and OE components combine together to form a reference build host, historically known as Poky. You can also build U-boot bootloader and Linux Kernel as well.

Support for Linux boards

Boot and filesystem

The setup for Linux nodes is to used both TFTP and NFS server and U-Boot bootloader write on the NAND flash memory (eg. A8 hardware) or SD card (eg. RPI3 hardware). The bootloader will fetch the Linux kernel from the TFTP server and the kernel will mount the root filesystem from the NFS server. For each experiment submission a reference filesystem is extracted and used by all Linux nodes of an experiment. It’s a volatile filesystem that will be deleted between two experiments. It’s important to understand that the same filesystem is shared between all the nodes of an experiment and if for example you install a package on one of the nodes of the experiment it will be available on all the others.

Software support

We provide a Yocto Github repository here from which we generate custom Linux images, kernel and bootloader. We have created a meta-iotlab layer which contains all customizations for IoT-LAB testbed like SSH keys management or IPv6 configuration. Actually we have two boards support:

Hardware Yocto version Comments
IoT-LAB A8-M3 Krogoth Variscite VAR-SOM-AM35 (AM3505) port
U-boot 2015.01
Linux 3.19.0
Raspberry PI3b(+) Thud (eg. branch thud_port) Meta-raspberrypi overlay
Linux 4.4.13
U-boot is built separately

We provide a default list of packages (eg. Opkg package manager):

You can of course ask us to add packages or Linux kernel module support for your needs. You also have the possibility to build your own packages with our repository and install them on the nodes during the experiment.