SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Solutions IHM pour Linux embarqué

Pierre Ficheux (pierre.ficheux@openwide.fr)

CTO Open Wide Ingénierie

Octobre 2011




                    Solutions IHM Linux embarqué   1
Programme

●
    Présentation d'Open Wide
●
    IHM et embarqué
●
    Les approches possibles
●
    X11 et Framebuffer
●
    Les bibliothèques graphiques
        –   DirectFB, SDL
●
    Les toolkits
        –   Qt
        –   EFL
        –   GTK
●
    HMTL et Flash
●
    Android
                      Solutions IHM Linux embarqué           2
Présentation Open Wide


●
    SSII/SSLL créée en septembre 2001 avec Thales
    et Schneider
●
    Indépendant depuis 2009
●
    Environ 100 salariés sur Paris et Lyon
●
    Industrialisation de composants open source
●
    Quatre activités :
       –   OW Système d'Information
       –   OW Outsourcing: hébergement
       –   OW Ingénierie: informatique industrielle
       –   OW Technologies: composants Java




                         Solutions IHM Linux embarqué        3
IHM et embarqué


●
    IHM = affichage et saisies
●
    Ce fut longtemps un problème mineur car peu
    utilisé dans l’embarqué
        –   Système autonome sans affichage (RTOS)
        –   Configuration par réseau (SNMP, HTTP, …)
●
    Evolution des systèmes, passage du RTOS au
    multimédia
        –   Set-top box: OS21 → Linux
        –   Smartphones
        –   Industriel → début de l’utilisation d’Android
●
    L'IHM n'est (était) pas le sujet de prédilection des
    spécialistes du logiciel embarqué :-)
                        Solutions IHM Linux embarqué                 4
Plusieurs approches


●
    Développement d'une application embarquée
        –   Le cas « général » proche du desktop Linux
●
    Utilisation d'un navigateur web (HTMLx,
    Javascript)
        –   Données en local → similaire au cas précédent
        –   De plus en plus de possibilités avec HTML5 :)
●
    Interface en Adobe Flash
        –   Propriétaire
        –   Bien vu par les équipes marketing !
        –   Consommateur de ressources
        –   Fréquemment utilisé pour les set-top box
                           Solutions IHM Linux embarqué               5
Quels types de périphériques ?


●
    Affichage fréquent sur des périphériques variés :
    –   LCD monochrome « bas de gamme »
    –   Ecran souvent tactile (attention aux résolutions
        étranges)
    –   Accélération graphique de plus en plus fréquente
        sur les cartes embarquées (Freescale i.MX, ...)
●
    Autres périphériques (USB ?)
         –   Clavier spécial
         –   Télécommande infra-rouge
         –   Molette / manette
         –   Périphériques spéciaux

                         Solutions IHM Linux embarqué      6
X11, 1/2
●
    Linux est un UNIX
        –   Mode texte par défaut
        –   « X Window System » ou X11 à partir de 84
●
    Créé au MIT
●
    Système graphique réparti, modèle
    client/serveur → Xfree86 (x86), X.org
●
    Puissant mais lourd + API complexe
●
    Approche répartie rarement utilisée !

            Utilisation de X11 →




                       Solutions IHM Linux embarqué          7
X11, 2/2

 ●
     Initialement peu adapté à l’embarqué
 ●
     Retour grâce à plusieurs éléments :
          –   Augmentation de la puissance des CPU
               embarqués
          –   Utilisation de l'Atom/x86
          –   Le pilote accéléré devient commun au desktop
                et à l'embarqué
  Motif

Qt, GTK




                          Solutions IHM Linux embarqué          8
Le framebuffer 1/2


●
    Pilotage de la carte directement par le noyau
    (/dev/fb0 → plus de client/serveur)
●
    Mode VGA, SVGA, VESA ou (parfois) accéléré
●
    Programmation très bas-niveau (pixel)
            $ cp /dev/fb0 copie_ecran.raw
●
    Avantages :
        –   Léger (faible consommation RAM)
        –   Démarrage rapide
