Yocto Zeus
-
La version 3.0, Zeus, de Yocto et sa distribution de référence poky (version 24) sont sorties le 23 octobre 2019.
C’est un environnement et une collection d’outils qui vous permettront de créer des distributions Linux sur mesure, principalement orientés vers le monde embarqué. Cette version amène son lot de nouvelles recettes et de sauts de version pour les composants qui serviront de base par défaut à vos distributions.
Il n’y a pas de grand changement dans la structure et les règles d’écriture des recettes et des configurations. Vous devriez pouvoir migrer 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 fichierconf/layer.conf
. Normalement, celles qui sont hébergées par le projet Yocto le sont automatiquement.- lien n°1 : L’annonce
- lien n°2 : Notes de version
- lien n°3 : Yocto project
Sommaire
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 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 quemc:
est le raccourci pourmulticonfig:
.Les tâches
SetScene
ont fusionnées avec les tâchesRunQueue
, 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 déjà calculé et mis en cache, etRunQueue
concerne lui l’exécution des tâches restantes. La variable BB_SETSCENE_VERIFY_FUNCTION2 est aussi ignorée. Les paramètres passés à la fonction définie dans BB_HASHCHECK_FUNCTION, appelée durantSetScene
ont changé.La définition de tâches listées dans la variable
BB_TASKDEPDATA
doivent utiliser uniquement la signature<func>:<task>
, les implémentations qui utilisaient encore un.
comme délimiteur ont été modifiées.compilation
Par défaut, ce sont gcc 9.2 et la glibc 2.30 qui s’en chargent.
Recettes
Les paramètres
minver
etmaxver
sont intégrés en option deSRC_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 ) dansSRC_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}
avecDEPENDS_
, qui entretenait la confusion avecRDEPENDS_
qui lui, est bien lié au paquetage.Les variables
TARGET_CFLAGS
,TARGET_CPPFLAGS
,TARGET_CXXFLAGS
etTARGET_LDFLAGS
ne sont plus exportées dans l’environnement.La recette
cve-update-db
, basée sur la classecve-check
annule et remplace l’outilcve-check-tool
. Ce nouvel outil utilise un flux NVD JSON en entrée plutôt que des données XML, obsolète. En autre amélioration, il comprend la notationCVSSv37
. De plus, la variableCVE_CHECK_CVE_WHITELIST
est remplacée parCVE_CHECK_WHITELIST
.fonctions et scripts
La fonction
bb.build.exec_func()
ne prend plus en compte le paramètrepythonexception
. Dans la même idée, l’exceptionbb.build.FuncFailed
est supprimée, les exceptions sous-jacentes seront levées à la place.Architectures
De base, Yocto propose une liste d’architectures cible, 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 et RISC-V par libffi.
L’outil de création de fichiers image wic comprend le nouveau plugin
bootimg-biosplusefi
qui crée une partition d’amorçage compatible à la fois BIOS et EFI.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 retrouve 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 variableFIT_HASH_ALG
qui définit l’algorithme de contrôle d’une fitimage, image pour le bootloader capable d’adresser plusieurs éléments (noyau, ramfs, dtb) ; - la prise en charge de la compression des modules via l’opton de configuration noyau CONFIG_MODULE_COMPRESS=y ;
- import des fragments de configuration depuis la 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.La recette
libdrm
intègre le fichieramdgpu.ids
dans le paquetlibdrm-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és de poky. La version destinée au configuration de tests est renommée enpoky-altcfg
.Base
busybox active Unicode par défaut.
Développement
L’outil de parallélisation de compilation distcc est séparé en deux paquets
distcc-client
etdistcc-server
.Bibliothèques
GTK+ 2 est déplacé vers la meta-oe.
Les dépendances à Python 2 sont réduites au maximum.
Le paquet
libcap-ng
ne prend plus Python en charge, ajoutez le paquetlibcap-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.8.4 depuis le 31 octobre.
La prochaine branche, dunfell, 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 sur le site du projet.
LuneOS, une distribution linux pour appareils mobiles qui utilise Yocto, a présenté sa dernière version, eggnog-latte, le 24 octobre. Celle-ci suit la branche warrior de Yocto.
Télécharger ce contenu au format Epub
Commentaires : voir le flux atom ouvrir dans le navigateur
Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB