Tour d’horizon des plateformes pour systèmes
(Linux ?) embarqués


Pierre Ficheux (pierre.ficheux@openwide.fr)

Avril 2013




                        Conférence OWI avril 2013   1
Présentation Open Wide


●   SSII/SSLL créée en septembre 2001 avec Thales et
    Schneider
●   Indépendante depuis 2009
●   Environ 110 salariés sur Paris, Lyon et Toulouse
    (depuis janvier 2012)
●   Industrialisation de composants open source
●   Trois activités :
        –   OW Système d'Information (Java/PHP)
        –   OW Outsourcing: hébergement
        –   OW Ingénierie: informatique industrielle




                              Conférence OWI avril 2013                2
Présentation PF
●   Ingénieur Arts et Métiers + Sup'Aéro
●   Utilisateur de logiciels libres depuis 1989
●   Utilisateur de Linux depuis 1992
●   Auteur des 4 éditions de l'ouvrage « Linux embarqué »
    (Eyrolles), 4ème édition parue en juin 2012
●   Auteur GNU Linux Magazine et Open Silicium
●   CTO Open Wide Ingénierie, enseignant EPITA




                          Conférence OWI avril 2013                 3
Introduction

●   Un système embarqué est l’association « matériel » et
    « logiciel »
●   Plusieurs manières d’exploiter le matériel
         –   Application exécutée directement sur le matériel →
               « bare metal »
         –   Application exécutée dans un OS (Linux, RTEMS, …)
●   Le matériel est rarement évoqué → banalisation de la
    plateforme x86
●   Le cas de l’embarqué est assez différent :
         –   Longue durée de fonctionnement
         –   Consommation !
         –   Coût pour les produits « grand public »
●   L’OS permet une abstraction – partielle - de la plate
    forme
                              Conférence OWI avril 2013              4
Informatique industrielle vs
                                                         embarquée
●   Informatique industrielle → une application sur une
    plate forme classique « durcie »
        –   Pas de contrainte mécanique ni énergétique
        –   Souvent du x86 avec un OS évolué (Linux, RTOS, ...)
        –   Utilisation d’un disque dur
        –   Cas typique : banc de test
        –   En général, peu de contrainte concernant l’évolution du
              système (échange de carte mère x86, POSIX)
●   Informatique embarquée
        –   Limitation de la puissance matérielle
        –   Portabilité réduite (si pas d’OS ou OS propriétaire)
        –   Utilisation fréquente de solutions mixtes (FPGA)
        –   Introduction récente du multi processeur

                             Conférence OWI avril 2013                5
Principales architectures
●   ARM
          –   Leader officiel de l'embarqué
          –   Large spectre d’utilisation (du micro-contrôleur au
                « serveur ») et de prix !
●   x86
          –   Progression dans l’embarqué « complexe »
          –   Reste la plateforme de référence (Linux)
●   PowerPC
          –   En perte de vitesse sauf sur certains marchés
●   Plateformes spéciales (Soft core)
          –   Microblaze
          –   Nios II
●   La qualité des BSP (logiciel) disponibles est un critère
    fondamental pour le choix de la plateforme (et
    réciproquement)      Conférence OWI avril 2013                  6
Choix d’une carte mère
●   Le choix est relativement simple dans le cas du x86
        –   Compatibilité
        –   Utilisation proche de celle du PC industriel (exemple :
              PC/104, ITX)
        –   Souvent pour petites séries mais il y a désormais des
              téléphones x86 !
●   Choix plus complexe pour ARM
        –   Design de carte ou achat
        –   Design de carte complète ou module CPU
        –   Offre commerciale nombreuse et alléchante au niveau du
              prix
        –   ATTENTION au support matériel ET logiciel et à la
              maintenance à long terme (CPU, composants)
        –   Carte de « hobbyiste » vs carte industrielle

                             Conférence OWI avril 2013                 7
Utilisation de module


●   Faible encombrement (SODIMM)
●   Parfois Interchangeable ARM9 / ARM11 / Cortex
●   Design simplifié
        –   Le module inclut les principales fonctions : CPU, réseau,
              UART, flash, …
        –   Design uniquement effectué sur les « fonctions »
              applicatives
