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

GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 

Dernier (20)

CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 

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)