●
    Inconvénients :
        –   Pilote spécial → drivers/video
        –   Peu « standard » par rapport à X11
                       Solutions IHM Linux embarqué                9
Le framebuffer 2/2


●
    Exemples d'utilitaires/bibliothèques
    disponibles/compatibles
        –   Bas niveau → fbset, fbi, fbdump, ...
        –   SVGALIB → DOOM :-)
        –   DirectFB (abstraction du FB)
        –   SDL
        –   Qt
        –   X11 sur FB




                         Solutions IHM Linux embarqué               10
Bibliothèques graphiques


●
    Se placent « au dessus » de X11 ou du
    framebuffer
●
    Deux catégories
        –   Les bibliothèques d'abstraction → portabilité
              mais pas d'objets graphiques évolués (SDL,
              DirectFB)
        –   Les toolkits graphiques → fournissent des
              objets graphiques et peuvent se placer au
              dessus des bibliothèques d'abstraction
            Qt → X11 (Xlib)
            Qt → FB
            Qt → DirectFB
                       Solutions IHM Linux embarqué         11
●
    Bibliothèque d’
    « abstraction » du
    framebuffer
●
    Fonctionne avec le
    framebuffer Linux
    mais également avec
    X11 (--enable-x11)
●
    Prise en compte des
    entrées (souris,
    clavier, …)
●
    Fournit des pilotes FB
    accélérés


                     Solutions IHM Linux embarqué   12
Exemple DirectFB




Solutions IHM Linux embarqué                 13
●
    Fournit des primitives graphiques ET audio
●
    Portables sur Linux, Windows, Mac OS X, QNX,
    WinCE, OS2...
●
    Pour Linux, utilisable sur framebuffer, DirectFB,
    X11
●
    Utilisée pour le portage d’applications
    graphiques (jeux) et légères
●
    Gestion basique de l’écran: fenêtres,
    transparence, polices de caractères, ...



                     Solutions IHM Linux embarqué       14
Exemple SDL




Solutions IHM Linux embarqué             15
Les « toolkits » graphiques

●
    Fournissent un ensemble d’objets graphiques
        –   Menus
        –   Boutons
        –   Boites de dialogues
        –   WebView !
        –   Mediaplayer
●
    Exemples:
        –   Athena widgets, OSF-Motif (X11) → obsolète
        –   Qt
        –   EFL (Enlightenment, E17)
        –   GTK+ (Gimp)
        –   WxWidgets
                          Solutions IHM Linux embarqué     16
●
    Toolkit C++ publiée par Trolltech en 1996 (X11)
●
    Outil multi-plateforme (Unix, Windows, MacOS,
    Symbian, ...)
●
    Connu grâce à KDE !
●
    Dernière version: 4.7.4
●
    Avantages :
        –   X11, FB, DirectFB, QVFb, ...
        –   Excellente documentation
        –   Outil de conception d'interface (QtCreator)
●
    Inconvénients :
        –   Lourd
        –   Avenir / Nokia
                        Solutions IHM Linux embarqué      17
Qt sur Mini2440




Solutions IHM Linux embarqué                18
EFL


●
    Toolkit C basé sur Enlightenment ou E
    (actuellement E17)
●
    Avantages :
        –   Peu gourmand en ressources, rapide
        –   Multiplateforme
        –   Esthétique, modulaire, configurable
●
    Inconvénients
        –   Peu connu
        –   Moins de documentation que pour Qt
        –   Pas de constructeur d'interface
    → Le petit toolkit qui monte :-)
                        Solutions IHM Linux embarqué         19
EFL au frigo !




Solutions IHM Linux embarqué               20
●
    Developpé pour GIMP (Gimp ToolKit)
●
    Toolkit en C multiplateforme
●
    Fonctionne le plus souvent sur X11 → GNOME
●
    Assez peu utilisé dans l'embarqué
●
    Il existe des adaptations sur FB, mais peu
    maintenues




                   Solutions IHM Linux embarqué   21
HTML et/ou Flash


●
    Assure une certaine « indépendance » par
    rapport à la plateforme
●
    Maquettage aisé sur desktop → à double
    tranchant
