SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Solutions IHM pour Linux embarqué
Contact :Jérémy ROSEN - 01 42 68 28 04 - jeremy.rosen@openwide.fr
NOM
CLIENT
2
Programme
● Présentation d'Open Wide
● IHM et embarqué : spécificités
● Les approches possibles
● Xorg, Wayland et le Framebuffer
● Les bibliothèques graphiques
– DirectFB
– SDL
● Les toolkits
– Qt
– EFL
– GTK
● HMTL5
● Android
NOM
CLIENT
3
Présentation Open Wide
● Entreprise créée en septembre 2001
● Environ 120 salariés sur Paris, Lyon et Toulouse
● 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
NOM
CLIENT
4
IHM et embarqué
● IHM = Interface Home Machine : affichage et saisies
● Ce fut longtemps un problème mineur car peu utilisées dans
l’embarqué
– Système autonome sans affichage (RTOS)
– Configuration par réseau (SNMP, HTTP…)
● Évolution des systèmes, passage du RTOS au multimédia
– Set-top box
– 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é
NOM
CLIENT
5
Particularité des IHM embarquées
● Contraintes classiques de l'embarqué
– Processeur
– RAM
– Carte vidéo, accélération matérielle
● Contraintes sur les périphériques de sortie
– Afficheur LCD
– Écrans de téléphone mobile
– Écrans normaux
● Saisie (et donc ergonomie) spécifique
– Boutons/télécommandes/joystick/main sales
– Touch-screen
– Reconnaissance/saisie vocale
● Environnement de travail
– Compétence des équipes
– Travail déporté/sur émulateur/sans hardware
NOM
CLIENT
6
Plusieurs approches
● Développement d'une application embarquée
– Le cas général, proche du desktop Linux
– Équipe applicatif et graphique similaire
– Travail sur émulateur ou sur plateforme
● Sous-traitance de l'applicatif vers une technologie spécifique
– Android/html5
– Framework très connu
– Compétences faciles à trouver
– Développement séparé du produit final
– Ne dispense pas d'une équipe système
– Pas toujours adapté aux spécificités de l'embarqué
– Pas toujours adaptable aux périphériques spécifiques
NOM
CLIENT
7
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 sur desktop
NOM
CLIENT
8
Le framebuffer 2/2
● Exemples d'utilitaires/bibliothèques disponibles/compatibles
– Bas niveau → fbset, fbi, fbdump, ...
– SVGALIB → DOOM :-)
– DirectFB (abstraction du FB)
– EFL
– SDL
– QtEmbedded
– X11 sur FB
– ...
NOM
CLIENT
9
X11, 1/2
● Linux est un UNIX
– Mode texte par défaut
– « X Window System » ou X11 à partir de 84
– Xorg à partir de 2004
● Créé au MIT
● Système graphique réparti, modèle client/serveur →
XFree86 (x86), X.org
● Puissant mais lourd + API complexe (rendering)
● Approche répartie rarement utilisée
Utilisation de X11 →
NOM
CLIENT
10
X11, 2/2
● Initialement peu adapté à l’embarqué
● Retour grâce à plusieurs éléments :
– L'augmentation de la puissance des CPU embarqués
– L'utilisation de l'Atom/x86
– Le pilote accéléré devient commun au desktop et à l'embarqué
Qt, GTK
Motif
NOM
CLIENT
11
Wayland 1/3
● X11 a atteint ses limites
– Mauvaise intégration au kernel, drivers intégrés à X11
– Protocole réseau inutile
– Protocole au niveau rendering (fonts, inputs, dessin) quasi inutilisé de nos jours
– Pas de compositing, partage de GPU quasi impossible
● Wayland reconstruit sur les besoins modernes
– XOrg a fait passé les drivers dans le noyau (GEM/KMS/DRM)
– Wayland supporte toujours le protocole X via XWayland
● Principalement ce qu'on fait actuellement avec X11, mais
sans couches intermédiaires
NOM
CLIENT
12
Wayland 2/3
Protocole de communication client/compositeur
● Le client dessine dans des buffers mémoire
– Demande des buffers au kernel
– Utilise EGL si nécessaire
– Dessine lui même les widget et les décorations (via des librairies)
● Le compositeur place les buffers à l'écran
– Réécrit et redirige les inputs
– Reçoit les demandes de refresh des clients
– Reçoit les handles vers les buffers des clients
● Pas de fonctions desktop avancées
– Drag & Drop, iconify, XDG
– Délégué à des programmes tiers
NOM
CLIENT
13
Wayland Architecture
● Architecures comparées X/Wayland
NOM
CLIENT
14
Wayland 3/3
● Déjà présent dans le monde de l'embarqué
– Genivi
– Sailfish OS
● Demande une version adaptée des toolkits pour le client
– Supporté par EFL, Gtk+3.10, Qt5, SDL (expérimental)
● Demande un compositeur
– Weston
– Lipstick (Sailfish OS)
– Gtk, Qt, EFL : en cours d'écriture
Wayland n'est pas encore mature mais ce sera sans doute la solution
par défaut pour l'embarqué dans quelques années
NOM
CLIENT
15
Bibliothèques graphiques
● Se placent « au dessus » de X11, Wayland 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
Qt → Wayland
Qt → FB
Qt → DirectFB
NOM
CLIENT
16
● 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
NOM
CLIENT
17
Exemple DirectFB
NOM
CLIENT
18
Bibliothèque principalement concue pour le jeu vidéo et les besoins
que cela entraîne.
● Fournit des primitives graphiques ET audio
● Portables sur Linux, Windows, Mac OS X, IOS, Android
● 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, …
● Supporte OpenGL et Direct3D
● Gestion des Input, du son, du réseau, des threads etc...
NOM
CLIENT
19
Exemple SDL
NOM
CLIENT
20
Les « toolkits » graphiques
● Fournissent un ensemble d’objets graphiques
– Menus
– Boutons
– Boîtes de dialogues
– WebView
– Mediaplayer
● Exemples:
– Athena widgets, OSF-Motif (X11) → obsolète
– WxWidgets → obsolète
– Qt
– EFL (Enlightenment, E18)
– GTK+
NOM
CLIENT
21
● Toolkit C++ publié par Trolltech en 1996 (X11)
● Outil multi-plateforme (Linux (X11, Wayland, DirectFB...),
Windows, MacOS, Android, iOS ...)
● Connu grâce à KDE
● Dernière version: 5.3
● Avantages :
– Couvre plus que la partie graphique
– Excellente documentation
– Outil de conception d'interface wysiwyg (QtCreator)
● Inconvénients :
– Lourd (comparé aux autres)
NOM
CLIENT
22
Qt sur Mini2440
NOM
CLIENT
23
EFL
● Toolkit C
● Avantages :
– Peu gourmand en ressources, rapide
– Taillé pour l'embarqué
– Esthétique, modulaire, configurable
● Inconvénients
– Peu connu
– Moins de documentation que pour Qt
– Pas de constructeur d'interface
NOM
CLIENT
24
EFL au frigo
NOM
CLIENT
25
● Développé pour GIMP (Gimp ToolKit)
● Toolkit en C multiplateforme (Linux, Windows, MacOS X)
● Construit sur la Glib (programmation OO en C, énormément de
fonctions de base)
● Assez peu utilisé dans l'embarqué
● Nécessite X11 ou Wayland (pas de FB)
GTK+
NOM
CLIENT
26
La prochaine version de la norme HTML permettra de développer des
applications complètement offline et non pas seulement des pages web.
●
Assure une certaine « indépendance » par rapport à la plateforme
●
Maquettage aisé sur desktop
●
IHM déportées
●
Supporté nativement par Android et iOS
●
Nécessite un navigateur web récent sur la plateforme (Gecko/firefox,
Blink/Chrome, Webkit/Tizen+Android)
●
Équipe d'IHM avec compétence web (Javascript)
●
Ne dispense pas de l'ingénieur système
●
Intéressant s'il y a une connexion web
●
Toutes les particularités de l'embarqué ne sont pas gérées
HTML
NOM
CLIENT
27
Android
● Android n'est pas une IHM, c'est un OS.
● Difficile à adapter à un HW spécifique, prévu pour des
téléphones.
● Très bien documenté
● Beaucoup de protocoles de communication (NFC, Bluetooth, Wifi,
USB)
● Compétence de développement spécifique.
● La compétence plateforme n'a rien à voir avec la compétence
développement applicatif
Android est surtout intéressant pour des UI déportés (sur le
téléphone de l'utilisateur)
Questions?
Solutions IHM pour Linux embarqué
Contact :Jérémy ROSEN - 01 42 68 28 04 - jeremy.rosen@openwide.fr
NOM
CLIENT
2
Programme
● Présentation d'Open Wide
● IHM et embarqué : spécificités
● Les approches possibles
● Xorg, Wayland et le Framebuffer
● Les bibliothèques graphiques
– DirectFB
– SDL
● Les toolkits
– Qt
– EFL
– GTK
● HMTL5
● Android
NOM
CLIENT
3
Présentation Open Wide
● Entreprise créée en septembre 2001
● Environ 120 salariés sur Paris, Lyon et Toulouse
● 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
NOM
CLIENT
4
IHM et embarqué
● IHM = Interface Home Machine : affichage et saisies
● Ce fut longtemps un problème mineur car peu utilisées dans
l’embarqué
– Système autonome sans affichage (RTOS)
– Configuration par réseau (SNMP, HTTP…)
● Évolution des systèmes, passage du RTOS au multimédia
– Set-top box
– 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é
NOM
CLIENT
5
Particularité des IHM embarquées
● Contraintes classiques de l'embarqué
– Processeur
– RAM
– Carte vidéo, accélération matérielle
● Contraintes sur les périphériques de sortie
– Afficheur LCD
– Écrans de téléphone mobile
– Écrans normaux
● Saisie (et donc ergonomie) spécifique
– Boutons/télécommandes/joystick/main sales
– Touch-screen
– Reconnaissance/saisie vocale
● Environnement de travail
– Compétence des équipes
– Travail déporté/sur émulateur/sans hardware
Google glass (voix/écran)
Smartwatch
Android Wear
NOM
CLIENT
6
Plusieurs approches
● Développement d'une application embarquée
– Le cas général, proche du desktop Linux
– Équipe applicatif et graphique similaire
– Travail sur émulateur ou sur plateforme
● Sous-traitance de l'applicatif vers une technologie spécifique
– Android/html5
– Framework très connu
– Compétences faciles à trouver
– Développement séparé du produit final
– Ne dispense pas d'une équipe système
– Pas toujours adapté aux spécificités de l'embarqué
– Pas toujours adaptable aux périphériques spécifiques
NOM
CLIENT
7
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 sur desktop
NOM
CLIENT
8
Le framebuffer 2/2
● Exemples d'utilitaires/bibliothèques disponibles/compatibles
– Bas niveau → fbset, fbi, fbdump, ...
– SVGALIB → DOOM :-)
– DirectFB (abstraction du FB)
– EFL
– SDL
– QtEmbedded
– X11 sur FB
– ...
NOM
CLIENT
9
X11, 1/2
● Linux est un UNIX
– Mode texte par défaut
– « X Window System » ou X11 à partir de 84
– Xorg à partir de 2004
● Créé au MIT
● Système graphique réparti, modèle client/serveur →
XFree86 (x86), X.org
● Puissant mais lourd + API complexe (rendering)
● Approche répartie rarement utilisée
Utilisation de X11 →
NOM
CLIENT
10
X11, 2/2
● Initialement peu adapté à l’embarqué
● Retour grâce à plusieurs éléments :
– L'augmentation de la puissance des CPU embarqués
– L'utilisation de l'Atom/x86
– Le pilote accéléré devient commun au desktop et à l'embarqué
Qt, GTK
Motif
NOM
CLIENT
11
Wayland 1/3
● X11 a atteint ses limites
– Mauvaise intégration au kernel, drivers intégrés à X11
– Protocole réseau inutile
– Protocole au niveau rendering (fonts, inputs, dessin) quasi inutilisé de nos jours
– Pas de compositing, partage de GPU quasi impossible
● Wayland reconstruit sur les besoins modernes
– XOrg a fait passé les drivers dans le noyau (GEM/KMS/DRM)
– Wayland supporte toujours le protocole X via XWayland
● Principalement ce qu'on fait actuellement avec X11, mais
sans couches intermédiaires
Modifier le dernier point.
NOM
CLIENT
12
Wayland 2/3
Protocole de communication client/compositeur
● Le client dessine dans des buffers mémoire
– Demande des buffers au kernel
– Utilise EGL si nécessaire
– Dessine lui même les widget et les décorations (via des librairies)
● Le compositeur place les buffers à l'écran
– Réécrit et redirige les inputs
– Reçoit les demandes de refresh des clients
– Reçoit les handles vers les buffers des clients
● Pas de fonctions desktop avancées
– Drag & Drop, iconify, XDG
– Délégué à des programmes tiers
http://wayland.freedesktop.org/archit
ecture.html
NOM
CLIENT
13
Wayland Architecture
● Architecures comparées X/Wayland
NOM
CLIENT
14
Wayland 3/3
● Déjà présent dans le monde de l'embarqué
– Genivi
– Sailfish OS
● Demande une version adaptée des toolkits pour le client
– Supporté par EFL, Gtk+3.10, Qt5, SDL (expérimental)
● Demande un compositeur
– Weston
– Lipstick (Sailfish OS)
– Gtk, Qt, EFL : en cours d'écriture
Wayland n'est pas encore mature mais ce sera sans doute la solution
par défaut pour l'embarqué dans quelques années
NOM
CLIENT
15
Bibliothèques graphiques
● Se placent « au dessus » de X11, Wayland 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
Qt → Wayland
Qt → FB
Qt → DirectFB
NOM
CLIENT
16
● 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
Standard avec certains
constructeurs de hardware (sigma)
NOM
CLIENT
17
Exemple DirectFB
NOM
CLIENT
18
Bibliothèque principalement concue pour le jeu vidéo et les besoins
que cela entraîne.
● Fournit des primitives graphiques ET audio
● Portables sur Linux, Windows, Mac OS X, IOS, Android
● 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, …
● Supporte OpenGL et Direct3D
● Gestion des Input, du son, du réseau, des threads etc...
NOM
CLIENT
19
Exemple SDL
NOM
CLIENT
20
Les « toolkits » graphiques
● Fournissent un ensemble d’objets graphiques
– Menus
– Boutons
– Boîtes de dialogues
– WebView
– Mediaplayer
● Exemples:
– Athena widgets, OSF-Motif (X11) → obsolète
– WxWidgets → obsolète
– Qt
– EFL (Enlightenment, E18)
– GTK+
NOM
CLIENT
21
● Toolkit C++ publié par Trolltech en 1996 (X11)
● Outil multi-plateforme (Linux (X11, Wayland, DirectFB...),
Windows, MacOS, Android, iOS ...)
● Connu grâce à KDE
● Dernière version: 5.3
● Avantages :
– Couvre plus que la partie graphique
– Excellente documentation
– Outil de conception d'interface wysiwyg (QtCreator)
● Inconvénients :
– Lourd (comparé aux autres)
NOM
CLIENT
22
Qt sur Mini2440
NOM
CLIENT
23
EFL
● Toolkit C
● Avantages :
– Peu gourmand en ressources, rapide
– Taillé pour l'embarqué
– Esthétique, modulaire, configurable
● Inconvénients
– Peu connu
– Moins de documentation que pour Qt
– Pas de constructeur d'interface
NOM
CLIENT
24
EFL au frigo
NOM
CLIENT
25
● Développé pour GIMP (Gimp ToolKit)
● Toolkit en C multiplateforme (Linux, Windows, MacOS X)
● Construit sur la Glib (programmation OO en C, énormément de
fonctions de base)
● Assez peu utilisé dans l'embarqué
● Nécessite X11 ou Wayland (pas de FB)
GTK+
NOM
CLIENT
26
La prochaine version de la norme HTML permettra de développer des
applications complètement offline et non pas seulement des pages web.
●
Assure une certaine « indépendance » par rapport à la plateforme
●
Maquettage aisé sur desktop
●
IHM déportées
●
Supporté nativement par Android et iOS
●
Nécessite un navigateur web récent sur la plateforme (Gecko/firefox,
Blink/Chrome, Webkit/Tizen+Android)
●
Équipe d'IHM avec compétence web (Javascript)
●
Ne dispense pas de l'ingénieur système
●
Intéressant s'il y a une connexion web
●
Toutes les particularités de l'embarqué ne sont pas gérées
HTML
Eco systeme brouillon
NOM
CLIENT
27
Android
● Android n'est pas une IHM, c'est un OS.
● Difficile à adapter à un HW spécifique, prévu pour des
téléphones.
● Très bien documenté
● Beaucoup de protocoles de communication (NFC, Bluetooth, Wifi,
USB)
● Compétence de développement spécifique.
● La compétence plateforme n'a rien à voir avec la compétence
développement applicatif
Android est surtout intéressant pour des UI déportés (sur le
téléphone de l'utilisateur)
Questions?

Contenu connexe

Similaire à Les technologies Open Source pour les interfaces graphiques embarquées

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
 
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
 
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
 
Rmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-frRmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-frGaëtan Trellu
 
V12N avec Xen et IBM BladeCenter
V12N avec Xen et IBM BladeCenterV12N avec Xen et IBM BladeCenter
V12N avec Xen et IBM BladeCenterParis, France
 
Les Interfaces graphiques à la mode
Les Interfaces graphiques à la modeLes Interfaces graphiques à la mode
Les Interfaces graphiques à la modeElwan Ndiaye
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]Silicon Comté
 
Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...
Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...
Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...Sylvain Galand
 
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPadCoder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPadDavid MEKERSA
 
