URL: https://linuxfr.org/news/yocto-zeus Title: Yocto Zeus Authors: David Marec Nils Ratusznik, palm123, ZeroHeure, Davy Defaud, X@v, Benoît Sibaud et Christophe Date: 2019年11月26日T22:45:36+01:00 License: CC By-SA Tags: yocto, embarqué, linux_embarqué et spdx Score: 23 La version 3.0, _Zeus_, de Yocto et sa distribution de référence *poky* (version 24) sont sorties le 23 octobre 2019. Il s’agit d’un environnement et une collection d’outils qui vous permettront de créer des distributions GNU/Linux sur mesure, principalement orientées vers le monde de l’embarqué. Cette version amène son lot de nouvelles recettes et de sauts de versions pour les composants qui serviront de base par défaut à vos distributions. Il n’y a pas de grands changements dans la structure et les règles d’écriture des recettes et des configurations. Vous devriez pouvoir [migrer](https://www.yoctoproject.org/docs/3.0/ref-manual/ref-manual.html#moving-to-the-yocto-project-3.0-release) facilement. Vérifiez que les *meta‐layers* tierces que vous utilisez soient déclarées compatibles avec cette version. Ajustez la variable `LAYERSERIES_COMPAT_XXXX` du fichier `conf/layer.conf`. Normalement, celles qui sont hébergées par le projet Yocto le sont automatiquement. ---- [L’annonce](https://www.yoctoproject.org/pipermail/yocto-announce/2019-October/000169.html) [Notes de version](http://downloads.yoctoproject.org/releases/yocto/yocto-3.0/RELEASENOTES) [Yocto project](https://www.yoctoproject.org/) ---- # Mécanique Yocto repose sur un ensemble de scripts qui vont analyser une liste de jeux de recettes organisés en *meta*, chaque recette configurant une suite de tâches à réaliser. De cette analyse sort un arbre de tâches que *bitbake*, le constructeur va lancer. Dans cette version, le [standard d’identification de licences SPDX](https://spdx.org/licenses/) a été adopté. La construction en une seule commande d’images pour différentes cibles, `multiconfig`, est considérée mature. ## Bitbake Les commandes `--runall` et `--runonly`, qui ne demandent la réalisation que d’un seul type de tâche, respectent désormais `--force`. Précisez `mc:prefix` à `bitbake -e` pour afficher les configurations multiples. Notez que `mc:` est le raccourci pour `multiconfig:`. Les tâches `SetScene` ont fusionnées avec les tâches `RunQueue`, ce qui permet de les exécuter en parallèle. En effet, il y a deux grandes catégories de tâches : `SetScene` permet de restaurer un état précédemment calculé et mis en cache, et `RunQueue`, lui, concerne l’exécution des tâches restantes. La variable [`BB_SETSCENE_VERIFY_FUNCTION2`](https://www.yoctoproject.org/docs/3.0/bitbake-user-manual/bitbake-user-manual.html#var-bb-BB_SETSCENE_VERIFY_FUNCTION2) est aussi ignorée. Les paramètres passés à la fonction définie dans [`BB_HASHCHECK_FUNCTION`](https://www.yoctoproject.org/docs/3.0/bitbake-user-manual/bitbake-user-manual.html#var-bb-BB_HASHCHECK_FUNCTION), appelée durant `SetScene`, ont changé. Les définitions des tâches listées dans la variable `BB_TASKDEPDATA` doivent utiliser uniquement la signature `:`, les implémentations qui utilisaient encore un `.` comme délimiteur ont été modifiées. ## compilation Par défaut, ce sont [gcc 9.2](https://gcc.gnu.org/gcc-9/changes.html) et la [glibc 2.30](https://sourceware.org/ml/libc-alpha/2019-08/msg00029.html) qui s’en chargent. ## Recettes Les paramètres `minver` et `maxver` sont intégrés en option de `SRC_URI` pour les correctifs, afin de proposer une plus grande souplesse. De même, il est déconseillé d’utiliser la variable `${PN}` (_Package Name_) dans `SRC_URI`, vous en serez averti lors des phases de contrôle d’intégrité (*Sanity check*). Dans la même idée, il est désormais interdit d’utiliser `${PN}` avec `DEPENDS_`, qui entretenait la confusion avec `RDEPENDS_` qui, lui, est bien lié au paquetage. Les variables `TARGET_CFLAGS`, `TARGET_CPPFLAGS`, `TARGET_CXXFLAGS` et `TARGET_LDFLAGS` ne sont plus exportées dans l’environnement. La recette `cve-update-db`, basée sur la classe ` cve-check` annule et remplace l’outil `cve-check-tool`. Ce nouvel outil utilise un flux NVD JSON en entrée plutôt que des données XML, obsolètes. En autre amélioration, il comprend la notation `CVSSv37`. De plus, la variable `CVE_CHECK_CVE_WHITELIST` est remplacée par `CVE_CHECK_WHITELIST`. ## fonctions et scripts La fonction `bb.build.exec_func()` ne prend plus en compte le paramètre `pythonexception`. Dans la même idée, l’exception `bb.build.FuncFailed` est supprimée, les exceptions sous‐jacentes seront levées à la place. # Architectures De base, Yocto propose une liste d’architectures cibles, dont des cibles [[QEMU]], que vous pouvez compléter par des *meta* maintenues par les fondeurs. Cette version ajoute l’émulation de RISC‐V 64 (`qemuriscv64`) et ajoute *ppc64* dans la liste des cibles pour QEMU (`QEMU_TARGETS`). _qemuarm64_ prend en charge les accélérateurs KVM (`QB_CPU_KVM`). De nouveaux fichiers de réglage, `tun*`, sont présents pour Cortex-A53, Cortex-A57 et ARM1176JZ-S. Cette nouvelle version de Yocto prend en charge *ARM32* (armel) par [ICU](http://site.icu-project.org/) et RISC-V par [libffi](https://sourceware.org/libffi/). L’outil de création de fichiers images *wic* comprend le nouveau plugin `bootimg-biosplusefi` qui crée une partition d’amorçage compatible à la fois [BIOS](https://fr.wikipedia.org/wiki/BIOS) et [EFI](https://fr.wikipedia.org/wiki/UEFI). # Composants Pour construire une image, il vous faut assembler divers composants, dont la version par défaut est figée à chaque mise à jour. La liste est longue et se trouve dans les notes de publications. ## Noyau Yocto propose d’utiliser les versions 4.19 et 5.2 du noyau Linux. Parmi les améliorations, on peut retrouver : - la classe `kernel-fitimage` comprend la variable `FIT_HASH_ALG` qui définit l’algorithme de contrôle d’une *fitimage*, image pour le gestionnaire d’amorçage capable d’adresser plusieurs éléments (noyau, ramfs, dtb) ; - la prise en charge de la compression des modules via l’option de configuration noyau [`CONFIG_MODULE_COMPRESS=y`](https://cateee.net/lkddb/web-lkddb/MODULE_COMPRESS.html) ; - importation des fragments de configuration depuis la [meta‐security](http://git.yoctoproject.org/cgit/cgit.cgi/meta-security). ## Pilotes Le pilote graphique `drm-bochs` est maintenant pris en charge. Comme son nom l’indique, ce pilote permet de gérer l’adaptateur graphique virtuel de l’émulateur [Bochs](https://fr.wikipedia.org/wiki/Bochs). La recette `libdrm` intègre le fichier `amdgpu.ids` dans le paquet `libdrm-amdgpu`. ## Distributions La sélection du gestionnaire d’initialisation du système a été simplifiée, grâce à la variable `INIT_MANAGER` qui comprend les valeurs suivantes : * `none` ; * `sysvinit` ; * `systemd` ; * `mdev-busybox`. Si `none` est sélectionné, votre configuration actuelle est utilisée. C’est‐à‐dire que cette variable est ignorée. La distribution `poky-lsb` et la majorité des recettes associées sont retirées de *poky*. La version destinée aux configurations de tests est renommée `poky-altcfg`. ## Base [busybox](https://busybox.net/) active Unicode par défaut. ## Développement L’outil de parallélisation de compilation [distcc](https://distcc.github.io/) est séparé en deux paquets `distcc‐client` et `distcc‐server`. ## Bibliothèques GTK+ 2 est déplacé vers la [meta-oe](https://layers.openembedded.org/layerindex/branch/master/layer/meta-oe/). Les dépendances à Python 2 sont réduites au maximum. Le paquet `libcap-ng` ne prend plus Python en charge, ajoutez le paquet `libcap-ng-python` en cas de besoin. # Autour de Yocto Les branches précédentes de Yocto sont toujours vivantes et ont connu de récentes mises à jour : - *Warrior* est passée en 2.7.2 le 26 novembre 2019 ; - *Thud* est en 2.6.4 depuis le 31 octobre. La prochaine branche, _[dunfell](https://wiki.yoctoproject.org/wiki/Releases)_, sortira en avril 2020. La nouvelle *meta‐intel*, version 12.0, a été publiée le 27 novembre. Il est possible de suivre l’état de maintenance des branches via la [page wiki dédiée](https://wiki.yoctoproject.org/wiki/Releases) sur le site du projet. [LuneOS](https://linuxfr.org/news/luneos-doppio-est-sortie), une distribution GNU/Linux pour appareils mobiles qui utilise Yocto, a présenté sa [dernière version](https://pivotce.com/2019/10/24/luneos-october-stable-release-eggnog-latte/), *eggnog‐latte*, le 24 octobre. Celle‐ci suit la branche *warrior* de Yocto.

AltStyle によって変換されたページ (->オリジナル) /