●
    Attention, l'installation d'un navigateur (Webkit,
    Opera, ...) implique de bonnes capacités
    matérielles pour supporter les technologies
    récentes
●
    Le navigateur lui-même utilise un toolkit !
●
    Approche intéressante dans le mobile pour
    éviter les divers SDK, mais peut elle s'imposer
    dans l'embarqué ?

                     Solutions IHM Linux embarqué                 22
Android

●
    Android n'est pas une IHM, c'est un OS
●
    API de programmation Java (SDK) mais pas de
    bytecode Java
●
    Système Linux – très - modifié (noyau, libc)
●
    NDK en C++ mais peu utilisé
●
    Raz de marée en téléphonie
●
    Apparition en informatique « industrielle » mais
        –   Pas de TR
        –   Compatibilité matérielle
●
    Tiré par l'existence de plateformes peu
    coûteuses (exemple: tablette SAMSUNG) → mais
    peu d'interfaces matérielles
                        Solutions IHM Linux embarqué        23
Questions?




Solutions IHM Linux embarqué           24

Más contenido relacionado

Destacado

Open Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesAlexandre LAHAYE
 
La GéOthermie Diapo20374499
La GéOthermie Diapo20374499La GéOthermie Diapo20374499
La GéOthermie Diapo20374499guestba7adfb
 
Junior Agency - Le design écologique
Junior Agency - Le design écologiqueJunior Agency - Le design écologique
Junior Agency - Le design écologiqueJeff Schneider
 
L’expérience Tri génération
L’expérience Tri génération L’expérience Tri génération
L’expérience Tri génération Alexander Marshall
 
Rapport Potier : Briques génériques du logiciel embarqué
Rapport Potier : Briques génériques du logiciel embarquéRapport Potier : Briques génériques du logiciel embarqué
Rapport Potier : Briques génériques du logiciel embarquéalain Clapaud
 
Interaction homme-machine et mémoire
Interaction homme-machine et mémoireInteraction homme-machine et mémoire
Interaction homme-machine et mémoireIHM'10
 
Introduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileIntroduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileHoussem Rouini
 
Temperature based speed control of fan
Temperature based speed control of fanTemperature based speed control of fan
Temperature based speed control of fanÇdh Suman
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmChristian Charreyre
 
Banerjee_Rishi_Poster (1)
Banerjee_Rishi_Poster (1)Banerjee_Rishi_Poster (1)
Banerjee_Rishi_Poster (1)Rishi Banerjee
 
ASC-400 Multifunction Calibrator - Advantages
ASC-400 Multifunction Calibrator - AdvantagesASC-400 Multifunction Calibrator - Advantages
ASC-400 Multifunction Calibrator - AdvantagesAMETEK STC
 
PowerXR Programmable Power Technology
PowerXR  Programmable Power TechnologyPowerXR  Programmable Power Technology
PowerXR Programmable Power TechnologyPremier Farnell
 
Free Ebooks Download
Free Ebooks DownloadFree Ebooks Download
Free Ebooks DownloadEdhole.com
 
Current mode circuits & voltage mode circuits
Current mode circuits & voltage mode circuits Current mode circuits & voltage mode circuits
Current mode circuits & voltage mode circuits Kevin Gajera
 
DC Power Analyzer, Modular, 600W and Four Slots: N6705A
DC Power Analyzer, Modular, 600W and   Four Slots: N6705ADC Power Analyzer, Modular, 600W and   Four Slots: N6705A
DC Power Analyzer, Modular, 600W and Four Slots: N6705APremier Farnell
 
Hv instructions
Hv instructionsHv instructions
Hv instructionsfriends
 
Eltherm ELSR-Ramp Heat Trace Cable - Spec Sheet
Eltherm ELSR-Ramp Heat Trace Cable - Spec SheetEltherm ELSR-Ramp Heat Trace Cable - Spec Sheet
Eltherm ELSR-Ramp Heat Trace Cable - Spec SheetThorne & Derrick UK
 
