Linux est partout — serveurs web, superordinateurs et la plupart des smartphones du monde — et Linux embarqué est depuis longtemps aussi une option solide pour les petits systèmes. Dans cet épisode d’Elektor Engineering Insights, Michael Opdenacker (Bootlin) explique à Stuart Cording ce que signifie vraiment « Linux embarqué », ce qui a changé au cours de la dernière décennie et comment les débutants peuvent se lancer sans se noyer dans la complexité.

Qu’est-ce que Linux embarqué ?

C’est toujours Linux, mais allégé et configuré pour un appareil et un cas d’utilisation spécifiques. Pensez à un espace utilisateur minimal, un noyau adapté et un processus de démarrage que vous contrôlez. Selon cette définition, Raspberry Pi OS est un système d’exploitation de bureau généraliste, tandis qu’Android (sur téléphones/TV) est un système Linux embarqué. Découvrez-en plus dans la vidéo ci-dessous :
 

 

Qu’est-ce qui a changé depuis ~2012 ?

Ubuntu, Fedora, and Debian - all flavors of embedded Linux
Linux embarqué existe en de nombreuses variantes.
  • Cartes peu coûteuses et puissantes : la disponibilité généralisée du Raspberry Pi, du BeagleBone et d’autres a rendu Linux embarqué accessible.
  • Nouvelles architectures : RISC-V est désormais une option sérieuse, avec des SoC entièrement ouverts.
  • Toolchains : LLVM/Clang peut compiler la plupart de la pile — y compris le noyau Linux ; Rust arrive dans le code système.
  • Accent sur la sécurité : plus d’appareils connectés signifie une surface d’attaque élargie ; le travail sur le noyau continue pour réduire le non-déterminisme et renforcer les paramètres par défaut.
  • GPU : les pilotes open source ont mûri, simplifiant le déploiement.
  • Systèmes de build : Yocto Project (OpenEmbedded) est extrêmement flexible ; Buildroot reste une alternative plus simple.
  • Noyaux LTS : les versions de support à long terme de la communauté rendent la maintenance durable réaliste.
  • Mise en service des cartes plus facile : les device trees et les pratiques mainline abaissent la barrière d’entrée.

Bien démarrer (sans douleur)

  1. Commencez petit : utilisez QEMU ou une carte courante (Raspberry Pi, BeagleBone, Libre Computer).

  2. Construisez les trois éléments essentiels : bootloader, noyau et un rootfs minimal (BusyBox).

  3. Ajoutez progressivement des fonctionnalités : n’ajoutez que ce que vous comprenez.

  4. Pour les périphériques, préférez les pilotes noyau aux bibliothèques utilisateur ad hoc si vous recherchez portabilité et performances.

  5. Utilisez Linux comme machine de build (natif ou en VM) afin que l’aide communautaire et les scripts correspondent à votre environnement.

Temps réel aujourd’hui

PREEMPT_RT est proche d’être entièrement intégré en mainline et peut fournir des latences déterministes adaptées à de nombreuses applications. Les besoins de temps réel strict exigent une conception système soignée (priorités, pré-allocation) et, dans certains cas, une approche double noyau comme Xenomai.

Outils & ressources mentionnés

  • Couches Yocto Project (par ex. meta-clang) pour d’autres toolchains
  • Buildroot pour des images rapides et simples
  • Formations et documentation Bootlin pour le noyau, les pilotes et les systèmes de build


Extrait de EEI #10 : Embedded Linux — conversation with Michael Opdenacker (Bootlin).