Un petit tour avec Yocto

J’ai eu récemment l’occasion de mettre en œuvre Yocto. J’avais déjà pas mal pratiqué OpenEmbedded auparavant. On peut voir Yocto comme un projet dérivé d’OpenEmbedded même si c’est un peu plus que cela.

En effet Yocto c’est Poky (un système de build qui s’appuie sur OpenEmbedded), quelques outils de build recréés pour l’occasion (swabber, pseudo, etc..) ainsi qu’un ensemble de méta données permettant de créer des distributions embarquées pour un certain nombre de cibles.

La force mais aussi la faiblesse d’OpenEmbedded c’est que c’est un système de build qui peut tout faire: des images finales de rootfs, mais aussi une distribution complète avec son dépôt de paquets prêt à l’emploi, et cela sur plusieurs plateformes matérielles. Cela en fait un système complexe à mettre en œuvre et à prendre en main. Il y a encore 2 ans, la documentation d’OpenEmbedded participait à cette difficulté de prise en main. En effet OpenEmbedded fournissait bien une documentation mais qui ne prenait vraiment tout son sens seulement une fois que l’on avait commencé à maîtriser le sujet. Ce qui est assez paradoxal pour une documentation. Il manquait les éléments qui permettent aux développeurs de rentrer dans ce système de build.

Avec Yocto j’ai pu constater qu’il y a eu un réel progrès de ce côté
là. Le projet vient avec une documentation beaucoup plus complète et surtout beaucoup plus accessible. La prise en main n’est tout de même pas immédiate mais cette fois cela est plutôt dû à la complexité et à la richesse de l’outil.

En quelques heures je suis quand même parvenu à développer un BSP (Board Support Package) minimaliste pour une carte donnée (en l’occurrence une AT91SAM9G20-EK). Le concept de layer permet d’avoir une couche de configuration spécifique pour un matériel donné. On peut en fait même supporter plusieurs matériels différents et on peut aussi ajouter des paquets spécifiques. En fait un layer n’est rien de plus qu’un ensemble de paquets et de configurations ou de surcharges de configurations. Le BSP n’est qu’un layer spécifique à un matériel (ou à un ensemble de matériel). Comme on le voit même pour le support d’une simple carte électronique, il y a déjà beaucoup de concepts qui entrent en jeu. Il y a aussi déjà de nombreuses façon de faire qui arriveront à la même fin mais qui seront plus ou moins faciles à maintenir. Le concept de BSP se rapproche surtout d’un « guideline » pour permettre à la « communauté Yocto » d’avoir un référentiel commun. Je tâcherai d’illustrer la mise en œuvre d’un BSP sur la carte AT91SAMG20-EK dans mes prochains articles ici même et/ou sur ma page Google+.

Une autre avancée notable de Yocto est son optimisation pour le temps de la première compilation d’une cible « minimale », je suis passé de plus de 3 heures à une légèrement plus d’heure maintenant. Cela reste quand même très long notamment pour une cible qui se veut minimale.

Pour faire une image d’un système avec quelques composants seulement, Buildroot reste largement plus approprié. Pour des systèmes requérant un grand nombre de composants, alors il vient souvent le besoin de fonctions plus avancées comme la gestion d’un dépôt de paquet ou la prise en charge de plusieurs plateformes matérielles par exemple. Dans ce cas-là, Yocto reste la meilleure (la seule?) option d’autant plus que ce projet tend à améliorer les points faibles historiquse d’OpenEmbedded.

Nouvelle formation « Développement système Android »

Android RobotDepuis de nombreuses années, Bootlin a proposé deux sessions de formation pour les développeurs Linux embarqué : une session développement système Linux embarqué focalisée sur les bases pour le développement Linux embarqué (configuration, compilation et utilisation de bootloaders et du noyau, intégration du système et outils de vbuild, compilation croisée, systèmes de fichiers, développement et déboguage d’applications) et une session développement noyau Linux et pilotes de périphériques focalisée sur le développement noyau (APIs noyau pour les drivers, pilotes de périphériques caractère, device model, gestion d’énergie, portage du noyau, etc.). Au total, nous avons donné plusieurs dizaines d’éditions de ces deux sessions un peu partout dans le monde. Tous les supports de ces sessions de formation sont disponibles librement sous une licence libre (Creative Commons CC-BY-SA) et sont donc librement accessibles à l’adresse /docs/.