Introduction à la SDL2
Introduction à la SDL2Introduction à la SDL2
Introduction à la SDL2Loic Yon
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linuxembedded-linux-bdx
 
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
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis GroupIBM France Lab
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 

Similaire à Les technologies Open Source pour les interfaces graphiques embarquées (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
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
Plateformes embarquées
Plateformes embarquéesPlateformes embarquées
Plateformes embarquées
 
Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529
 
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
 
2003 forum asso-faches
2003 forum asso-faches2003 forum asso-faches
2003 forum asso-faches
 
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
 
Rmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-frRmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-fr
 
V12N avec Xen et IBM BladeCenter
V12N avec Xen et IBM BladeCenterV12N avec Xen et IBM BladeCenter
V12N avec Xen et IBM BladeCenter
 
Les Interfaces graphiques à la mode
Les Interfaces graphiques à la modeLes Interfaces graphiques à la mode
Les Interfaces graphiques à la mode
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
Introduction au langage de programmation Lua / Digital apéro [03/12/2014]
 
Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...
Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...
Souris Mobile : Utilisation d'un téléphone portable comme périphérique d'un o...
 
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPadCoder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
 
Introduction à la SDL2
Introduction à la SDL2Introduction à la SDL2
Introduction à la SDL2
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linux
 
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
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 

Plus 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 : les licences libres.
Open Wide : les licences libres. Open Wide : les licences libres.
Open Wide : les licences libres. Alexandre 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
 

Plus de Alexandre LAHAYE (8)

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 : les licences libres.
Open Wide : les licences libres. Open Wide : les licences libres.
Open Wide : les licences libres.
 
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
 

Dernier

BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleuridelewebmestre
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsidelewebmestre
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...idelewebmestre
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptbentaha1011
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineidelewebmestre
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en Franceidelewebmestre
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcsidelewebmestre
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLidelewebmestre
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresidelewebmestre
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogneidelewebmestre
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...idelewebmestre
 
Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileCompersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileMBouderbala
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsidelewebmestre
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxdocteurgyneco1
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airidelewebmestre
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...idelewebmestre
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...idelewebmestre
 

Dernier (20)

BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en France
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
 
Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileCompersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huile
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
 

Les technologies Open Source pour les interfaces graphiques embarquées

  • 1. Solutions IHM pour Linux embarqué Contact :Jérémy ROSEN - 01 42 68 28 04 - jeremy.rosen@openwide.fr
  • 2. NOM CLIENT 2 Programme ● Présentation d'Open Wide ● IHM et embarqué : spécificités ● Les approches possibles ● Xorg, Wayland et le Framebuffer ● Les bibliothèques graphiques – DirectFB – SDL ● Les toolkits – Qt – EFL – GTK ● HMTL5 ● Android
  • 3. NOM CLIENT 3 Présentation Open Wide ● Entreprise créée en septembre 2001 ● Environ 120 salariés sur Paris, Lyon et Toulouse ● 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
  • 4. NOM CLIENT 4 IHM et embarqué ● IHM = Interface Home Machine : affichage et saisies ● Ce fut longtemps un problème mineur car peu utilisées dans l’embarqué – Système autonome sans affichage (RTOS) – Configuration par réseau (SNMP, HTTP…) ● Évolution des systèmes, passage du RTOS au multimédia – Set-top box – 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é
  • 5. NOM CLIENT 5 Particularité des IHM embarquées ● Contraintes classiques de l'embarqué – Processeur – RAM – Carte vidéo, accélération matérielle ● Contraintes sur les périphériques de sortie – Afficheur LCD – Écrans de téléphone mobile – Écrans normaux ● Saisie (et donc ergonomie) spécifique – Boutons/télécommandes/joystick/main sales – Touch-screen – Reconnaissance/saisie vocale ● Environnement de travail – Compétence des équipes – Travail déporté/sur émulateur/sans hardware
  • 6. NOM CLIENT 6 Plusieurs approches ● Développement d'une application embarquée – Le cas général, proche du desktop Linux – Équipe applicatif et graphique similaire – Travail sur émulateur ou sur plateforme ● Sous-traitance de l'applicatif vers une technologie spécifique – Android/html5 – Framework très connu – Compétences faciles à trouver – Développement séparé du produit final – Ne dispense pas d'une équipe système – Pas toujours adapté aux spécificités de l'embarqué – Pas toujours adaptable aux périphériques spécifiques
  • 7. NOM CLIENT 7 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 sur desktop
  • 8. NOM CLIENT 8 Le framebuffer 2/2 ● Exemples d'utilitaires/bibliothèques disponibles/compatibles – Bas niveau → fbset, fbi, fbdump, ... – SVGALIB → DOOM :-) – DirectFB (abstraction du FB) – EFL – SDL – QtEmbedded – X11 sur FB – ...
  • 9. NOM CLIENT 9 X11, 1/2 ● Linux est un UNIX – Mode texte par défaut – « X Window System » ou X11 à partir de 84 – Xorg à partir de 2004 ● Créé au MIT ● Système graphique réparti, modèle client/serveur → XFree86 (x86), X.org ● Puissant mais lourd + API complexe (rendering) ● Approche répartie rarement utilisée Utilisation de X11 →
  • 10. NOM CLIENT 10 X11, 2/2 ● Initialement peu adapté à l’embarqué ● Retour grâce à plusieurs éléments : – L'augmentation de la puissance des CPU embarqués – L'utilisation de l'Atom/x86 – Le pilote accéléré devient commun au desktop et à l'embarqué Qt, GTK Motif
  • 11. NOM CLIENT 11 Wayland 1/3 ● X11 a atteint ses limites – Mauvaise intégration au kernel, drivers intégrés à X11 – Protocole réseau inutile – Protocole au niveau rendering (fonts, inputs, dessin) quasi inutilisé de nos jours – Pas de compositing, partage de GPU quasi impossible ● Wayland reconstruit sur les besoins modernes – XOrg a fait passé les drivers dans le noyau (GEM/KMS/DRM) – Wayland supporte toujours le protocole X via XWayland ● Principalement ce qu'on fait actuellement avec X11, mais sans couches intermédiaires
  • 12. NOM CLIENT 12 Wayland 2/3 Protocole de communication client/compositeur ● Le client dessine dans des buffers mémoire – Demande des buffers au kernel – Utilise EGL si nécessaire – Dessine lui même les widget et les décorations (via des librairies) ● Le compositeur place les buffers à l'écran – Réécrit et redirige les inputs – Reçoit les demandes de refresh des clients – Reçoit les handles vers les buffers des clients ● Pas de fonctions desktop avancées – Drag & Drop, iconify, XDG – Délégué à des programmes tiers
  • 14. NOM CLIENT 14 Wayland 3/3 ● Déjà présent dans le monde de l'embarqué – Genivi – Sailfish OS ● Demande une version adaptée des toolkits pour le client – Supporté par EFL, Gtk+3.10, Qt5, SDL (expérimental) ● Demande un compositeur – Weston – Lipstick (Sailfish OS) – Gtk, Qt, EFL : en cours d'écriture Wayland n'est pas encore mature mais ce sera sans doute la solution par défaut pour l'embarqué dans quelques années
  • 15. NOM CLIENT 15 Bibliothèques graphiques ● Se placent « au dessus » de X11, Wayland 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 Qt → Wayland Qt → FB Qt → DirectFB
  • 16. NOM CLIENT 16 ● 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
  • 18. NOM CLIENT 18 Bibliothèque principalement concue pour le jeu vidéo et les besoins que cela entraîne. ● Fournit des primitives graphiques ET audio ● Portables sur Linux, Windows, Mac OS X, IOS, Android ● 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, … ● Supporte OpenGL et Direct3D ● Gestion des Input, du son, du réseau, des threads etc...
  • 20. NOM CLIENT 20 Les « toolkits » graphiques ● Fournissent un ensemble d’objets graphiques – Menus – Boutons – Boîtes de dialogues – WebView – Mediaplayer ● Exemples: – Athena widgets, OSF-Motif (X11) → obsolète – WxWidgets → obsolète – Qt – EFL (Enlightenment, E18) – GTK+
  • 21. NOM CLIENT 21 ● Toolkit C++ publié par Trolltech en 1996 (X11) ● Outil multi-plateforme (Linux (X11, Wayland, DirectFB...), Windows, MacOS, Android, iOS ...) ● Connu grâce à KDE ● Dernière version: 5.3 ● Avantages : – Couvre plus que la partie graphique – Excellente documentation – Outil de conception d'interface wysiwyg (QtCreator) ● Inconvénients : – Lourd (comparé aux autres)
  • 23. NOM CLIENT 23 EFL ● Toolkit C ● Avantages : – Peu gourmand en ressources, rapide – Taillé pour l'embarqué – Esthétique, modulaire, configurable ● Inconvénients – Peu connu – Moins de documentation que pour Qt – Pas de constructeur d'interface
  • 25. NOM CLIENT 25 ● Développé pour GIMP (Gimp ToolKit) ● Toolkit en C multiplateforme (Linux, Windows, MacOS X) ● Construit sur la Glib (programmation OO en C, énormément de fonctions de base) ● Assez peu utilisé dans l'embarqué ● Nécessite X11 ou Wayland (pas de FB) GTK+
  • 26. NOM CLIENT 26 La prochaine version de la norme HTML permettra de développer des applications complètement offline et non pas seulement des pages web. ● Assure une certaine « indépendance » par rapport à la plateforme ● Maquettage aisé sur desktop ● IHM déportées ● Supporté nativement par Android et iOS ● Nécessite un navigateur web récent sur la plateforme (Gecko/firefox, Blink/Chrome, Webkit/Tizen+Android) ● Équipe d'IHM avec compétence web (Javascript) ● Ne dispense pas de l'ingénieur système ● Intéressant s'il y a une connexion web ● Toutes les particularités de l'embarqué ne sont pas gérées HTML
  • 27. NOM CLIENT 27 Android ● Android n'est pas une IHM, c'est un OS. ● Difficile à adapter à un HW spécifique, prévu pour des téléphones. ● Très bien documenté ● Beaucoup de protocoles de communication (NFC, Bluetooth, Wifi, USB) ● Compétence de développement spécifique. ● La compétence plateforme n'a rien à voir avec la compétence développement applicatif Android est surtout intéressant pour des UI déportés (sur le téléphone de l'utilisateur)
  • 29. Solutions IHM pour Linux embarqué Contact :Jérémy ROSEN - 01 42 68 28 04 - jeremy.rosen@openwide.fr
  • 30. NOM CLIENT 2 Programme ● Présentation d'Open Wide ● IHM et embarqué : spécificités ● Les approches possibles ● Xorg, Wayland et le Framebuffer ● Les bibliothèques graphiques – DirectFB – SDL ● Les toolkits – Qt – EFL – GTK ● HMTL5 ● Android
  • 31. NOM CLIENT 3 Présentation Open Wide ● Entreprise créée en septembre 2001 ● Environ 120 salariés sur Paris, Lyon et Toulouse ● 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
  • 32. NOM CLIENT 4 IHM et embarqué ● IHM = Interface Home Machine : affichage et saisies ● Ce fut longtemps un problème mineur car peu utilisées dans l’embarqué – Système autonome sans affichage (RTOS) – Configuration par réseau (SNMP, HTTP…) ● Évolution des systèmes, passage du RTOS au multimédia – Set-top box – 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é
  • 33. NOM CLIENT 5 Particularité des IHM embarquées ● Contraintes classiques de l'embarqué – Processeur – RAM – Carte vidéo, accélération matérielle ● Contraintes sur les périphériques de sortie – Afficheur LCD – Écrans de téléphone mobile – Écrans normaux ● Saisie (et donc ergonomie) spécifique – Boutons/télécommandes/joystick/main sales – Touch-screen – Reconnaissance/saisie vocale ● Environnement de travail – Compétence des équipes – Travail déporté/sur émulateur/sans hardware Google glass (voix/écran) Smartwatch Android Wear
  • 34. NOM CLIENT 6 Plusieurs approches ● Développement d'une application embarquée – Le cas général, proche du desktop Linux – Équipe applicatif et graphique similaire – Travail sur émulateur ou sur plateforme ● Sous-traitance de l'applicatif vers une technologie spécifique – Android/html5 – Framework très connu – Compétences faciles à trouver – Développement séparé du produit final – Ne dispense pas d'une équipe système – Pas toujours adapté aux spécificités de l'embarqué – Pas toujours adaptable aux périphériques spécifiques
  • 35. NOM CLIENT 7 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 sur desktop
  • 36. NOM CLIENT 8 Le framebuffer 2/2 ● Exemples d'utilitaires/bibliothèques disponibles/compatibles – Bas niveau → fbset, fbi, fbdump, ... – SVGALIB → DOOM :-) – DirectFB (abstraction du FB) – EFL – SDL – QtEmbedded – X11 sur FB – ...
  • 37. NOM CLIENT 9 X11, 1/2 ● Linux est un UNIX – Mode texte par défaut – « X Window System » ou X11 à partir de 84 – Xorg à partir de 2004 ● Créé au MIT ● Système graphique réparti, modèle client/serveur → XFree86 (x86), X.org ● Puissant mais lourd + API complexe (rendering) ● Approche répartie rarement utilisée Utilisation de X11 →
  • 38. NOM CLIENT 10 X11, 2/2 ● Initialement peu adapté à l’embarqué ● Retour grâce à plusieurs éléments : – L'augmentation de la puissance des CPU embarqués – L'utilisation de l'Atom/x86 – Le pilote accéléré devient commun au desktop et à l'embarqué Qt, GTK Motif
  • 39. NOM CLIENT 11 Wayland 1/3 ● X11 a atteint ses limites – Mauvaise intégration au kernel, drivers intégrés à X11 – Protocole réseau inutile – Protocole au niveau rendering (fonts, inputs, dessin) quasi inutilisé de nos jours – Pas de compositing, partage de GPU quasi impossible ● Wayland reconstruit sur les besoins modernes – XOrg a fait passé les drivers dans le noyau (GEM/KMS/DRM) – Wayland supporte toujours le protocole X via XWayland ● Principalement ce qu'on fait actuellement avec X11, mais sans couches intermédiaires Modifier le dernier point.
  • 40. NOM CLIENT 12 Wayland 2/3 Protocole de communication client/compositeur ● Le client dessine dans des buffers mémoire – Demande des buffers au kernel – Utilise EGL si nécessaire – Dessine lui même les widget et les décorations (via des librairies) ● Le compositeur place les buffers à l'écran – Réécrit et redirige les inputs – Reçoit les demandes de refresh des clients – Reçoit les handles vers les buffers des clients ● Pas de fonctions desktop avancées – Drag & Drop, iconify, XDG – Délégué à des programmes tiers http://wayland.freedesktop.org/archit ecture.html
  • 42. NOM CLIENT 14 Wayland 3/3 ● Déjà présent dans le monde de l'embarqué – Genivi – Sailfish OS ● Demande une version adaptée des toolkits pour le client – Supporté par EFL, Gtk+3.10, Qt5, SDL (expérimental) ● Demande un compositeur – Weston – Lipstick (Sailfish OS) – Gtk, Qt, EFL : en cours d'écriture Wayland n'est pas encore mature mais ce sera sans doute la solution par défaut pour l'embarqué dans quelques années
  • 43. NOM CLIENT 15 Bibliothèques graphiques ● Se placent « au dessus » de X11, Wayland 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 Qt → Wayland Qt → FB Qt → DirectFB
  • 44. NOM CLIENT 16 ● 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 Standard avec certains constructeurs de hardware (sigma)
  • 46. NOM CLIENT 18 Bibliothèque principalement concue pour le jeu vidéo et les besoins que cela entraîne. ● Fournit des primitives graphiques ET audio ● Portables sur Linux, Windows, Mac OS X, IOS, Android ● 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, … ● Supporte OpenGL et Direct3D ● Gestion des Input, du son, du réseau, des threads etc...
  • 48. NOM CLIENT 20 Les « toolkits » graphiques ● Fournissent un ensemble d’objets graphiques – Menus – Boutons – Boîtes de dialogues – WebView – Mediaplayer ● Exemples: – Athena widgets, OSF-Motif (X11) → obsolète – WxWidgets → obsolète – Qt – EFL (Enlightenment, E18) – GTK+
  • 49. NOM CLIENT 21 ● Toolkit C++ publié par Trolltech en 1996 (X11) ● Outil multi-plateforme (Linux (X11, Wayland, DirectFB...), Windows, MacOS, Android, iOS ...) ● Connu grâce à KDE ● Dernière version: 5.3 ● Avantages : – Couvre plus que la partie graphique – Excellente documentation – Outil de conception d'interface wysiwyg (QtCreator) ● Inconvénients : – Lourd (comparé aux autres)
  • 51. NOM CLIENT 23 EFL ● Toolkit C ● Avantages : – Peu gourmand en ressources, rapide – Taillé pour l'embarqué – Esthétique, modulaire, configurable ● Inconvénients – Peu connu – Moins de documentation que pour Qt – Pas de constructeur d'interface
  • 53. NOM CLIENT 25 ● Développé pour GIMP (Gimp ToolKit) ● Toolkit en C multiplateforme (Linux, Windows, MacOS X) ● Construit sur la Glib (programmation OO en C, énormément de fonctions de base) ● Assez peu utilisé dans l'embarqué ● Nécessite X11 ou Wayland (pas de FB) GTK+
  • 54. NOM CLIENT 26 La prochaine version de la norme HTML permettra de développer des applications complètement offline et non pas seulement des pages web. ● Assure une certaine « indépendance » par rapport à la plateforme ● Maquettage aisé sur desktop ● IHM déportées ● Supporté nativement par Android et iOS ● Nécessite un navigateur web récent sur la plateforme (Gecko/firefox, Blink/Chrome, Webkit/Tizen+Android) ● Équipe d'IHM avec compétence web (Javascript) ● Ne dispense pas de l'ingénieur système ● Intéressant s'il y a une connexion web ● Toutes les particularités de l'embarqué ne sont pas gérées HTML Eco systeme brouillon
  • 55. NOM CLIENT 27 Android ● Android n'est pas une IHM, c'est un OS. ● Difficile à adapter à un HW spécifique, prévu pour des téléphones. ● Très bien documenté ● Beaucoup de protocoles de communication (NFC, Bluetooth, Wifi, USB) ● Compétence de développement spécifique. ● La compétence plateforme n'a rien à voir avec la compétence développement applicatif Android est surtout intéressant pour des UI déportés (sur le téléphone de l'utilisateur)