ADC - Dual Slope Integrator
ADC - Dual Slope IntegratorADC - Dual Slope Integrator
ADC - Dual Slope IntegratorManjunath Meti
 

Destacado (20)

Open Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarques
 
La GéOthermie Diapo20374499
La GéOthermie Diapo20374499La GéOthermie Diapo20374499
La GéOthermie Diapo20374499
 
Junior Agency - Le design écologique
Junior Agency - Le design écologiqueJunior Agency - Le design écologique
Junior Agency - Le design écologique
 
L’expérience Tri génération
L’expérience Tri génération L’expérience Tri génération
L’expérience Tri génération
 
Rapport Potier : Briques génériques du logiciel embarqué
Rapport Potier : Briques génériques du logiciel embarquéRapport Potier : Briques génériques du logiciel embarqué
Rapport Potier : Briques génériques du logiciel embarqué
 
Interaction homme-machine et mémoire
Interaction homme-machine et mémoireInteraction homme-machine et mémoire
Interaction homme-machine et mémoire
 
Introduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobileIntroduction aux systèmes d'exploitation mobile
Introduction aux systèmes d'exploitation mobile
 
plancactus
plancactusplancactus
plancactus
 
Licences libres et embarqué
Licences libres et embarquéLicences libres et embarqué
Licences libres et embarqué
 
Temperature based speed control of fan
Temperature based speed control of fanTemperature based speed control of fan
Temperature based speed control of fan
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
 
Banerjee_Rishi_Poster (1)
Banerjee_Rishi_Poster (1)Banerjee_Rishi_Poster (1)
Banerjee_Rishi_Poster (1)
 
ASC-400 Multifunction Calibrator - Advantages
ASC-400 Multifunction Calibrator - AdvantagesASC-400 Multifunction Calibrator - Advantages
ASC-400 Multifunction Calibrator - Advantages
 
PowerXR Programmable Power Technology
PowerXR  Programmable Power TechnologyPowerXR  Programmable Power Technology
PowerXR Programmable Power Technology
 
Free Ebooks Download
Free Ebooks DownloadFree Ebooks Download
Free Ebooks Download
 
Current mode circuits & voltage mode circuits
Current mode circuits & voltage mode circuits Current mode circuits & voltage mode circuits
Current mode circuits & voltage mode circuits
 
DC Power Analyzer, Modular, 600W and Four Slots: N6705A
DC Power Analyzer, Modular, 600W and   Four Slots: N6705ADC Power Analyzer, Modular, 600W and   Four Slots: N6705A
DC Power Analyzer, Modular, 600W and Four Slots: N6705A
 
Hv instructions
Hv instructionsHv instructions
Hv instructions
 
Eltherm ELSR-Ramp Heat Trace Cable - Spec Sheet
Eltherm ELSR-Ramp Heat Trace Cable - Spec SheetEltherm ELSR-Ramp Heat Trace Cable - Spec Sheet
Eltherm ELSR-Ramp Heat Trace Cable - Spec Sheet
 
ADC - Dual Slope Integrator
ADC - Dual Slope IntegratorADC - Dual Slope Integrator
ADC - Dual Slope Integrator
 

Similar a Open Wide : Les interfaces graphiques dans l'embarque

Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésAlexandre LAHAYE
 
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libreEtat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel librePierre Ficheux
 
Embarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apportsEmbarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apportsguest3be047
 
Les Interfaces graphiques à la mode
Les Interfaces graphiques à la modeLes Interfaces graphiques à la mode
Les Interfaces graphiques à la modeElwan Ndiaye
 
C3 - Langage C - ISIMA 1 - Troisieme partie
C3 - Langage C - ISIMA 1 - Troisieme partieC3 - Langage C - ISIMA 1 - Troisieme partie
C3 - Langage C - ISIMA 1 - Troisieme partieLoic Yon
 
Linux - Hedi Magroun - AUF - 2008
Linux -  Hedi Magroun - AUF - 2008Linux -  Hedi Magroun - AUF - 2008
Linux - Hedi Magroun - AUF - 2008Hedi Magroun
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmChristian Charreyre
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
Introduction à la SDL2
Introduction à la SDL2Introduction à la SDL2
Introduction à la SDL2Loic Yon
 