Nous annonçons maintenant une nouvelle session de formation, appelée Développement Système Android. Il s’agit d’une formation de quatre jours destinée aux ingénieurs qui doivent développer des systèmes embarqués avec le système Android de Google.

Au travers de cours théoriques et de travaux pratiques, cette formation permet de se familiariser avec la compilation et le démarrage d’Android, à l’adaptation d’Android à une nouvelle plateforme matérielle (en supposant que celle-ci est déjà supportée par le noyau Linux), à la construction d’un système réel nécessitant l’accès à des périphériques matériels spécifiques, à la personnalisation du système de fichiers et aux techniques de déboguage. Le programme complet (en version anglaise) est disponible. À nouveau, les supports de formations seront mis à disposition librement au travers de la licence Creative Commons CC-BY-SA.

Si vous êtes intéressé par cette session de formation, vous pouvez:

  • Participer à la session de formation inter-entreprises organisée à Toulouse, France, du 11 au 14 juin 2012.
  • Commander une session sur site qui sera animée dans vos locaux. Voir les détails d’organisation et de coût.

Cette session de formation sera donnée par notre ingénieur Maxime Ripard qui a acquis son expérience Android en travaillant chez Archos sur les tablettes Android, en faisant marcher Android et les travaux pratiques de cette formation sur plusieurs cartes à base de processeur OMAP3, ainsi qu’en assistant aux multiples conférences d’Android Builders Summit.

N’hésitez pas à nous contacter pour de plus amples informations sur cette nouvelle session de formation.

Présentation sur Linaro à SophiaConf 2011

J’aurai bientôt le plaisir de donner une présentation sur Linaro à SophiaConf 2011, lors de la soirée sur le thème Open Source, Mobile et Embarqué, le 4 juillet 2011 à Sophia Antipolis.

Ma présentation fera suite à la keynote de Philippe Garnier, de ST Ericsson, qui marquera le début de la distribution en France de la carte Snowball et le lancement de la Communauté Igloo. Linaro, que je vais présenter, s’est chargé du port de Linux sur cette nouvelle carte.

Voici la description de mon intervention:

Linaro – Ressources techniques pour la communauté ARM Linux

Linaro est une société d’ingénierie à but non lucratif créé en juin 2010 par ARM, Texas Instruments, Freescale, ST-Ericsson, Samsung et IBM. Il s’agit d’une initiative commune pour améliorer et unifier l’infrastructure bas niveau de Linux sur la plateforme ARM. Linaro emploie maintenant plus de 100 ingénieurs dans plusieurs groupes de travail: noyau, compilateurs et outils, graphiques, multimédia, gestion de l’énergie…

Linaro est tout le contraire d’un nième groupement d’industriels ne produisant que des spécifications à usage interne. Son unique vocation est de développer de nouvelles fonctionalités tirant partie des processeurs ARM les plus récents, et de faire intégrer ces contributions dans les versions officielles de la communauté (noyau Linux, compilateurs, QEMU…). Linaro a un fonctionnement complètement ouvert, et n’importe quelle bonne volonté peut participer à ses projets et à ses discussions techniques.

Cette présentation mettra justement en évidence les contributions de Linaro qui ont été intégrées aux sources des projets de la communauté, ou qui le seront prochainement. Attendez-vous à rentrer chez vous avec de nombreuses idées et ressources pour améliorer vos produits à base d’ARM Linux, et pour réduire vos coûts et temps de développement. Nous vous recommandons juste de ne pas en parler à votre hiérarchie, et avec le temps que vous dégagerez, de rejoindre la communauté des développeurs de Linaro 😉

Intervenant: Michael Opdenacker

Michael est le « Community Manager » chez Linaro. Il fera de son mieux pour vous convaincre de rejoindre la commaunauté d’utilisateurs et de développeurs de Linaro, si vous n’en faites pas encore partie. N’hésitez pas à lui envoyer un signal SIGSTOP s’il parle trop longtemps. Michael est aussi le créateur de Bootlin, une société d’ingénierie en Linux embarqué qui est connue mondialement pour toutes les ressources techniques qu’elle publie sous une license de documentation libre.

