Yocto, ce n’est pas un système embarqué, mais…

Posté par  . Édité par Davy Defaud, BAud, Nÿco, palm123, Xavier Teyssier, Nils Ratusznik, Katyucha, bubar🦥, Benoît Sibaud et olivierweb. Modéré par Nils Ratusznik. Licence CC By‑SA.
Étiquettes :
36
22
nov.
2014
Linux

Yocto est un projet collaboratif, soutenu par la Linux Foundation, qui fournit des modèles, outils et méthodes pour vous aider à créer des systèmes embarqués.

Yocto

Le projet Yocto est divisé en plusieurs sous‐parties. Nous allons nous intéresser dans cet article au générateur d’appliances. Ce dernier effectue en toute simplicité la génération de votre propre système embarqué à l’intérieur d’une machine virtuelle de type vmdk.

Yocto est issu du projet Poky (un système de contruction — build — qui s’appuie lui‐même sur OpenEmbedded) dont il est le digne successeur.

L’architecture de Yocto

« Build Appliance 1.7 » (Dizzy) est une machine virtuelle pré‐configurée pour que vous puissiez simplement générer votre système embarqué. Cette virtualisation a toutefois un coût en termes de rapidité de compilation lors de la création de votre système. Son avantage principal est la création d’une appliance, quel que soit le système d’exploitation sur lequel vous travaillez…

Une image étant dans certains cas plus parlante que des mots et, surtout, qu’une longue explication fastidieuse, veuillez vous référer au schéma ci‐dessous :

Yocto

L’avantage de BA 1.7 est double, un système pré‐configuré et fonctionnel et la possibilité de l’utiliser sur n’importe quel système d’exploitation…

Pour information, les résultats peuvent varier selon la puissance de votre machine hôte et de sa mémoire disponible. Par exemple, sur un i5 avec 8 Gio de mémoire vive :

  • génération d’un « petit » système embarqué (inférieur à 100 Mio) : environ une heure ;
  • génération d’un système embarqué « complet » (inférieur à 550 Mio) : environ trois heures trente.

Si vous souhaitez développer votre système embarqué directement à partir d’une distribution, sans passer par la virtualisation, Yocto assure une compatibilité totale (pour l’instant) avec ces cinq distributions :

  • Ubuntu ;
  • Fedora ;
  • CentOS ;
  • openSUSE ;
  • Debian.

Les avantages de Yocto

  • les images générées auront l’avantage d’utiliser un noyau toujours récent ;
  • la possibilité d’utiliser X11, GNOME Mobile, GTK+, Qt, Clutter et SDL (mais pas que…) ;
  • grâce à QEMU, l’émulation totale pour les architectures x86, x86-64, ARM, MIPS, PPC, ainsi que du matériel spécifique.

Enfin, SATO, une interface utilisateur basée sur GNOME Mobile, qui permet aux développeurs de mettre en œuvre leur propre interface pour écrans de petite résolution ou minimalistes.

Au moment de l’édition de cet article le projet Yocto en est à sa version 1.7 nommée Dizzy (mais le projet avance rapidement et ne cesse de s’améliorer).

Besoins spécifiques à Yocto

  • Git 1.7.5 ou supérieur ;
  • tar 1.24 ou supérieur ;
  • Python 2.7.3 ou supérieur (mais malheureusement pas Python 3.x, qui n’est toujours pas pris en charge).

Processus de création d’une image :

Construire une image

Vous trouverez sur le site de Yocto des images déjà pré‐construites nommées BSP. Pour la version en cours, veuillez faire pointer vos navigateurs vers cette adresse :

https://www.yoctoproject.org/downloads/core/dizzy17

La création facile grâce à Hob

Pour les plus fainéants d’entre nous (mais qui ne l’est pas ?), Yocto a eu la bonne idée de créer Hob, une interface graphique qui réalisera pour vous les tâches qui demandent normalement l’utilisation de la ligne de commande. Un clickodrome de la création d’images ISO multi‐architectures !

Ne vous y trompez pas toutefois, celui‐ci est très complet dans le choix des options qu’il propose. Il vaut mieux prendre son temps et en étudier toutes les possibilités (sous peine de ne pas avoir l’optimisation ou les nécessaires requis).

Yocto : 1.5-hob-machine-selection

Yocto : 1.5-hob-building-image

Yocto : 1.5-qemu-image-details

Hob est mort (ou presque), vive Toaster

Hob sera remplacé par Toaster sur la prochaine version de Yocto (la 1.8). Celui‐ci abandonne l’interface GTK au profit d’une application Web basée sur Django. Pour l’instant en test (vous pouvez la télécharger, celle‐ci n’est toutefois pas à conseiller en production.

Toaster permettra de nombreuses choses, dont le versionnage des images, le choix des sources utilisées pour la construction de ses images, ainsi que sa propre version de BitBake (si nécessaire).

Mais et pour la MasterClass ?

Rassurez‐vous, il est aussi possible de créer vos images en ligne de commande (sans doute de manière plus précise, aux travers de scripts), grâce à BitBake (cf. documentation au début de cet article).

Le mot de la fin…

Enfin, pour les plus fainéants d’entre nous qui aimeraient quand même tester le projet sans trop y perdre de temps (la documentation est assez conséquente au vu des possibilités offertes…), un guide de démarrage rapide est disponible.

Aller plus loin

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.