|
| Titre : | Linux embarqué | | Type de document : | texte imprime | | Auteurs : | Bernard Ficheux ; Eric Bérnard | | Mention d'édition : | 4e éd. | | Editeur : | Paris : Eyrolles | | Année de publication : | 2012 | | Importance : | 539 p. | | Présentation : | ill. | | Format : | 23 cm | | ISBN/ISSN/EAN : | 978-2-212-13482-7 | | Note générale : | Index | | Langues : | Français | | Mots-clés : | Linux Systèmes embarqués | | Index. décimale : | 005.446 | | Résumé : | Sans équivalent en français, cet ouvrage s'ouvre par un panorama du marché de l'embarqué et des solutions Linux existantes en les comparant aux alternatives propriétaires. Il indique ensuite la méthodologie à suivre pour construire, à partir du noyau Linux, un système embarqué adapté. Les règles d'utilisation des licences GPL/LGPL pour les systèmes embarqués, ainsi que la prise en charge des dernières versions du noyau Linux (3.0 et supérieures) sont détaillées.
L'ouvrage décrit les derniers outils utilisés dans le monde Linux embarqué tels que l'émulateur de matériel QEMU, l'environnement de développement Buildroot et OpenEmbedded, le chargeur de démarrage Barebox, nouveau-venu après U-Boot, les extensions temps réel Xenomai et PREEMPT-RT, ou encore la bibliothèque graphique embarquée Qt4 développée par Nokia. En outre, un chapitre entier est dédié à l'utilisation des outils de mise au point, tels que Ftrace/trace-cmd et KernelShark, KGDB, OProfi le ou les sondes d'émulation JTAG. Les exemples de l'ouvrage portent sur l'architecture ARM, aujourd'hui la plus répandue pour les applications embarquées, mais également sur les processeurs x86, très présents au travers du processeur Intel Atom(r). La majorité des exemples décrits peuvent être directement exploités par le lecteur dans un environnement ARM9 émulé par l'outil libre et gratuit QEMU.
Cette quatrième édition est enrichie d'un chapitre dédié à OpenEmbedded, d'un chapitre détaillé sur le démarrage d'une carte ARM, du bootloader à l'application dans le cadre d'une étude de cas complète.
| | Note de contenu : | Avant-propos 1
À qui s'adresse ce livre ? 1
Structure de l'ouvrage 2
Précisions concernant les troisième et quatrième éditions 3
Première partie
Introduction à Linux et aux systèmes embarqués 5
Chapitre 1
Les logiciels embarqués et leurs domaines d'application 7
Qu'est-ce qu'un logiciel embarqué ? 7
Caractéristiques des logiciels embarqués 8
Logiciel embarqué ou système embarqué ? 10
Les champs d'application 11
Tour d'horizon des systèmes existants 13
VxWorks 13
QNX 13
µC/OS (micro-C OS) et µC/OS II 13
Windows 14
LynxOS 14
Nucleus 14
VRTX 14
eCos 14
Conclusion 15
Chapitre 2
Linux comme système embarqué 17
Contraites des systèmes embarqués propriétaires 17
Les avantages de l'open source 18
Les inconvénients 20
La crédibilité de l'open source 21
Le support technique 21
La complexité des licences 23
La compatibilité ascendante 23
Pourquoi Linux est-il adapté à l'embarqué ? 23
La fiabilité 25
Le faible coût 25
Les performances 25
La portabilité et l'adaptabilité 26
L'ouverture 27
Dans quels cas Linux peut-il être inadapté ? 28
Les systèmes embarqués basés sur le noyau Linux 29
Wind River Linux 29
MontaVista Linux 29
BlueCat Linux 29
ELDK 30
Android 30
Conclusion 31
Chapitre 3
Choix du matériel 33
Choix d'une architecture, PC/x86 ou non ? 33
La notion de MMU 36
uClinux : un noyau Linux sans MMU 36
Les processeurs compatibles x86 37
Les autres architectures 38
La mémoire de masse 39
Les bus d'extension et de communication 40
Les bus d'extension ISA et PCI 40
Les ports série 40
Le bus USB 41
Les autres bus : I2C, SPI, FireWire 42
Quelques exemples de cartes mères 42
Le projet Armadeus 42
Les cartes Eukréa 43
Les cartes FOX (ACME Systems) 43
Les cartes Pragmatec 44
Récupération de cartes existantes 44
Les formats Mini-ITX et Micro-ITX 45
Le standard PC/104 (x86) 46
Conclusion 47
Deuxième partie
Mise en place d'un système Linux embarqué 49
Chapitre 4
Structure du système Linux 51
Le noyau Linux 53
Structure globale du noyau 53
Les modules dynamiques du noyau 54
Compilation du noyau 59
Obtention et extraction des sources 59
Configuration du noyau 62
Compilation et installation 68
Répertoires et fichiers principaux 69
Organisation générale 70
Le répertoire / dev 72
Le système de fichiers / proc 72
Le système de fichiers / sys 75
Les niveaux d'exécution ou run levels 76
Les bibliothèques partagées 78
Le répertoire / var 80
Conclusion 80
Chapitre 5
Environnement de développement 81
Choisir un système de développement 81
Quelle distribution Linux ? 82
Quels composants installer ? 83
Utilisation d'une machine virtuelle 84
Utilisation de Cygwin 85
Autre choix possible : Mac OS X ? 91
La chaîne de compilation croisée 92
Le choix de la libc 95
Glibc 95
uClibc 96
Eglibc 97
Utiliser ELDK 97
Utiliser Crosstool 99
Description de la structure 100
Exemple de production d'une chaîne ARM 101
Utiliser Crosstool-NG 105
Exemples de compilation 108
Compilation d'un noyau Linux 109
Débogueur GDB croisé 109
Programme gdbserver 110
Débogueur GDB natif ARM 110
Utilisation d'un fichier Makefile 110
Les autres outils de développement 110
Utilisation d'un EDI 111
Émulateur de matériel 112
Quelques mots sur l'émulateur QEMU 112
Mode utilisateur 113
Installation de QEMU 114
Test de QEMU pour une application embarquée 116
Quelques options utiles 118
L'émulation de terminal 119
Utilisation de screen 120
Utilisation de minicom 120
Et maintenant ? 123
Chapitre 6
Construction de la distribution 125
Les éléments d'une distribution Linux minimale 126
Choix du compilateur croisé 126
Compilation du noyau 128
Création du système de fichiers racine 130
Le coup du coucou ! 131
Un système de fichiers racine basé sur Busybox 134
Les problèmes des distributions classiques 134
Busybox, la solution universelle de l'embarqué 134
Compiler et installer Busybox 136
Installer le répertoire / dev 139
Tester la distribution 139
Configuration de Busybox 140
Amélioration de l'image 142
Authentification des utilisateurs 146
Utilisation d'un initramfs 150
Conclusions sur la construction du système de fichiers racine 151
Partir d'une distribution classique existante 152
Adaptation d'un Live-CD Fedora 152
Conclusion 156
Chapitre 7
Configuration du réseau 157
La commande ifconfig 158
La commande route 161
Test d'une application réseau (wget) 161
Configuration du client DHCP sur la distribution 162
Utilisation d'un pont (bridge) 166
Scripts de configuration du réseau 169
Le script rc.inet1 171
Initialisation de l'interface locale 171
Initialisation de l'interface Ethernet, PPP ou PPPOE 172
Calcul du fichier / etc/resolv.conf 174
Nom de domaine et nom du système 174
Arrêt des interfaces 175
Le script rc.inet2 175
Configuration de PPP 176
Validation du support PPP 177
Installation du programme pppd 177
Mise en place du répertoire / etc/ppp 178
Passons aux choses sérieuses ! 181
Chapitre 8
Le chargeur de démarrage 183
Utilisation de GRUB 184
Nommage des périphériques 184
Mode interactif 185
Fichier de configuration 185
Installation de GRUB sur une clé USB 187
Création d'une image ISO bootable avec GRUB 189
Utilisation de Syslinux 190
Utilisation de U-Boot 191
Compilation de la version modifiée de QEMU 192
Compilation de U-Boot 192
Installation et test de l'image U-Boot sous QEMU 193
Installation sur une carte réelle 195
Les principes de U-Boot 196
La syntaxe de U-Boot 197
Exemples de manipulation 197
Liste des principales commandes et variables 198
Un premier exemple de démarrage de la carte 199
Installation du serveur TFTP 200
Configuration du serveur NFS 201
Paramétrage U-Boot pour NFS-Root 201
Démarrage automatique de la distribution 203
Utilisation d'un fichier de définition de variables 204
Utilisation de Barebox 205
Compilation de Barebox 206
Installation et test de l'image Barebox sous QEMU 207
Utilisation de Barebox 216
Copie des fichiers sur le serveur TFTP 216
Téléchargement et programmation en flash 216
Démarrage de Linux sur la carte 218
En résumé 219
Exploration des sources de Barebox 220
Conclusion 220
Chapitre 9
Mémoire de masse et système de fichiers 221
Rappels sur les technologies des mémoires 222
La mémoire RAM 222
La mémoire ROM 223
La mémoire flash 224
Choix du support physique 224
La CompactFlash 225
La clé USB 228
La carte Disk On Module 230
Utilisation du périphérique 230
Partitionnement 230
Formatage 231
Installation de la distribution 232
Installation du bootloader GRUB 233
Utilisation du pilote MTD 234
Flash NOR ou NAND 235
Architecture du pilote MTD 236
Configuration et mise en place de MTD 237
Paramétrage du noyau Linux 237
Découpage de la flash 239
Copie du noyau sur la flash 240
Installation du système de fichiers racine sur la flash 241
Test du système 243
Utilisation du format CRAMFS 246
Cas d'une flash NAND 247
Utilisation du format TMPFS 252
Utilisation de mtd-utils 254
Disponibilité dans ELDK-4.2 254
Génération à partir des sources 254
Exemple d'utilisation 255
Conclusion 257
Troisième partie
Techniques avancées 259
Chapitre 10
Utiliser Buildroot 261
Buildroot, une introduction 261
Qu'est-ce que Buildroot ? 262
Buildroot aujourd'hui 262
Quand utiliser Buildroot ? 263
Installation et utilisation 263
Un premier test de génération 265
Création d'une configuration prédéfinie 271
Aperçu de la structure de Buildroot 272
Système de gestion des paquets 274
Exemple du paquet fbv 276
Reconstruction des paquets 279
Ajout de paquets externes 279
Nouvelle syntaxe pour les paquets 283
Utilisation de Buildroot sur une véritable carte 285
Ajout du support des cartes Pragmatec DEV2410 287
Ajout de la prise en charge de Pragmatec dans les cibles 287
Configuration U-Boot 294
Configuration du noyau Linux 294
Format des images de système de fichiers racine produites 296
Périphérique utilisé pour la console 297
Cas d'une chaîne de compilation externe 298
Sauvegarde de la configuration 299
Test sur la carte DEV2410 300
Cas des dernières versions de Buildroot (2011, 2012) 300
Quelques exemples d'utilisation 302
QEMU/Versatile PB 302
SODIMM2410 303
Eukréa CPUIMX51SD 303
Conclusion 304
Chapitre 11
Utiliser OpenEmbedded 305
OpenEmbedded, historique du projet 305
Principe de base 308
Installation 309
Prérequis 309
Téléchargement de l'outil et préparation de l'environnement 310
Premiers pas avec qemuarm 312
Exploration des répertoires 314
Organisation générale 314
Les métadonnées 315
L'environnement de travail 316
Résultat de la construction 318
Test de l'image avec QEMU 320
Concepts d'OpenEmbedded 322
Le grand chef : bitbake 323
Le livre de recettes : OpenEmbedded 324
Éléments de syntaxe 325
À propos des tâches 327
Anatomie d'une recette 329
Recette à partir de sources brutes 329
Recette à partir de sources utilisant Autotools 332
Recette de compilation d'une application Qt 335
Premier projet avec OpenEmbedded 337
Comment travailler avec OpenEmbedded ? 337
Sélection des couches 338
Création de la couche du projet 340
Création d'une image personnalisée 342
Génération d'un SDK 343
Astuces utiles 344
Reconstruire un paquet 344
Étude des dépendances 345
Dépôt de paquets 345
Libérer l'espace disque 347
Travailler sans connexion Internet 348
Construire une recette sans gestion de dépendances 348
Que valent les variables d'une recette ? 349
Un problème, une solution, un patch 349
Perspectives 351
Documentation 353
Chapitre 12
Outils de mise au point 355
Quels outils de mise au point sous Linux ? 356
Mise en place de traces 357
Introduction à syslog 358
Trace depuis un programme utilisateur 358
Trace depuis un module noyau 359
Configuration par / etc/syslog.conf 360
Cas de Busybox 361
Utilisation de strace et ltrace 362
Utilisation de GDB 365
Mise au point avec gdbserver 367
Utilisation de l'émulateur QEMU 369
Mise au point du noyau Linux 370
Mise au point d'un module dynamique 371
Mise au point du bootloader U-Boot 375
Utilisation de KGDB 377
Mise au point du noyaux Linux 377
Utilisation d'une sonde JTAG 379
Mise en oeuvre de la sonde BDI3000 380
Outils de mise au point mémoire 385
Allocation de mémoire 386
Les outils disponibles 387
Mise en oeuvre d'OProfile 389
Installation d'OProfile 389
Configuration d'OProfile 389
Enregistrement des informations de profiling 390
Production des résultats 391
Mise en oeuvre de Ftrace 392
Ftrace ou LTT/LTTng ? 393
Activation dans le noyau 393
Premières utilisations de Ftrace 393
Trace de fonction 394
Trace d'événement 395
Quelques utilisations plus avancées 396
Exploitation des résultats 399
Utilisation de trace-cmd 400
Conclusion 404
Chapitre 13
Systèmes temps réel 405
Gestion du temps dans les systèmes d'exploitation 405
Système à temps partagé 406
Système temps réel 406
Test d'une application temps réel sous Linux 408
Description de l'expérience 409
Développement du programme de test 410
Configuration des options de préemption 414
Modification de la politique d'ordonnancement 414
Le noyau Linux n'est définitivement pas temps réel 416
Le patch PREEMPT-RT 416
Modifications effectuées 417
Installation 417
Test de performances 418
Utilisation d'un co-noyau 420
RTLinux 421
RTAI 422
Compilation et installation du noyau Linux modifié 422
Compilation et installation de la distribution RTAI 423
Test de la distribution 425
Xenomai 426
Architecture de Xenomai 426
ADEOS 428
Structure et fonctionnement d'une application Xenomai 429
Installation de Xenomai 431
Compilation et installation du noyau Linux modifié 431
Compilation et installation de la distribution Xenomai 432
Test de la distribution 433
Interface / proc 435
Prise en compte du multiprocessing (SMP) 435
Adaptation de l'exemple de test du port parallèle 436
Introduction à RTDM 443
Test de Xenomai/ADEOS sur une architecture ARM 450
Conclusion 452
Chapitre 14
Interface homme-machine 453
La console et les terminaux 454
Configuration d'une disposition clavier spécifique 454
X Window System 455
Une introduction à X 455
Adaptation du système X11 457
Le framebuffer de Linux 457
Configuration du framebuffer 458
Utilisation du framebuffer 459
Utilisation de DirectFB 461
Utilisation de SDL 463
Les toolkits graphiques 466
Qt/Embedded 466
Architecture de Qt/Embedded 467
Mise en place de Qt/Embedded 467
GTK+ sur framabuffer (GTK-DFB) 475
La bibliothèque wxWidgets 475
Le toolkit EFL 475
LCDproc, une bibliothèque d'affichage LCD 476
Pilotage à distance 478
Serveur et navigateur web 478
Nouvelles techniques du Web 479
Java 480
Ajax 480
Adobe Flash 480
HTML5 481
Conclusion 481
Chapitre 15
Étude de cas 483
Description du projet 483
Éléments composant le système 484
Le bootloader 484
Le noyau 500
Le système de fichiers racine 513
Le SDK 521
L'application 522
Le déploiement 527
En résumé 531
Index 533
Table des matières | | Permalink : | ./index.php?lvl=notice_display&id=12035 |
Linux embarqué [texte imprime] / Bernard Ficheux ; Eric Bérnard . - 4e éd. . - Paris : Eyrolles, 2012 . - 539 p. : ill. ; 23 cm. ISBN : 978-2-212-13482-7 Index Langues : Français | Mots-clés : | Linux Systèmes embarqués | | Index. décimale : | 005.446 | | Résumé : | Sans équivalent en français, cet ouvrage s'ouvre par un panorama du marché de l'embarqué et des solutions Linux existantes en les comparant aux alternatives propriétaires. Il indique ensuite la méthodologie à suivre pour construire, à partir du noyau Linux, un système embarqué adapté. Les règles d'utilisation des licences GPL/LGPL pour les systèmes embarqués, ainsi que la prise en charge des dernières versions du noyau Linux (3.0 et supérieures) sont détaillées.
L'ouvrage décrit les derniers outils utilisés dans le monde Linux embarqué tels que l'émulateur de matériel QEMU, l'environnement de développement Buildroot et OpenEmbedded, le chargeur de démarrage Barebox, nouveau-venu après U-Boot, les extensions temps réel Xenomai et PREEMPT-RT, ou encore la bibliothèque graphique embarquée Qt4 développée par Nokia. En outre, un chapitre entier est dédié à l'utilisation des outils de mise au point, tels que Ftrace/trace-cmd et KernelShark, KGDB, OProfi le ou les sondes d'émulation JTAG. Les exemples de l'ouvrage portent sur l'architecture ARM, aujourd'hui la plus répandue pour les applications embarquées, mais également sur les processeurs x86, très présents au travers du processeur Intel Atom(r). La majorité des exemples décrits peuvent être directement exploités par le lecteur dans un environnement ARM9 émulé par l'outil libre et gratuit QEMU.
Cette quatrième édition est enrichie d'un chapitre dédié à OpenEmbedded, d'un chapitre détaillé sur le démarrage d'une carte ARM, du bootloader à l'application dans le cadre d'une étude de cas complète.
| | Note de contenu : | Avant-propos 1
À qui s'adresse ce livre ? 1
Structure de l'ouvrage 2
Précisions concernant les troisième et quatrième éditions 3
Première partie
Introduction à Linux et aux systèmes embarqués 5
Chapitre 1
Les logiciels embarqués et leurs domaines d'application 7
Qu'est-ce qu'un logiciel embarqué ? 7
Caractéristiques des logiciels embarqués 8
Logiciel embarqué ou système embarqué ? 10
Les champs d'application 11
Tour d'horizon des systèmes existants 13
VxWorks 13
QNX 13
µC/OS (micro-C OS) et µC/OS II 13
Windows 14
LynxOS 14
Nucleus 14
VRTX 14
eCos 14
Conclusion 15
Chapitre 2
Linux comme système embarqué 17
Contraites des systèmes embarqués propriétaires 17
Les avantages de l'open source 18
Les inconvénients 20
La crédibilité de l'open source 21
Le support technique 21
La complexité des licences 23
La compatibilité ascendante 23
Pourquoi Linux est-il adapté à l'embarqué ? 23
La fiabilité 25
Le faible coût 25
Les performances 25
La portabilité et l'adaptabilité 26
L'ouverture 27
Dans quels cas Linux peut-il être inadapté ? 28
Les systèmes embarqués basés sur le noyau Linux 29
Wind River Linux 29
MontaVista Linux 29
BlueCat Linux 29
ELDK 30
Android 30
Conclusion 31
Chapitre 3
Choix du matériel 33
Choix d'une architecture, PC/x86 ou non ? 33
La notion de MMU 36
uClinux : un noyau Linux sans MMU 36
Les processeurs compatibles x86 37
Les autres architectures 38
La mémoire de masse 39
Les bus d'extension et de communication 40
Les bus d'extension ISA et PCI 40
Les ports série 40
Le bus USB 41
Les autres bus : I2C, SPI, FireWire 42
Quelques exemples de cartes mères 42
Le projet Armadeus 42
Les cartes Eukréa 43
Les cartes FOX (ACME Systems) 43
Les cartes Pragmatec 44
Récupération de cartes existantes 44
Les formats Mini-ITX et Micro-ITX 45
Le standard PC/104 (x86) 46
Conclusion 47
Deuxième partie
Mise en place d'un système Linux embarqué 49
Chapitre 4
Structure du système Linux 51
Le noyau Linux 53
Structure globale du noyau 53
Les modules dynamiques du noyau 54
Compilation du noyau 59
Obtention et extraction des sources 59
Configuration du noyau 62
Compilation et installation 68
Répertoires et fichiers principaux 69
Organisation générale 70
Le répertoire / dev 72
Le système de fichiers / proc 72
Le système de fichiers / sys 75
Les niveaux d'exécution ou run levels 76
Les bibliothèques partagées 78
Le répertoire / var 80
Conclusion 80
Chapitre 5
Environnement de développement 81
Choisir un système de développement 81
Quelle distribution Linux ? 82
Quels composants installer ? 83
Utilisation d'une machine virtuelle 84
Utilisation de Cygwin 85
Autre choix possible : Mac OS X ? 91
La chaîne de compilation croisée 92
Le choix de la libc 95
Glibc 95
uClibc 96
Eglibc 97
Utiliser ELDK 97
Utiliser Crosstool 99
Description de la structure 100
Exemple de production d'une chaîne ARM 101
Utiliser Crosstool-NG 105
Exemples de compilation 108
Compilation d'un noyau Linux 109
Débogueur GDB croisé 109
Programme gdbserver 110
Débogueur GDB natif ARM 110
Utilisation d'un fichier Makefile 110
Les autres outils de développement 110
Utilisation d'un EDI 111
Émulateur de matériel 112
Quelques mots sur l'émulateur QEMU 112
Mode utilisateur 113
Installation de QEMU 114
Test de QEMU pour une application embarquée 116
Quelques options utiles 118
L'émulation de terminal 119
Utilisation de screen 120
Utilisation de minicom 120
Et maintenant ? 123
Chapitre 6
Construction de la distribution 125
Les éléments d'une distribution Linux minimale 126
Choix du compilateur croisé 126
Compilation du noyau 128
Création du système de fichiers racine 130
Le coup du coucou ! 131
Un système de fichiers racine basé sur Busybox 134
Les problèmes des distributions classiques 134
Busybox, la solution universelle de l'embarqué 134
Compiler et installer Busybox 136
Installer le répertoire / dev 139
Tester la distribution 139
Configuration de Busybox 140
Amélioration de l'image 142
Authentification des utilisateurs 146
Utilisation d'un initramfs 150
Conclusions sur la construction du système de fichiers racine 151
Partir d'une distribution classique existante 152
Adaptation d'un Live-CD Fedora 152
Conclusion 156
Chapitre 7
Configuration du réseau 157
La commande ifconfig 158
La commande route 161
Test d'une application réseau (wget) 161
Configuration du client DHCP sur la distribution 162
Utilisation d'un pont (bridge) 166
Scripts de configuration du réseau 169
Le script rc.inet1 171
Initialisation de l'interface locale 171
Initialisation de l'interface Ethernet, PPP ou PPPOE 172
Calcul du fichier / etc/resolv.conf 174
Nom de domaine et nom du système 174
Arrêt des interfaces 175
Le script rc.inet2 175
Configuration de PPP 176
Validation du support PPP 177
Installation du programme pppd 177
Mise en place du répertoire / etc/ppp 178
Passons aux choses sérieuses ! 181
Chapitre 8
Le chargeur de démarrage 183
Utilisation de GRUB 184
Nommage des périphériques 184
Mode interactif 185
Fichier de configuration 185
Installation de GRUB sur une clé USB 187
Création d'une image ISO bootable avec GRUB 189
Utilisation de Syslinux 190
Utilisation de U-Boot 191
Compilation de la version modifiée de QEMU 192
Compilation de U-Boot 192
Installation et test de l'image U-Boot sous QEMU 193
Installation sur une carte réelle 195
Les principes de U-Boot 196
La syntaxe de U-Boot 197
Exemples de manipulation 197
Liste des principales commandes et variables 198
Un premier exemple de démarrage de la carte 199
Installation du serveur TFTP 200
Configuration du serveur NFS 201
Paramétrage U-Boot pour NFS-Root 201
Démarrage automatique de la distribution 203
Utilisation d'un fichier de définition de variables 204
Utilisation de Barebox 205
Compilation de Barebox 206
Installation et test de l'image Barebox sous QEMU 207
Utilisation de Barebox 216
Copie des fichiers sur le serveur TFTP 216
Téléchargement et programmation en flash 216
Démarrage de Linux sur la carte 218
En résumé 219
Exploration des sources de Barebox 220
Conclusion 220
Chapitre 9
Mémoire de masse et système de fichiers 221
Rappels sur les technologies des mémoires 222
La mémoire RAM 222
La mémoire ROM 223
La mémoire flash 224
Choix du support physique 224
La CompactFlash 225
La clé USB 228
La carte Disk On Module 230
Utilisation du périphérique 230
Partitionnement 230
Formatage 231
Installation de la distribution 232
Installation du bootloader GRUB 233
Utilisation du pilote MTD 234
Flash NOR ou NAND 235
Architecture du pilote MTD 236
Configuration et mise en place de MTD 237
Paramétrage du noyau Linux 237
Découpage de la flash 239
Copie du noyau sur la flash 240
Installation du système de fichiers racine sur la flash 241
Test du système 243
Utilisation du format CRAMFS 246
Cas d'une flash NAND 247
Utilisation du format TMPFS 252
Utilisation de mtd-utils 254
Disponibilité dans ELDK-4.2 254
Génération à partir des sources 254
Exemple d'utilisation 255
Conclusion 257
Troisième partie
Techniques avancées 259
Chapitre 10
Utiliser Buildroot 261
Buildroot, une introduction 261
Qu'est-ce que Buildroot ? 262
Buildroot aujourd'hui 262
Quand utiliser Buildroot ? 263
Installation et utilisation 263
Un premier test de génération 265
Création d'une configuration prédéfinie 271
Aperçu de la structure de Buildroot 272
Système de gestion des paquets 274
Exemple du paquet fbv 276
Reconstruction des paquets 279
Ajout de paquets externes 279
Nouvelle syntaxe pour les paquets 283
Utilisation de Buildroot sur une véritable carte 285
Ajout du support des cartes Pragmatec DEV2410 287
Ajout de la prise en charge de Pragmatec dans les cibles 287
Configuration U-Boot 294
Configuration du noyau Linux 294
Format des images de système de fichiers racine produites 296
Périphérique utilisé pour la console 297
Cas d'une chaîne de compilation externe 298
Sauvegarde de la configuration 299
Test sur la carte DEV2410 300
Cas des dernières versions de Buildroot (2011, 2012) 300
Quelques exemples d'utilisation 302
QEMU/Versatile PB 302
SODIMM2410 303
Eukréa CPUIMX51SD 303
Conclusion 304
Chapitre 11
Utiliser OpenEmbedded 305
OpenEmbedded, historique du projet 305
Principe de base 308
Installation 309
Prérequis 309
Téléchargement de l'outil et préparation de l'environnement 310
Premiers pas avec qemuarm 312
Exploration des répertoires 314
Organisation générale 314
Les métadonnées 315
L'environnement de travail 316
Résultat de la construction 318
Test de l'image avec QEMU 320
Concepts d'OpenEmbedded 322
Le grand chef : bitbake 323
Le livre de recettes : OpenEmbedded 324
Éléments de syntaxe 325
À propos des tâches 327
Anatomie d'une recette 329
Recette à partir de sources brutes 329
Recette à partir de sources utilisant Autotools 332
Recette de compilation d'une application Qt 335
Premier projet avec OpenEmbedded 337
Comment travailler avec OpenEmbedded ? 337
Sélection des couches 338
Création de la couche du projet 340
Création d'une image personnalisée 342
Génération d'un SDK 343
Astuces utiles 344
Reconstruire un paquet 344
Étude des dépendances 345
Dépôt de paquets 345
Libérer l'espace disque 347
Travailler sans connexion Internet 348
Construire une recette sans gestion de dépendances 348
Que valent les variables d'une recette ? 349
Un problème, une solution, un patch 349
Perspectives 351
Documentation 353
Chapitre 12
Outils de mise au point 355
Quels outils de mise au point sous Linux ? 356
Mise en place de traces 357
Introduction à syslog 358
Trace depuis un programme utilisateur 358
Trace depuis un module noyau 359
Configuration par / etc/syslog.conf 360
Cas de Busybox 361
Utilisation de strace et ltrace 362
Utilisation de GDB 365
Mise au point avec gdbserver 367
Utilisation de l'émulateur QEMU 369
Mise au point du noyau Linux 370
Mise au point d'un module dynamique 371
Mise au point du bootloader U-Boot 375
Utilisation de KGDB 377
Mise au point du noyaux Linux 377
Utilisation d'une sonde JTAG 379
Mise en oeuvre de la sonde BDI3000 380
Outils de mise au point mémoire 385
Allocation de mémoire 386
Les outils disponibles 387
Mise en oeuvre d'OProfile 389
Installation d'OProfile 389
Configuration d'OProfile 389
Enregistrement des informations de profiling 390
Production des résultats 391
Mise en oeuvre de Ftrace 392
Ftrace ou LTT/LTTng ? 393
Activation dans le noyau 393
Premières utilisations de Ftrace 393
Trace de fonction 394
Trace d'événement 395
Quelques utilisations plus avancées 396
Exploitation des résultats 399
Utilisation de trace-cmd 400
Conclusion 404
Chapitre 13
Systèmes temps réel 405
Gestion du temps dans les systèmes d'exploitation 405
Système à temps partagé 406
Système temps réel 406
Test d'une application temps réel sous Linux 408
Description de l'expérience 409
Développement du programme de test 410
Configuration des options de préemption 414
Modification de la politique d'ordonnancement 414
Le noyau Linux n'est définitivement pas temps réel 416
Le patch PREEMPT-RT 416
Modifications effectuées 417
Installation 417
Test de performances 418
Utilisation d'un co-noyau 420
RTLinux 421
RTAI 422
Compilation et installation du noyau Linux modifié 422
Compilation et installation de la distribution RTAI 423
Test de la distribution 425
Xenomai 426
Architecture de Xenomai 426
ADEOS 428
Structure et fonctionnement d'une application Xenomai 429
Installation de Xenomai 431
Compilation et installation du noyau Linux modifié 431
Compilation et installation de la distribution Xenomai 432
Test de la distribution 433
Interface / proc 435
Prise en compte du multiprocessing (SMP) 435
Adaptation de l'exemple de test du port parallèle 436
Introduction à RTDM 443
Test de Xenomai/ADEOS sur une architecture ARM 450
Conclusion 452
Chapitre 14
Interface homme-machine 453
La console et les terminaux 454
Configuration d'une disposition clavier spécifique 454
X Window System 455
Une introduction à X 455
Adaptation du système X11 457
Le framebuffer de Linux 457
Configuration du framebuffer 458
Utilisation du framebuffer 459
Utilisation de DirectFB 461
Utilisation de SDL 463
Les toolkits graphiques 466
Qt/Embedded 466
Architecture de Qt/Embedded 467
Mise en place de Qt/Embedded 467
GTK+ sur framabuffer (GTK-DFB) 475
La bibliothèque wxWidgets 475
Le toolkit EFL 475
LCDproc, une bibliothèque d'affichage LCD 476
Pilotage à distance 478
Serveur et navigateur web 478
Nouvelles techniques du Web 479
Java 480
Ajax 480
Adobe Flash 480
HTML5 481
Conclusion 481
Chapitre 15
Étude de cas 483
Description du projet 483
Éléments composant le système 484
Le bootloader 484
Le noyau 500
Le système de fichiers racine 513
Le SDK 521
L'application 522
Le déploiement 527
En résumé 531
Index 533
Table des matières | | Permalink : | ./index.php?lvl=notice_display&id=12035 |
|  |