●   On peut évaluer le module grâce à un kit beaucoup
    moins onéreux que les cartes d’évaluation des
    constructeurs
        –   Modules <= 100€
        –   Kit <= 200€


                            Conférence OWI avril 2013                       8
Modules i.MX/Eukréa et carte
                                                 d’évaluation




ARM9 / ARM11 / Cortex A8/A9




                          Conférence OWI avril 2013          9
Module OVERO / GUMSTIX



                CPU OMAP3503 (Cortex-A8)




Conférence OWI avril 2013                  10
Carte Armadeus (+ FPGA)




CPU i.MX27
FPGA Spartan 3A




                  Conférence OWI avril 2013            11
Cartes «hobbyiste »
●   En général des cartes intégrées (pas de module)
    réalisées en « grande » série
        –   Mini2440 (SAMSUNG S3C24xx)
        –   BeagleBoard / BeagleBone (OMAP)
        –   Raspberry Pi (ARM11) 4000 cartes / jour !
●   Souvent réalisées dans un but éducatif (BeagleBoard,
    RPi)
●   Qualité de fabrication parfois douteuse (Mini2440)
●   Fragilité électronique (RPi)
●   Attention au support logiciel (mainline?)
●   Faible coût → à partir de 22$ pour la RPi A, 35$ pour la
    B
●   Utilisation limitée à des maquettes !

                            Conférence OWI avril 2013                    12
Carte Raspberry Pi (Rpi) B




Conférence OWI avril 2013             13
Support Logiciel (Linux)

●   L’intérêt de Linux réside dans l’utilisation de la
    communauté
             « There is no embedded Linux, there is only Linux » (D
               Woodhouse, Intel)