OS mobiles alternatifs
OS mobiles alternatifsOS mobiles alternatifs
OS mobiles alternatifsLionel Duboeuf
 
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...jihbed
 
Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009LINAGORA
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 

Similar a Open Wide : Les interfaces graphiques dans l'embarque (20)

Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarqués
 
Cours linux
Cours linuxCours linux
Cours linux
 
Plateformes embarquées
Plateformes embarquéesPlateformes embarquées
Plateformes embarquées
 
Install party
Install partyInstall party
Install party
 
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libreEtat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
 
Embarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apportsEmbarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apports
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
2003 forum asso-faches
2003 forum asso-faches2003 forum asso-faches
2003 forum asso-faches
 
Linux.debut
Linux.debutLinux.debut
Linux.debut
 
Les Interfaces graphiques à la mode
Les Interfaces graphiques à la modeLes Interfaces graphiques à la mode
Les Interfaces graphiques à la mode
 
C3 - Langage C - ISIMA 1 - Troisieme partie
C3 - Langage C - ISIMA 1 - Troisieme partieC3 - Langage C - ISIMA 1 - Troisieme partie
C3 - Langage C - ISIMA 1 - Troisieme partie
 
Linux - Hedi Magroun - AUF - 2008
Linux -  Hedi Magroun - AUF - 2008Linux -  Hedi Magroun - AUF - 2008
Linux - Hedi Magroun - AUF - 2008
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
Introduction à la SDL2
Introduction à la SDL2Introduction à la SDL2
Introduction à la SDL2
 
OS mobiles alternatifs
OS mobiles alternatifsOS mobiles alternatifs
OS mobiles alternatifs
 
Prototypage IoT avec logiciel/matériel libre
Prototypage IoT avec logiciel/matériel librePrototypage IoT avec logiciel/matériel libre
Prototypage IoT avec logiciel/matériel libre
 
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
 
Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 

Más de Alexandre LAHAYE

Building RT image with Yocto
Building RT image with YoctoBuilding RT image with Yocto
Building RT image with YoctoAlexandre LAHAYE
 
openPOWERLINK over Xenomai
openPOWERLINK over XenomaiopenPOWERLINK over Xenomai
openPOWERLINK over XenomaiAlexandre LAHAYE
 
Présentation Bluetooth Low Energy - SMILE ECS
Présentation Bluetooth Low Energy - SMILE ECSPrésentation Bluetooth Low Energy - SMILE ECS
Présentation Bluetooth Low Energy - SMILE ECSAlexandre LAHAYE
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésAlexandre LAHAYE
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésAlexandre LAHAYE
 
OPEN WIDE : L’open source pour les systemes embarques Temps reel
OPEN WIDE : L’open source pour les systemes embarques Temps reelOPEN WIDE : L’open source pour les systemes embarques Temps reel
OPEN WIDE : L’open source pour les systemes embarques Temps reelAlexandre LAHAYE
 

Más de Alexandre LAHAYE (7)

Building RT image with Yocto
Building RT image with YoctoBuilding RT image with Yocto
Building RT image with Yocto
 
openPOWERLINK over Xenomai
openPOWERLINK over XenomaiopenPOWERLINK over Xenomai
openPOWERLINK over Xenomai
 
Présentation Bluetooth Low Energy - SMILE ECS
Présentation Bluetooth Low Energy - SMILE ECSPrésentation Bluetooth Low Energy - SMILE ECS
Présentation Bluetooth Low Energy - SMILE ECS
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectés
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectés
 
Yocto oe
Yocto oeYocto oe
Yocto oe
 
OPEN WIDE : L’open source pour les systemes embarques Temps reel
OPEN WIDE : L’open source pour les systemes embarques Temps reelOPEN WIDE : L’open source pour les systemes embarques Temps reel
OPEN WIDE : L’open source pour les systemes embarques Temps reel
 

