Yocto

https://www.yoctoproject.org/

Yocto est un projet libre géré par la fondation Linux qui a pour but la création d’un ensemble d’outils et de processus permettant la création d'une distribution Linux personnalisé destiné aux systèmes embarqués Il ne s'agit pas d'une distribution Linux embarquée – cela vous en crée une personnalisée.

Le projet Yocto prend en charge plusieurs architectures, notamment x86 (32 et 64 bits), PowerPC, ARM et MIPS et un nombre croissant de cartes par l'intermédiaire de couches de support de cartes.

=Principales composantes=

Le projet Yocto combine et maintient principalement les trois éléments :
 * Un ensemble d'outils intégrés pour faire fonctionner Linux embarqué avec succès, y compris des outils de build automatique et de test automatisés
 * Une distribution intégrée de référence (appelée Poky)
 * Le système de build OpenEmbedded, co-entretenu avec le projet OpenEmbedded



= Getting started =

Installation sur une machine linux
principaux requirements

Les outils fournis par le projet Yocto peuvent être installé sur les distributions Linux les plus populaires :
 * Ubuntu
 * Fedora
 * openSUSE
 * CentOS
 * Debian

Ci-dessous les principaux requirements :
 * Git 1.8.3.1 or greater
 * tar 1.27 or greater
 * Python 3.4.0 or greater.

Installation des packages nécessaires pour le build

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping libsdl1.2-dev xterm

Telechargement du projet

$ git clone git://git.yoctoproject.org/poky Cloning into 'poky'...    remote: Counting objects: 361782, done. remote: Compressing objects: 100% (87100/87100), done. remote: Total 361782 (delta 268619), reused 361439 (delta 268277) Receiving objects: 100% (361782/361782), 131.94 MiB | 6.88 MiB/s, done. Resolving deltas: 100% (268619/268619), done. Checking connectivity... done. $ git checkout tags/yocto-2.4.2 -b poky_2.4.2

Construction de l'image

$ source oe-init-build-env
 * Initialisation de l’environnement du build

$ bitbake core-image-sato
 * Démarrage du build de l'image


 * Émuler l'image dans QEMU

$ runqemu qemux86

Exécution dans docker
Ci-dessous les étapes pour exécuter yocto dans un container docker : mkdir -p /home/myuser/mystuff docker run --rm -it -v /home/myuser/mystuff:/workdir crops/poky --workdir=/workdir
 * Création d'un répertoire pour les données Yocto :
 * Exécution :

=Yocto sur RPI3= http://www.jumpnowtek.com/rpi/Raspberry-Pi-Systems-with-Yocto.html

=Yocto avec Docker= https://github.com/gmacario/easy-build/blob/master/build-yocto/README.md

=Liens=
 * Introduction
 * https://www.yoctoproject.org/downloads/bsps/daisy16/beaglebone
 * https://software.intel.com/en-us/blogs/2015/03/04/creating-a-yocto-image-for-the-intel-galileo-board-using-split-layers
 * https://github.com/agherzan/meta-raspberrypi

=Autres= Yocto versus Buildroot