●   Dans le cas de Linux, 3 niveaux de « compatibilité »
         –   Support mainline → intégré au noyau officiel
         –   « Fork » du noyau Linux (github?) avec évolution
         –   Version spéciale du noyau (tar+gz), peu ou pas
               d’évolution:-(
●   L’absence de support mainline est problématique au
    niveau industriel
         –   Compatibilité avec les « patch » (extensions, corrections)
         –   Évolution de certaines API (réseau, ...)
         –   Qualité des pilotes fournis
                              Conférence OWI avril 2013                   14
Influence de l’architecture
●   L’architecture x86 est (quasiment) mainline
●   L’architecture PowerPC utilise le device tree qui décrit
    le matériel plutôt que de le définir de manière statique
    → configuration dynamique au démarrage
●   ARM Ltd. Fournit le coeur de CPU mais les
    périphériques (timer, UART, …) dépendent du fondeur
●   L’architecture ARM est « statique » même si le device
    tree est en cours d’intégration
●   Le support (BSP) d’une carte ARM est défini par
           arch/arm/mach-XXX/board-YYY.*
    XXX = imx, at91, …




                         Conférence OWI avril 2013               15
Linaro
●   Plusieurs sources pour les noyau (et outils) ARM
        –   Noyau officiel
        –   Constructeurs
        –   Sociétés tierces (Pengutronix, DenX, Mentor
              Graphics/CodeSourcery…)
●   Linaro est fondée en 2010 par les principaux acteurs du
    monde ARM (ARM, TI, Freescale, SAMSUNG, ...)
●   « Linaro is a not-for-profit engineering organization
    consolidating and optimizing open source Linux
    software and tools for the ARM architecture »
●   Linaro fournit des « engineering builds » pour Android,
    OpenEmbedded, Ubuntu sur des plateformes ARM de
    référence → noyau, compilateur
●   Dernière version = 13.03
                             Conférence OWI avril 2013        16
Linaro, suite




Conférence OWI avril 2013              17
Démonstrations


●   Test de différents OS sur Raspberry Pi
        –   Yocto/OE
        –   OpenWrt
        –   RTEMS ?




                        Conférence OWI avril 2013               18
Bibliographie


●   http://www.linaro.org/assets/documents/Linaro_Intro_D
    ec2012.pdf
●   http://www.unixgarden.com/index.php/gnu-linux-
    magazine-hs/linux-et-le-systeme-sur-silicium




                        Conférence OWI avril 2013              19
Questions ?




  Conférence OWI avril 2013   20

Plateformes embarquées

  • 1.
    Tour d’horizon desplateformes pour systèmes (Linux ?) embarqués Pierre Ficheux (pierre.ficheux@openwide.fr) Avril 2013 Conférence OWI avril 2013 1
  • 2.
    Présentation Open Wide ● SSII/SSLL créée en septembre 2001 avec Thales et Schneider ● Indépendante depuis 2009 ● Environ 110 salariés sur Paris, Lyon et Toulouse (depuis janvier 2012) ● Industrialisation de composants open source ● Trois activités : – OW Système d'Information (Java/PHP) – OW Outsourcing: hébergement – OW Ingénierie: informatique industrielle Conférence OWI avril 2013 2
  • 3.
    Présentation PF ● Ingénieur Arts et Métiers + Sup'Aéro ● Utilisateur de logiciels libres depuis 1989 ● Utilisateur de Linux depuis 1992 ● Auteur des 4 éditions de l'ouvrage « Linux embarqué » (Eyrolles), 4ème édition parue en juin 2012 ● Auteur GNU Linux Magazine et Open Silicium ● CTO Open Wide Ingénierie, enseignant EPITA Conférence OWI avril 2013 3
  • 4.
    Introduction ● Un système embarqué est l’association « matériel » et « logiciel » ● Plusieurs manières d’exploiter le matériel – Application exécutée directement sur le matériel → « bare metal » – Application exécutée dans un OS (Linux, RTEMS, …) ● Le matériel est rarement évoqué → banalisation de la plateforme x86 ● Le cas de l’embarqué est assez différent : – Longue durée de fonctionnement – Consommation ! – Coût pour les produits « grand public » ● L’OS permet une abstraction – partielle - de la plate forme Conférence OWI avril 2013 4
  • 5.
    Informatique industrielle vs embarquée ● Informatique industrielle → une application sur une plate forme classique « durcie » – Pas de contrainte mécanique ni énergétique – Souvent du x86 avec un OS évolué (Linux, RTOS, ...) – Utilisation d’un disque dur – Cas typique : banc de test – En général, peu de contrainte concernant l’évolution du système (échange de carte mère x86, POSIX) ● Informatique embarquée – Limitation de la puissance matérielle – Portabilité réduite (si pas d’OS ou OS propriétaire) – Utilisation fréquente de solutions mixtes (FPGA) – Introduction récente du multi processeur Conférence OWI avril 2013 5
  • 6.
    Principales architectures ● ARM – Leader officiel de l'embarqué – Large spectre d’utilisation (du micro-contrôleur au « serveur ») et de prix ! ● x86 – Progression dans l’embarqué « complexe » – Reste la plateforme de référence (Linux) ● PowerPC – En perte de vitesse sauf sur certains marchés ● Plateformes spéciales (Soft core) – Microblaze – Nios II ● La qualité des BSP (logiciel) disponibles est un critère fondamental pour le choix de la plateforme (et réciproquement) Conférence OWI avril 2013 6
  • 7.
    Choix d’une cartemère ● Le choix est relativement simple dans le cas du x86 – Compatibilité – Utilisation proche de celle du PC industriel (exemple : PC/104, ITX) – Souvent pour petites séries mais il y a désormais des téléphones x86 ! ● Choix plus complexe pour ARM – Design de carte ou achat – Design de carte complète ou module CPU – Offre commerciale nombreuse et alléchante au niveau du prix – ATTENTION au support matériel ET logiciel et à la maintenance à long terme (CPU, composants) – Carte de « hobbyiste » vs carte industrielle Conférence OWI avril 2013 7
  • 8.
    Utilisation de module ● Faible encombrement (SODIMM) ● Parfois Interchangeable ARM9 / ARM11 / Cortex ● Design simplifié – Le module inclut les principales fonctions : CPU, réseau, UART, flash, … – Design uniquement effectué sur les « fonctions » applicatives ● On peut évaluer le module grâce à un kit beaucoup moins onéreux que les cartes d’évaluation des constructeurs – Modules <= 100€ – Kit <= 200€ Conférence OWI avril 2013 8
  • 9.
    Modules i.MX/Eukréa etcarte d’évaluation ARM9 / ARM11 / Cortex A8/A9 Conférence OWI avril 2013 9
  • 10.
    Module OVERO /GUMSTIX CPU OMAP3503 (Cortex-A8) Conférence OWI avril 2013 10
  • 11.
    Carte Armadeus (+FPGA) CPU i.MX27 FPGA Spartan 3A Conférence OWI avril 2013 11
  • 12.
    Cartes «hobbyiste » ● En général des cartes intégrées (pas de module) réalisées en « grande » série – Mini2440 (SAMSUNG S3C24xx) – BeagleBoard / BeagleBone (OMAP) – Raspberry Pi (ARM11) 4000 cartes / jour ! ● Souvent réalisées dans un but éducatif (BeagleBoard, RPi) ● Qualité de fabrication parfois douteuse (Mini2440) ● Fragilité électronique (RPi) ● Attention au support logiciel (mainline?) ● Faible coût → à partir de 22$ pour la RPi A, 35$ pour la B ● Utilisation limitée à des maquettes ! Conférence OWI avril 2013 12
  • 13.
    Carte Raspberry Pi(Rpi) B Conférence OWI avril 2013 13
  • 14.
    Support Logiciel (Linux) ● L’intérêt de Linux réside dans l’utilisation de la communauté « There is no embedded Linux, there is only Linux » (D Woodhouse, Intel) ● Dans le cas de Linux, 3 niveaux de « compatibilité » – Support mainline → intégré au noyau officiel – « Fork » du noyau Linux (github?) avec évolution – Version spéciale du noyau (tar+gz), peu ou pas d’évolution:-( ● L’absence de support mainline est problématique au niveau industriel – Compatibilité avec les « patch » (extensions, corrections) – Évolution de certaines API (réseau, ...) – Qualité des pilotes fournis Conférence OWI avril 2013 14
  • 15.
    Influence de l’architecture ● L’architecture x86 est (quasiment) mainline ● L’architecture PowerPC utilise le device tree qui décrit le matériel plutôt que de le définir de manière statique → configuration dynamique au démarrage ● ARM Ltd. Fournit le coeur de CPU mais les périphériques (timer, UART, …) dépendent du fondeur ● L’architecture ARM est « statique » même si le device tree est en cours d’intégration ● Le support (BSP) d’une carte ARM est défini par arch/arm/mach-XXX/board-YYY.* XXX = imx, at91, … Conférence OWI avril 2013 15
  • 16.
    Linaro ● Plusieurs sources pour les noyau (et outils) ARM – Noyau officiel – Constructeurs – Sociétés tierces (Pengutronix, DenX, Mentor Graphics/CodeSourcery…) ● Linaro est fondée en 2010 par les principaux acteurs du monde ARM (ARM, TI, Freescale, SAMSUNG, ...) ● « Linaro is a not-for-profit engineering organization consolidating and optimizing open source Linux software and tools for the ARM architecture » ● Linaro fournit des « engineering builds » pour Android, OpenEmbedded, Ubuntu sur des plateformes ARM de référence → noyau, compilateur ● Dernière version = 13.03 Conférence OWI avril 2013 16
  • 17.
  • 18.
    Démonstrations ● Test de différents OS sur Raspberry Pi – Yocto/OE – OpenWrt – RTEMS ? Conférence OWI avril 2013 18
  • 19.
    Bibliographie ● http://www.linaro.org/assets/documents/Linaro_Intro_D ec2012.pdf ● http://www.unixgarden.com/index.php/gnu-linux- magazine-hs/linux-et-le-systeme-sur-silicium Conférence OWI avril 2013 19
  • 20.
    Questions ? ConférenceOWI avril 2013 20