Yocto Zeus


  • Prédateur

    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 fichier conf/layer.conf. Normalement, celles qui sont hébergées par le projet Yocto le sont automatiquement.

    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 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 déjà calculé et mis en cache, et RunQueue 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 durant SetScene 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 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ète. 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 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 variable FIT_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 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és de poky. La version destinée au configuration de tests est renommée en poky-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 et distcc-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 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.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

    https://linuxfr.org/news/yocto-zeus


Log in to reply