URL: https://linuxfr.org/news/buildroot-201102-est-sorti Title: Buildroot 2011.02 est sorti ! Authors: Thomas Petazzoni Date: 2011年03月01日T09:41:43+01:00 License: CC By-SA Tags: embarqué, buildroot, linxemb et fosdem Score: 34 [Buildroot](http://www.buildroot.org) est un outil de construction de systèmes GNU/Linux embarqués. Par rapport à des solutions comme OpenEmbedded, Buildroot est beaucoup plus simple et rapide à prendre en main, et convient parfaitement pour un grand nombre de systèmes embarqués, au nombre de composants logiciels limité. Il suffit, par exemple, de quelques minutes pour générer un système GNU/Linux minimal contenant Busybox et quelques composants logiciels supplémentaires. Buildroot prend en charge toute la problématique de compilation croisée : génération de la chaîne de compilation croisée, compilation de toutes les bibliothèques et applications, création de l'image du système de fichiers racine, configuration et compilation du chargeur de démarrage et du noyau. Il est également possible d'utiliser des chaînes de compilation croisée préexistantes. Depuis la dernière dépêche LinuxFr.org concernant la sortie de [Buildroot 2010.08](https://linuxfr.org/news/sortie-de-buildroot-201008), deux nouvelles versions sont sorties : [2010.11](http://lists.busybox.net/pipermail/buildroot/2010-November/039135.html) et hier [2011.02](http://lists.busybox.net/pipermail/buildroot/2011-February/041662.html). Nous proposons de faire le point sur les nouveautés de ces deux versions dans la seconde partie de l'article. ---- [Buildroot](http://www.buildroot.org) [Buildroot 2010.11 release](http://free-electrons.com/blog/buildroot-201011/) [Buildroot 2011.02 release](http://free-electrons.com/blog/buildroot-201102/) ---- # Buildroot 2010.11 # * **_Back-end_ [Crosstool-NG](http://ymorin.is-a-geek.org/projects/crosstool)**. Jusqu'ici, Buildroot pouvait soit compiler une chaîne de compilation croisée basée sur la bibliothèque C _μClibc_, soit réutiliser une chaîne de compilation croisée préexistante. Le nouveau _back-end_ Crosstool-NG permet de confier à Crosstool-NG le soin de générer la chaîne de compilation croisée. Développé et maintenu par le français Yann E. Morin (que l'on retrouve régulièrement dans les trolls ^Wdiscussions qui animent LinuxFr.org), Crosstool-NG est un outil pour générer des chaînes de compilation croisée, avec de nombreuses options de configuration. Il supporte notamment les bibliothèques C _glibc_, _μClibc_ et _eglibc_. À terme, il est probable que Buildroot ne soit plus responsable de générer la chaîne de compilation croisée, et qu'il confie ce travail à Crosstool-NG. Le _back-end_, implémenté par Yann E. Morin lui-même, permet d'intégrer de manière complètement transparente Crosstool-NG à Buildroot : l'utilisateur n'a besoin que de configurer quelques paramètres de sa chaîne de compilation croisée, et Buildroot fait tout le reste. * L'**infrastructure Kconfig a été mise à jour**. Buildroot utilise la célèbre infrastructure _Kconfig_ du noyau Linux pour décrire les options de configuration et pour proposer des interfaces telles que _menuconfig_, _xconfig_ ou _gconfig_. La mise à jour de l'infrastructure apporte notamment le support de _savedefconfig_ (pour générer des fichiers de configuration minimaux) et de _nconfig_ (une nouvelle interface de configuration en _ncurses_). * L'**infrastructure des paquets supporte maintenant Git et SVN**. L'infrastructure des paquets est utilisée dans Buildroot pour décrire la façon de télécharger, extraire, « patcher », configurer, compiler et installer un composant logiciel dans le système embarqué. Jusqu'ici, seuls les téléchargements HTTP ou FTP étaient supportés. Buildroot peut désormais récupérer le code source d'un composant logiciel depuis un dépôt Git ou SVN. Les commandes `« make source »` (pour récupérer les archives de tous les paquets pour une construction hors-ligne) et `« make external-deps »` (pour lister toutes les dépendances externes nécessaires à la construction hors-ligne d'un système) ont été corrigées. * Au niveau des **architectures** : ajout du support pour ARM Cortex A9 et Sparc LEON, et suppression du support pour Alpha, Cris, IA64 et Sparc64 (architectures obsolètes ou peu utilisées dans l'embarqué). * Le travail de **nettoyage des paquets** s'est poursuivi : conversion de nombreux paquets vers les infrastructures officielles _autotargets_ et _gentargets_, suppression d'un ancien mécanisme de _hook_, suppression de paquets obsolètes tels que dillo, libglib12, libgtk12, microwin et pcmcia. * De **nouveaux paquets** ont fait leur apparition : argp-standalone, gdk-pixbuf, gpsd, gst-ffmpeg, libmpeg2, kbd, librsvg, nuttcp, rng-tools, rrdtool et xz. * De nombreux **paquets ont été mis à jour, et notamment la bibliothèque GTK+**. Elle était restée depuis longtemps bloquée en version 2.12, car toutes les versions ultérieures de GTK+ ne fonctionnaient plus avec le _backend_ graphique DirectFB, pourtant bien apprécié dans l'embarqué. Grâce au travail de Lionel Landwerlin au niveau de GTK+, les versions 2.20 et supérieures fonctionnent à nouveau au‐dessus de DirectFB, et Buildroot a été mis à jour pour utiliser GTK+ 2.20. Enfin, notons que le cycle de développement de la 2010.11 a été marqué par une réunion _Buildroot Developer Day_, qui s'est déroulé le 29 octobre à Cambridge en Angleterre, juste après l'Embedded Linux Conference Europe. Cette journée de travail a réuni six développeurs et utilisateurs de Buildroot, et a permis de [dégager un grand nombre d'idées pour le futur](http://lists.busybox.net/pipermail/buildroot/2010-November/038913.html). Voir également [cet article](http://free-electrons.com/blog/buildroot-201011/) pour plus de détails sur cette version. # Buildroot 2011.02 # * **Amélioration du support pour les _toolchains_ externes**. Buildroot est depuis plusieurs versions capable d'utiliser des chaînes de compilation croisée dites _externes_, c'est-à-dire qui ont été générées en dehors de Buildroot. Ce mode permet typiquement d'utiliser des chaînes de compilation croisée comme celles fournies par CodeSourcery, très populaire dans le monde ARM. Dans cette version de Buildroot, une notion de _profil de chaîne de compilation croisée_ a été ajoutée : Buildroot connaît donc un nombre de chaînes prédéfinies (actuellement les chaînes CodeSourcery pour ARM, PowerPC, MIPS et SuperH). Il connaît donc immédiatement la configuration de ces chaînes de compilation croisée, et peut même la télécharger et l'installer automatiquement au cours du processus de construction. Ce dernier point permet de simplifier l'utilisation de ces chaînes de compilation externes. * **Réorganisation complète du support de plates-formes matérielles**. Jusqu'ici, l'ajout du support d'une plate-forme matérielle était quelque peu compliqué. Le processus a été largement simplifié : il suffit maintenant d'écrire un fichier de configuration, d'une vingtaine de lignes, placé dans le répertoire _configs_, pour supporter une nouvelle carte. À cette occasion, le support a été ajouté pour la carte Mini2440, mais aussi pour les plates-formes Qemu ARM Versatile, Qemu MIPSel Malta, Qemu PowerPC G3 Beige, Qemu SH4 r2d et Qemu x86. Cela permet de générer très simplement un premier système fonctionnel que l'on peut tester dans Qemu. * **Support de l'architecture Blackfin**. Grâce à Mike Frysinger, cette architecture sans MMU est la première à être supportée par Buildroot. Pour ce type d'architecture, qui sert généralement à faire fonctionner des systèmes de taille relativement réduite, Buildroot est un très bon système de construction. Il y a donc fort à parier que d'autres architectures sans MMU seront supportées dans le futur. * **Le _back-end_ Crosstool-NG** a été amélioré pour offrir plus d'options de configuration, et a été mis à jour vers une version plus récente de Crosstool-NG. * **Le support pour _ccache_ a été retravaillé**, et il est maintenant réellement fonctionnel. Le fonctionnement actuel de Buildroot impliquant des reconstructions complètes assez fréquentes, avoir un cache de compilation est très intéressant, car il réduit sensiblement le temps de reconstruction. * **Une nouvelle infrastructure CMake a été ajoutée**. Cette infrastructure permet de grandement simplifier l'ajout de paquets logiciels qui utilisent CMake comme système de compilation. Pour l'instant, seuls _cdrkit_ et _libcuefile_ utilisent cette infrastructure, mais au vu de la popularité croissante de CMake, il y a fort à parier que d'autres paquets viendront ce joindre à cette nouvelle famille. De plus, cette nouvelle infrastructure génère un fichier de description CMake de la chaîne de compilation, ce qui permet de compiler très facilement des bibliothèques ou applications externes à Buildroot, en faisant simplement : `cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/buildroot/output/toolchainfile.cmake`. * **Un travail de nettoyage du processus de construction de la _toolchain_ interne** a été réalisé. Ainsi, _binutils_, _gmp_, _mpfr_ et _mpc_ sont maintenant des paquets Buildroot normaux. Il reste à convertir _gcc_, _gdb_ et _μClibc_. * Un début de travail a été réalisé dans l'objectif de **produire un SDK autonome** pour « cross‐compiler » des applications pour un système Buildroot. Maintenant, le compilateur croisé est avec les outils pour l'hôte dans `« $(O)/host/usr/bin »` et non plus mélangé avec des outils pour la cible dans `« $(O)/staging/usr/bin »`. De plus, le répertoire _staging_ a été déplacé dans `« $(O)/host/usr/PLATFORM-TUPLE/sysroot »`, de manière à ce que le répertoire `« $(O)/host »` devienne autonome pour « cross‐compiler » des applications pour le système Buildroot. * **Python a été mis à jour en version 2.7.1** et le support a été amélioré. Depuis longtemps, Buildroot était bloqué sur la version 2.4, car Python est un logiciel particulièrement difficile à « cross‐compiler ». Cette mise à jour permet à Buildroot de bénéficier d'une version récente de Python. À noter que deux modules Python externes, _python‐mad_ et _python‐serial_ ont été ajoutés pour montrer comment de tels modules peuvent être intégrés à Buildroot. * Un ensemble de paquets pour le support **GStreamer des _codecs_ pour le [DSP](http://fr.wikipedia.org/wiki/Digital_signal_processor "Digital Signal Processor") [[OMAP]]** de Texas Instruments a été ajouté. * De nouveaux paquets ont fait leur apparition, avec notamment _mpd_ (Music Player Daemon), de nombreuses bibliothèques de décodage audio liées à _mpd_, mais aussi les bancs d'essais _whestone_ et _dhrystone_ et d'autres outils comme _xmlstarlet_, _fbgrab_, _irda-utils_, _lsuio_, etc.. Ce cycle a également été marqué par une réunion de trois développeurs Buildroot à Bruxelles, juste après le [FOSDEM](http://www.fosdem.org/2011/about/fosdem "Free and Open source Software Developers' European Meeting — réunion européenne des développeurs de logiciels libres et open source"). Une tradition semble maintenant s'être établie pour le projet Buildroot, avec deux réunions par an : une à Bruxelles après le FOSDEM, et une autre quelque part en Europe, après [ELCE](http://www.embeddedlinuxconference.com/elc_europe10/index.html "Embedded Linux Conference Europe — conférence européenne Linux embarqué"). Voir également [cet article](http://free-electrons.com/blog/buildroot-201102/) pour plus détails sur cette version. Dans les perspectives pour la prochaine version 2011.05, on trouve : * conversion de tous les paquets restants (une vingtaine) vers les infrastructures _gentargets_ ou _autotargets_ ; * amélioration du support pour les _toolchains_ externes et la notion de [[SDK]], probablement avec un petit adaptateur (_wrapper_) pour les outils de compilation croisée, afin de simplifier leur utilisation ; * avancement sur le support des paquets (avec pour objectif final de pouvoir générer et installer des paquets `« .ipk »`).

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