Conception d'un système Linux industriel

On rencontre aujourd’hui essentiellement trois méthodes de conception pour un système industriel bâti autour de Linux.

Distribution

La première approche – la plus simple – est l’installation d’une distribution Linux (par exemple Debian, Ubuntu, Redhat, Fedora, etc.) dont on ajuste le contenu pour arriver à répondre aux besoins applicatifs voulus. Bien que facile et rapide, cette méthode est plutôt déconseillée, notamment pour les systèmes embarqués (pour en savoir plus, lire « Dois-je utiliser une distribution Linux pour mon projet ? »)

Build system

L’autre solution, que l’on préfère très souvent, est l’utilisation d’un build system qui permet de générer soi-même l’environnement complet de fonctionnement de l’application depuis les plus basses couches (bootloader, kernel, bibliothèques, utilitaires, etc.) jusqu’aux services réseau, environnements graphiques et applications métier. Au fil du temps, de nombreux build systems ont été créés, mais de nos jours, il en existe principalement deux, Buildroot et Yocto Project.

Ces deux systèmes fonctionnent suivant le même principe : télécharger (sous forme de fichiers source), compiler et assembler des packages, sélectionnés durant une phase de configuration, pour produire une image prête à installer sur le système cible. Néanmoins, leurs organisations internes et leurs utilisations diffèrent sensiblement.

Buildroot

Buildroot est plus simple d’accès pour un.e débutant·e sur Linux embarqué. La configuration du système cible et la sélection des packages désirés sont effectuées grâce à un menu clair et bien organisé. Les temps de téléchargement et de compilation des packages sont raisonnables.

Une personne peut prendre en main Buildroot et se sentir à l’aise dans la configuration et la production d’un système embarqué en quelques jours. Notre formation Linux embarqué avec Buildroot permet en trois jours d’aborder les concepts et la pratique nécessaires pour produire un système Linux embarqué personnalisé en intégrant son propre code métier.

Yocto Project

Yocto Project est nettement plus complexe à apprivoiser. La personnalisation d’un système passe par la modification et l’écriture de plusieurs fichiers dans une arborescence peu intuitive. La maîtrise de l’outil Yocto nécessite un investissement en temps sensiblement plus long que Buildroot (compter quelques semaines). Notre formation Linux embarqué avec Yocto Project permet de se familiariser avec tous les concepts et de pratiquer la production d’une image personnalisée. Le développeur ayant déjà une première expérience avec Yocto tirera plutôt parti de notre formation Yocto Project avancé qui lui permettra de maîtriser plus en avant les rouages de Yocto.

La complexité de Yocto s’accompagne d’une richesse plus grande que Buildroot. Le nombre de packages disponibles (bibliothèques, utilitaires, etc.) est plus important et le rythme de leurs mises à jour plus rapide. Bien que cela soit rarement utile pour les systèmes embarqués, Yocto Project propose un mécanisme de mise à jour des packages binaires sur la cible (à l’instar des distributions) en tenant compte des inter-dépendances.

On peut également considérer que Yocto est plus adapté que Buildroot pour industrialiser la production logicielle sur une gamme de plates-formes cibles.

Comment choisir ?

Le choix d’un build system dépend bien évidemment de l’environnement de travail, des personnes chargées de la mise au point du système, des cibles matérielles envisagées, mais nous pouvons globalement suggérer quelques conseils.

Si vous débutez sur Linux embarqué et si vous désirez prototyper rapidement un système en vous concentrant sur votre code applicatif, utilisez plutôt Buildroot.

Si vous désirez développer la version finale de votre produit dont le code applicatif est prêt, en optimisant la pérennité et le déploiement sur des plates-formes (voire des architectures) différentes, utilisez plutôt Yocto Project.

Si vous hésitez et souhaitez être conseillés pour faire le meilleur choix possible et éventuellement être accompagnés dans la réalisation de votre projet, n’hésitez pas à nous contacter !