Open Wide : Les interfaces graphiques dans l'embarque

  • 1. Solutions IHM pour Linux embarqué Pierre Ficheux (pierre.ficheux@openwide.fr) CTO Open Wide Ingénierie Octobre 2011 Solutions IHM Linux embarqué 1
  • 2. Programme ● Présentation d'Open Wide ● IHM et embarqué ● Les approches possibles ● X11 et Framebuffer ● Les bibliothèques graphiques – DirectFB, SDL ● Les toolkits – Qt – EFL – GTK ● HMTL et Flash ● Android Solutions IHM Linux embarqué 2
  • 3. Présentation Open Wide ● SSII/SSLL créée en septembre 2001 avec Thales et Schneider ● Indépendant depuis 2009 ● Environ 100 salariés sur Paris et Lyon ● Industrialisation de composants open source ● Quatre activités : – OW Système d'Information – OW Outsourcing: hébergement – OW Ingénierie: informatique industrielle – OW Technologies: composants Java Solutions IHM Linux embarqué 3
  • 4. IHM et embarqué ● IHM = affichage et saisies ● Ce fut longtemps un problème mineur car peu utilisé dans l’embarqué – Système autonome sans affichage (RTOS) – Configuration par réseau (SNMP, HTTP, …) ● Evolution des systèmes, passage du RTOS au multimédia – Set-top box: OS21 → Linux – Smartphones – Industriel → début de l’utilisation d’Android ● L'IHM n'est (était) pas le sujet de prédilection des spécialistes du logiciel embarqué :-) Solutions IHM Linux embarqué 4
  • 5. Plusieurs approches ● Développement d'une application embarquée – Le cas « général » proche du desktop Linux ● Utilisation d'un navigateur web (HTMLx, Javascript) – Données en local → similaire au cas précédent – De plus en plus de possibilités avec HTML5 :) ● Interface en Adobe Flash – Propriétaire – Bien vu par les équipes marketing ! – Consommateur de ressources – Fréquemment utilisé pour les set-top box Solutions IHM Linux embarqué 5
  • 6. Quels types de périphériques ? ● Affichage fréquent sur des périphériques variés : – LCD monochrome « bas de gamme » – Ecran souvent tactile (attention aux résolutions étranges) – Accélération graphique de plus en plus fréquente sur les cartes embarquées (Freescale i.MX, ...) ● Autres périphériques (USB ?) – Clavier spécial – Télécommande infra-rouge – Molette / manette – Périphériques spéciaux Solutions IHM Linux embarqué 6
  • 7. X11, 1/2 ● Linux est un UNIX – Mode texte par défaut – « X Window System » ou X11 à partir de 84 ● Créé au MIT ● Système graphique réparti, modèle client/serveur → Xfree86 (x86), X.org ● Puissant mais lourd + API complexe ● Approche répartie rarement utilisée ! Utilisation de X11 → Solutions IHM Linux embarqué 7
  • 8. X11, 2/2 ● Initialement peu adapté à l’embarqué ● Retour grâce à plusieurs éléments : – Augmentation de la puissance des CPU embarqués – Utilisation de l'Atom/x86 – Le pilote accéléré devient commun au desktop et à l'embarqué Motif Qt, GTK Solutions IHM Linux embarqué 8
  • 9. Le framebuffer 1/2 ● Pilotage de la carte directement par le noyau (/dev/fb0 → plus de client/serveur) ● Mode VGA, SVGA, VESA ou (parfois) accéléré ● Programmation très bas-niveau (pixel) $ cp /dev/fb0 copie_ecran.raw ● Avantages : – Léger (faible consommation RAM) – Démarrage rapide ● Inconvénients : – Pilote spécial → drivers/video – Peu « standard » par rapport à X11 Solutions IHM Linux embarqué 9
  • 10. Le framebuffer 2/2 ● Exemples d'utilitaires/bibliothèques disponibles/compatibles – Bas niveau → fbset, fbi, fbdump, ... – SVGALIB → DOOM :-) – DirectFB (abstraction du FB) – SDL – Qt – X11 sur FB Solutions IHM Linux embarqué 10
  • 11. Bibliothèques graphiques ● Se placent « au dessus » de X11 ou du framebuffer ● Deux catégories – Les bibliothèques d'abstraction → portabilité mais pas d'objets graphiques évolués (SDL, DirectFB) – Les toolkits graphiques → fournissent des objets graphiques et peuvent se placer au dessus des bibliothèques d'abstraction Qt → X11 (Xlib) Qt → FB Qt → DirectFB Solutions IHM Linux embarqué 11
  • 12. Bibliothèque d’ « abstraction » du framebuffer ● Fonctionne avec le framebuffer Linux mais également avec X11 (--enable-x11) ● Prise en compte des entrées (souris, clavier, …) ● Fournit des pilotes FB accélérés Solutions IHM Linux embarqué 12
  • 13. Exemple DirectFB Solutions IHM Linux embarqué 13
  • 14. Fournit des primitives graphiques ET audio ● Portables sur Linux, Windows, Mac OS X, QNX, WinCE, OS2... ● Pour Linux, utilisable sur framebuffer, DirectFB, X11 ● Utilisée pour le portage d’applications graphiques (jeux) et légères ● Gestion basique de l’écran: fenêtres, transparence, polices de caractères, ... Solutions IHM Linux embarqué 14
  • 15. Exemple SDL Solutions IHM Linux embarqué 15
  • 16. Les « toolkits » graphiques ● Fournissent un ensemble d’objets graphiques – Menus – Boutons – Boites de dialogues – WebView ! – Mediaplayer ● Exemples: – Athena widgets, OSF-Motif (X11) → obsolète – Qt – EFL (Enlightenment, E17) – GTK+ (Gimp) – WxWidgets Solutions IHM Linux embarqué 16
  • 17. Toolkit C++ publiée par Trolltech en 1996 (X11) ● Outil multi-plateforme (Unix, Windows, MacOS, Symbian, ...) ● Connu grâce à KDE ! ● Dernière version: 4.7.4 ● Avantages : – X11, FB, DirectFB, QVFb, ... – Excellente documentation – Outil de conception d'interface (QtCreator) ● Inconvénients : – Lourd – Avenir / Nokia Solutions IHM Linux embarqué 17
  • 18. Qt sur Mini2440 Solutions IHM Linux embarqué 18
  • 19. EFL ● Toolkit C basé sur Enlightenment ou E (actuellement E17) ● Avantages : – Peu gourmand en ressources, rapide – Multiplateforme – Esthétique, modulaire, configurable ● Inconvénients – Peu connu – Moins de documentation que pour Qt – Pas de constructeur d'interface → Le petit toolkit qui monte :-) Solutions IHM Linux embarqué 19
  • 20. EFL au frigo ! Solutions IHM Linux embarqué 20
  • 21. Developpé pour GIMP (Gimp ToolKit) ● Toolkit en C multiplateforme ● Fonctionne le plus souvent sur X11 → GNOME ● Assez peu utilisé dans l'embarqué ● Il existe des adaptations sur FB, mais peu maintenues Solutions IHM Linux embarqué 21
  • 22. HTML et/ou Flash ● Assure une certaine « indépendance » par rapport à la plateforme ● Maquettage aisé sur desktop → à double tranchant ● Attention, l'installation d'un navigateur (Webkit, Opera, ...) implique de bonnes capacités matérielles pour supporter les technologies récentes ● Le navigateur lui-même utilise un toolkit ! ● Approche intéressante dans le mobile pour éviter les divers SDK, mais peut elle s'imposer dans l'embarqué ? Solutions IHM Linux embarqué 22
  • 23. Android ● Android n'est pas une IHM, c'est un OS ● API de programmation Java (SDK) mais pas de bytecode Java ● Système Linux – très - modifié (noyau, libc) ● NDK en C++ mais peu utilisé ● Raz de marée en téléphonie ● Apparition en informatique « industrielle » mais – Pas de TR – Compatibilité matérielle ● Tiré par l'existence de plateformes peu coûteuses (exemple: tablette SAMSUNG) → mais peu d'interfaces matérielles Solutions IHM Linux embarqué 23