Support du séminaire « Linux et le temps réel » du 5 mai 2010

Support du séminaire temps-réel à ToulouseAvec soixante participants pour la matinée théorique et vingt-quatre participants pour l’après-midi pratique (le seuil maximum que nous avions fixé), le séminaire « Linux et le temps réel » organisé le mercredi 5 mai 2010 à Toulouse fut un succès. Animé par Thomas Petazzoni de Bootlin et organisé par Captronic, ce séminaire avait pour objectif de donner les principaux éléments concernant l’utilisation du système Linux dans des contextes temps-réel.

La matinée a permis de couvrir les problématiques posées par les contraintes temps réel dans un système Linux embarqué puis deux des principales solutions permettant d’apporter des caractéristiques temps réel au système Linux : le patch PREEMPT_RT et la solution de type co-kernel Xenomai. Les travaux pratiques ont permis aux participants de mettre en œuvre ces deux solutions sur la carte USB-A9263 de notre partenaire Calao Systems, de développer de petites applications simples et de tester la latence des deux solutions.

Suite à ce séminaire, nous mettons en ligne le support de présentation ainsi que les instructions utilisées pour les travaux pratiques de l’après-midi. Vous pouvez télécharger ce document à l’adresse /doc/training/rt/bootlin-seminaire-temps-reel-5-mai-2010-toulouse.pdf.

Bootlin reste disponible pour vous conseiller et vous assister dans le développement de projets embarqués mettant en œuvre Linux embarqué, en particulier avec des aspects temps réel. N’hésitez pas à nous contacter.

Bootlin à l’Embedded Systems Exhibition à Grenoble le 14 octobre 2009

Venez nous rencontrer au salon Embedded Systems Exhibition à Grenoble

Bootlin TotemAvec notre partenaire CALAO Systems, nous partagerons un stand au salon Embedded Systems Exhibition qui se tiendra à Grenoble les 14 et 15 octobre prochains.

N’hésitez donc pas à venir nous rencontrer nous et CALAO sur notre stand, pour:

  • Venir voir les dernières cartes de CALAO, en partie leur kit OLED.
  • Échanger idées et expérience, nous parler de vos projets et demander des conseils informels
  • Nous posez toutes vos questions sur Linux et les solutions libres pour l’embarqué
  • Et bien-sûr, pour faire connaissance!
  • Attention, à cause de l’Embedded Linux Conference Europe 2009 le 15 et le 16, nous ne pourrons être présents sur le stand que le 15. Bien-sûr, nous pourrons aussi nous rencontrer à la conférence si nous y participez.

Nouvelles offres d’emploi chez Bootlin

Penguin workerExperts en noyau et Linux embarqué

Bootlin recherche des contributeurs expérimentés à la communauté du Logiciel Libre, pour satisfaire une demande croissante en développement, conseil et formation sur Linux embarqué et sur le noyau Linux.

Tous les détails sur notre page sur les carrières.

Les plus passionnés auront le plaisir de remarquer que nos postes incluent un « abonnement de fonction » à LWN.net. Winking smiley

Vidéos des JM2L 2006

Journée Méditerranéenne des Logiciels Libres, Sophia Antipolis, France, Mai 2006

  • Python par l’exemple, par Nicolas Duboc:
    vidéo (55 minutes, 403 Mo)
  • Samba, par Gregory Colpart:
    vidéo (66 minutes, 633 Mo)
  • Tiny ERP, par Claude Lelong et Guilhem Juers:
    vidéo (46 minutes, 468 Mo)
  • Ruby On Rails, par Pierre Marchet et Laurent Jacot:
    vidéo (64 minutes, 483 Mo)
  • Linux et l’Écologie, par Michael Opdenacker:
    vidéo (72 minutes, 444 Mo, transparents)
  • Open Xchange, par Gérard Chiocci:
    vidéo (63 minutes, 659 Mo)

Vidéos des RMLL 2005

Rencontres Mondiales du Logiciel Libre, Dijon, France, Juillet 2005