[bootlin/training-materials updates] master: Add embedded-linux-4d agendas (e315c0c5)

Thomas Petazzoni thomas.petazzoni at bootlin.com
Mon Jan 17 14:27:01 CET 2022


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/e315c0c5c93143a1624e215c061d1fcf9b5c4c84

>---------------------------------------------------------------

commit e315c0c5c93143a1624e215c061d1fcf9b5c4c84
Author: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Date:   Mon Jan 17 14:27:01 2022 +0100

    Add embedded-linux-4d agendas
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>


>---------------------------------------------------------------

e315c0c5c93143a1624e215c061d1fcf9b5c4c84
 agenda/embedded-linux-4d-online-agenda.tex    | 386 ++++++++++++++++++++++++
 agenda/embedded-linux-4d-online-fr-agenda.tex | 406 ++++++++++++++++++++++++++
 2 files changed, 792 insertions(+)

diff --git a/agenda/embedded-linux-4d-online-agenda.tex b/agenda/embedded-linux-4d-online-agenda.tex
new file mode 100644
index 00000000..e9d682ae
--- /dev/null
+++ b/agenda/embedded-linux-4d-online-agenda.tex
@@ -0,0 +1,386 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\def \trainingtitle{Embedded Linux system development training}
+\def \trainingduration{On-line seminar, 6 sessions of 4 hours}
+\def \agendalanguage{english}
+\def \training{embedded-linux}
+
+\usepackage{agenda}
+
+\begin{document}
+
+\feshowtitle
+
+\feagendasummaryitem{Title}{
+  {\bf \trainingtitle{}}
+}
+\feagendasummaryitem{Training objectives}{
+  \begin{itemize}
+    \vspace{-0.5cm}
+  \item Be able to understand the overall architecture of Embedded
+    Linux systems.
+  \item Be able to choose, build, setup and use a cross-compilation
+    toolchain.
+  \item Be able to understand the booting sequence of an embedded
+    Linux system, and to set up and use the U-Boot bootloader.
+  \item Be able to select a Linux kernel version, to configure, build
+    and install the Linux kernel on an embedded system.
+  \item Be able to create from scratch a Linux root filesystem,
+    including all its elements: directories, applications,
+    configuration files, libraries.
+  \item Be able to choose and setup the main Linux filesystems for
+    block storage devices, and understand their main characteristics.
+  \item Be able to select, cross-compile and integrate open-source
+    software components (libraries, applications) in an Embedded Linux
+    system, and to handle license compliance.
+  \item Be able to setup and use an embedded Linux build system, to
+    build a complete system for an embedded platform.
+  \item Be able to develop and debug applications on an embedded Linux
+    system.
+    \vspace{-0.5cm}
+  \end{itemize}
+}
+\feagendasummaryitem{Duration}{
+  {\bf Six} half days - 24 hours (4 hours per half day).
+}
+\onlinepedagogics{embedded-linux}
+\feagendasummaryitem{Trainer}{
+  One of the engineers listed on:
+  \newline \url{https://bootlin.com/training/trainers/}
+}
+\feagendasummaryitem{Language}{
+  Oral lectures: English
+  \newline Materials: English.
+}
+\feagendasummaryitem{Audience}{
+  People developing devices using the Linux kernel
+  \newline People supporting embedded Linux system developers.
+}
+\feagendasummaryitem{Prerequisites}{
+  \begin{itemize}
+    \prerequisitecommandline
+    \prerequisiteenglish
+  \end{itemize}
+}
+\feagendasummaryitem{Required equipment}{
+  \begin{itemize}
+  \item Computer with the operating system of your choice, with the
+    Google Chrome or Chromium browser for videoconferencing
+  \item Webcam and microphone (preferably from an audio headset)
+  \item High speed access to the Internet
+  \item For people interested in our optional practical labs,
+    an installation of VirtualBox and about 30 GB of free
+    disk space.
+  \end{itemize}
+}
+\certificate{}
+\disabilities{}
+
+\feagendatwocolumn
+{Real hardware in practical demos}
+{
+  The hardware platform used for the practical demos of this training
+  session is the {\bf STMicroelectronics STM32MP157D-DK1 Discovery
+    board} board, based on a dual Cortex-A7 processor from ST, which
+  features:
+
+  \begin{itemize}
+  \item STM32MP157D dual ARM Cortex-A7 processor
+  \item USB-C powered
+  \item 512 MB DDR3L RAM
+  \item Gigabit Ethernet port
+  \item 4 USB 2.0 host ports
+  \item 1 USB-C OTG port
+  \item 1 Micro SD slot
+  \item On-board ST-LINK/V2-1 debugger
+  \item Arduino Uno v3-compatible header
+  \item Audio codec
+  \item Misc: buttons, LEDs
+  \end{itemize}
+}
+{}
+{
+  \begin{center}
+    \includegraphics[height=5cm]{../slides/discovery-board-dk1/discovery-board-dk1.png}
+  \end{center}
+}
+
+\feagendatwocolumn
+{Optional labs on emulated hardware}
+{
+  For the interested participants, we propose optional labs, to be
+  done between the training sessions, that use the QEMU emulated ARM
+  Vexpres Cortex-A9 board. As they rely on an emulated platform, no
+  specific hardware is necessary.
+}
+{}
+{
+  \begin{center}
+    \includegraphics[width=5cm]{agenda/qemu-logo.pdf}
+  \end{center}
+  \scriptsize Image credits (Wikipedia): \url{https://frama.link/mW71eosa}
+}
+
+
+\section{Half day 1}
+
+\feagendatwocolumn
+{Lecture - Introduction to embedded Linux}
+{
+  \begin{itemize}
+  \item Advantages of Linux versus traditional embedded operating systems.
+        Reasons for choosing Linux.
+  \item Global picture: understanding the general architecture of an
+        embedded Linux system. Overview of the major components in a typical
+        system.
+  \end{itemize}
+  {\em The rest of the course will study each of these components in detail.}
+}
+{Lecture - Embedded Linux development environment}
+{
+  \begin{itemize}
+  \item Operating system and tools to use on the development
+        workstation for embedded Linux development.
+  \item Desktop Linux usage tips.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Cross-compiling toolchain and C library}
+{
+  \begin{itemize}
+  \item What's inside a cross-compiling toolchain
+  \item Choosing the target C library
+  \item What's inside the C library
+  \item Ready to use cross-compiling toolchains
+  \item Building a cross-compiling toolchain with automated tools.
+  \end{itemize}
+}
+{Demo - Cross compiling toolchain}
+{
+  \begin{itemize}
+  \item Configuring Crosstool-NG
+  \item Executing it to build a custom uClibc toolchain.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture - Bootloaders}
+{
+  \begin{itemize}
+  \item Available bootloaders
+  \item Bootloader features
+  \item Installing a bootloader
+  \item Detailed study of U-Boot
+  \end{itemize}
+}
+
+\section{Half day 2}
+
+\feagendaonecolumn
+{Demo - Bootloader and U-boot}
+{
+  {\em Using the STM32MP1 Discovery Kit 1 board}
+  \begin{itemize}
+  \item Set up serial communication with the board.
+  \item Configure, compile and install the first-stage bootloader and
+    U-Boot on the board.
+  \item Become familiar with U-Boot environment and commands.
+  \item Set up TFTP communication with the board. Use TFTP U-Boot commands.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Linux kernel}
+{
+  \begin{itemize}
+  \item Role and general architecture of the Linux kernel
+  \item Features available in the Linux kernel,
+        with a focus on features useful for embedded systems
+  \item Kernel user interface
+  \item Getting the sources
+  \item Understanding Linux kernel versions.
+  \item Using the patch command
+  \end{itemize}
+}
+{Demo - Kernel sources}
+{
+  \begin{itemize}
+  \item Downloading kernel sources
+  \item Apply kernel patches
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture – Configuring and compiling a Linux kernel}
+{
+  \begin{itemize}
+  \item Kernel configuration.
+  \item Using ready-made configuration files for specific
+    architectures and boards.
+  \item Kernel compilation.
+  \item Generated files.
+  \item Using kernel modules
+  \end{itemize}
+}
+{Demo - Kernel cross-compiling and booting}
+{
+  {\em Using the STM32MP1 Discovery Kit 1 board}
+  \begin{itemize}
+  \item Configuring the Linux kernel and cross-compiling it for the ARM board.
+  \item Downloading your kernel on the board through U-boot's tftp client.
+  \item Booting your kernel from RAM.
+  \item Copying the kernel to flash and booting it from this location.
+  \item Storing boot parameters in flash and automating kernel booting from flash.
+  \end{itemize}
+}
+
+\section{Half day 3}
+
+\feagendatwocolumn
+{Lecture – Root filesystem in Linux}
+{
+  \begin{itemize}
+  \item Filesystems in Linux.
+  \item Role and organization of the root filesystem.
+  \item Location of the root filesystem: on storage, in memory,
+        from the network.
+  \item Device files, virtual filesystems.
+  \item Contents of a typical root filesystem.
+  \end{itemize}
+}
+{Lecture - BusyBox}
+{
+  \begin{itemize}
+  \item Detailed overview. Detailed features.
+  \item Configuration, compiling and deploying.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo – Tiny root filesystem built from scratch with BusyBox}
+{
+  {\em Using the STM32MP1 Discovery Kit 1 board}
+  \begin{itemize}
+  \item Now build a basic root filesystem from scratch for your ARM system
+  \item Setting up a kernel to boot your system on a host
+        directory exported by NFS
+  \item Passing kernel command line parameters to boot on NFS
+  \item Creating the full root filesystem from scratch.
+        Populating it with BusyBox based utilities.
+  \item Creating device files and booting the virtual system.
+  \item System startup using BusyBox /sbin/init
+  \item Using the BusyBox http server.
+  \item Controlling the target from a web browser on the PC host.
+  \item Setting up shared libraries on the target and compiling
+        a sample executable.
+  \end{itemize}
+}
+
+\section{Half day 4}
+
+\feagendatwocolumn
+{Lecture - Block filesystems}
+{
+  \begin{itemize}
+  \item Filesystems for block devices.
+  \item Usefulness of journaled filesystems.
+  \item Read-only block filesystems.
+  \item RAM filesystems.
+  \item How to create each of these filesystems.
+  \item Suggestions for embedded systems.
+  \end{itemize}
+}
+{Demo - Block filesystems}
+{
+  {\em Using the STM32MP1 Discovery Kit 1 board}
+  \begin{itemize}
+  \item Booting your system with a mix of filesystems on MMC/SD storage: SquashFS for
+	applications, ext4 for configuration and user data, and
+	tmpfs for temporary system files.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture – Leveraging existing open-source components in your system}
+{
+  \begin{itemize}
+  \item Reasons for leveraging existing components.
+  \item Find existing free and open source software components.
+  \item Choosing the components.
+  \item The different free software licenses and their requirements.
+  \item Overview of well-known typical components used in
+        embedded systems: graphical libraries and systems
+        (framebuffer, Gtk, Qt, etc.), system utilities,
+        network libraries and utilities, multimedia libraries, etc.
+  \item System building: integration of the components.
+  \end{itemize}
+}
+
+\section{Half day 5}
+
+\feagendatwocolumn
+{Lecture – Cross-compiling applications and libraries}
+{
+  \begin{itemize}
+  \item Configuring, cross-compiling and installing applications and libraries.
+  \item Details about the build system used in most open-source components.
+  \item Overview of the common issues found when using these components.
+  \end{itemize}
+}
+{Demo – Cross-compiling applications and libraries}
+{
+  {\em Using the STM32MP1 Discovery Kit 1 board}
+  \begin{itemize}
+  \item Building a system with audio libraries and a sound player application.
+  \item Manual compilation and installation of several free software packages.
+  \item Learning about common techniques and issues.
+  \end{itemize}
+}
+
+\section{Half day 6}
+
+\feagendatwocolumn
+{Lecture - Embedded system building tools}
+{
+  \begin{itemize}
+  \item Review of existing system building tools.
+  \item Buildroot example.
+  \end{itemize}
+}
+{Demo - System build with Buildroot}
+{
+  {\em Using the STM32MP1 Discovery Kit 1 board}
+  \begin{itemize}
+  \item Using Buildroot to rebuild the same system as in the previous lab.
+  \item Seeing how easier it gets.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Application development and debugging}
+{
+  \begin{itemize}
+  \item Programming languages and libraries available.
+  \item Overview of the C library features for application development.
+  \item Build system for your application,
+        how to use existing libraries in your application.
+  \item Source browsers and Integrated Development Environments (IDEs).
+  \item Debuggers. Debugging remote applications with gdb and gdbserver.
+        Post-mortem debugging with core files.
+  \item Code checkers, memory checkers, profilers.
+  \end{itemize}
+}
+{Demo – Application development and debugging}
+{
+  {\em Using the STM32MP1 Discovery Kit 1 board}
+  \begin{itemize}
+  \item Develop and compile an application relying on the ncurses library
+  \item Using strace, ltrace and gdbserver to debug a crappy application
+        on the remote system.
+  \item Post mortem analysis: exploit a {\em core dump} to find out where an application
+        crashed.
+  \end{itemize}
+}
+
+\end{document}
diff --git a/agenda/embedded-linux-4d-online-fr-agenda.tex b/agenda/embedded-linux-4d-online-fr-agenda.tex
new file mode 100644
index 00000000..83053448
--- /dev/null
+++ b/agenda/embedded-linux-4d-online-fr-agenda.tex
@@ -0,0 +1,406 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\def \trainingtitle{Développement de systèmes Linux embarqué}
+\def \trainingduration{Séminaire en ligne, 6 sessions de 4 heures}
+\def \agendalanguage{french}
+\def \training{embedded-linux}
+
+\usepackage{agenda}
+
+\begin{document}
+
+\feshowtitle
+
+\feagendasummaryitem{Titre}{
+  {\bf \trainingtitle{}}
+}
+\feagendasummaryitem{Objectifs\newline opérationnels}{
+  \begin{itemize}
+    \vspace{-0.5cm}
+  \item Être capable d'appréhender l'architecture générale d'un
+    système Linux embarqué.
+  \item Être capable de sélectionner, construire, mettre en oeuvre et
+    utiliser une chaîne de compilation croisée.
+  \item Être capable de comprendre la séquence d'un démarrage d'un
+    système Linux embarqué et de mettre en oeuvre et d'utiliser le
+    chargeur de démarrage U-Boot.
+  \item Être capable de sélectionner une version du noyau Linux, de
+    configurer, de compiler et d'installer le noyau Linux sur un
+    système embarqué.
+  \item Être capable de créer à partir de zéro un système de fichiers
+    racine Linux, en comprenant les différents éléments qui le
+    composent: répertoires, applications, bibliothèques, fichiers de
+    configuration.
+  \item Être capable de choisir et de mettre en oeuvre les principaux
+    systèmes de fichiers Linux pour périphérique de stockage en mode
+    bloc, et de connaître leurs principales caractéristiques.
+  \item Être capable de sélectionner, de cross-compiler et d'intégrer
+    des composants logiciels open-source (bibliothèques, applications)
+    dans un système Linux embarqué, et de traiter la mise en
+    conformité avec les licences open-source.
+  \item Être capable de mettre en oeuvre un système de build Linux
+    embarqué, pour construire un système complet pour une plateforme
+    embarquée.
+  \item Être capable de développer et débugger des applications sur un
+    système Linux embarqué.
+    \vspace{-0.5cm}
+  \end{itemize}
+}
+\feagendasummaryitem{Durée}{
+  {\bf Six} demi-journées - 24 h (4 h par demi-journée)
+}
+\onlinepedagogics{embedded-linux}
+\feagendasummaryitem{Formateur}{
+  Un des ingénieurs mentionnés sur :
+  \newline \url{https://bootlin.com/training/trainers/}
+}
+\feagendasummaryitem{Langue}{
+  Présentations : Français
+  \newline Supports : Anglais
+}
+\feagendasummaryitem{Public ciblé}{
+  Ingénieurs développant des systèmes embarqués
+  reposant sur Linux et des composants open-source.
+}
+\feagendasummaryitem{Pré-requis}{
+  \begin{itemize}
+    \prerequisitecommandline
+    \prerequisiteenglish
+  \end{itemize}
+}
+\feagendasummaryitem{Équipement nécessaire}{
+  \begin{itemize}
+  \item Ordinateur avec le système d'exploitation de votre choix, équipé du
+    navigateur Google Chrome ou Chromium pour la conférence vidéo.
+  \item Une webcam et un micro (de préférence un casque avec micro)
+  \item Une connexion à Internet à haut débit
+  \end{itemize}
+}
+\certificate{}
+\disabilities{}
+
+\feagendatwocolumn
+{Matériel pour démonstrations pratiques}
+{
+  La plateforme matérielle utilisée pendant les démonstrations de
+  cette formation est la carte {\em STM32MP157D-DK1 Discovery de
+    STMicroelectronics}, dont voici les
+  caractéristiques :
+
+  \begin{itemize}
+  \item Processeur STM32MP157D avec deux coeurs ARM Cortex-A7
+  \item Alimentation par USB-C powered
+  \item 512 Mo de RAM DDR3L
+  \item Port gigabit Ethernet
+  \item 4 ports USB hôte 2.0
+  \item 1 port USB-C OTG
+  \item 1 connecteur micro SD
+  \item Debugger ST-LINK/V2-1 intégré à la carte
+  \item Broches compatibles Arduino Uno v3
+  \item Codec audio
+  \item Divers: boutons, LEDs
+  \end{itemize}
+}
+{}
+{
+  \begin{center}
+    \includegraphics[height=5cm]{../slides/discovery-board-dk1/discovery-board-dk1.png}
+  \end{center}
+}
+
+\feagendatwocolumn
+{Travaux pratiques optionels sur plateforme virtuelle}
+{
+  Pour les participants intéressés, nous proposons des travaux
+  pratiques optionels, à réaliser entre les sessions de formation, qui
+  utilisent la plateforme ARM Vexpress Cortex-A9 émulée par
+  QEMU. S'appuyant sur une plateforme émulée, aucun matériel
+  spécifique n'est nécessaire.
+}
+{}
+{
+  \begin{center}
+    \includegraphics[width=5cm]{agenda/qemu-logo.pdf}
+  \end{center}
+  \scriptsize Crédits image (Wikipedia) : \url{https://frama.link/mW71eosa}
+}
+
+\newpage
+
+\section{1\textsuperscript{ère} demi-journée}
+
+\feagendatwocolumn
+{Cours – Introduction à Linux embarqué}
+{
+  \begin{itemize}
+  \item Avantages de Linux par rapport aux autres OS pour l'embarqué.
+	Raisons pour choisir Linux.
+  \item Aperçu général : comprendre l'architecture d'un système Linux
+	embarqué. Aperçu des principaux éléments dans un système typique.
+  \end{itemize}
+  {\em Le reste de la formation étudie chacun de ces éléments en détail.}
+}
+{Cours - Environnement de développement}
+{
+  \begin{itemize}
+  \item Système d'exploitation et outils sur la station de travail
+	pour le développement de systèmes Linux embarqué.
+  \item Astuces pour l'utilisation de Linux sur station de travail.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Cours - Chaîne de compilation croisée et bibliothèque standard C}
+{
+  \begin{itemize}
+  \item Les composants d'une chaîne de compilation croisée.
+  \item Choisir une bibliothèque standard C.
+  \item Le contenu de la bibliothèque standard C.
+  \item Les chaînes de compilation croisée prêtes à l'emploi.
+  \item La construction automatisée d'une chaîne de compilation croisée.
+  \end{itemize}
+}
+{Démonstration – Chaîne de compilation croisée}
+{
+  \begin{itemize}
+  \item Configuration de Crosstool-NG
+  \item Exécution pour construire une chaîne de compilation croisée
+	personnalisée reposant sur la uClibc.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Cours – Chargeurs de démarrage}
+{
+  \begin{itemize}
+  \item Chargeurs de démarrage existants
+  \item Fonctionnalités des chargeurs de démarrage
+  \item Installation d'un chargeur de démarrage
+  \item Focus sur U-Boot
+  \end{itemize}
+}
+
+\section{2\textsuperscript{ème} demi-journée}
+
+\feagendaonecolumn
+{Démonstration - U-boot}
+{
+  {\em Utilisation de la carte STM32MP1 Discovery Kit 1}
+  \begin{itemize}
+  \item Mise en place de la communication série avec la carte.
+  \item Configuration, compilation et installation du chargeur de
+	démarrage de premier niveau et d'U-Boot sur la carte.
+  \item Familiarisation avec l'environnement et les commandes d'U-Boot.
+  \item Mise en place de la communication TFTP avec la carte.
+	Utilisation des commandes TFTP d'U-Boot.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Cours – Noyau Linux}
+{
+  \begin{itemize}
+  \item Rôle et architecture générale du noyau Linux.
+  \item Fonctionnalités disponibles dans le noyau Linux, en insistant
+	sur les fonctionnalités utiles dans les systèmes embarqués.
+  \item L'interface entre le noyau et les applications.
+  \item Récupérer les sources.
+  \item Comprendre les versions du noyau.
+  \item Utilisation de la commande patch.
+  \end{itemize}
+}
+{Démo - Sources du noyau}
+{
+  \begin{itemize}
+  \item Téléchargement des sources
+  \item Application de patches
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Cours – Configuration et compilation du noyau Linux}
+{
+  \begin{itemize}
+  \item Configuration du noyau.
+  \item Utilisation de configurations prêtes à l'emploi pour des cartes embarquées.
+  \item Compilation du noyau.
+  \item Fichiers générés à l'issue de la compilation.
+  \item Utilisation des modules noyau.
+  \end{itemize}
+}
+{Démonstration - Compilation croisée du noyau et démarrage sur la carte}
+{
+  {\em Utilisation de la carte STM32MP1 Discovery Kit 1}
+  \begin{itemize}
+  \item Configuration du noyau Linux et compilation croisée pour la carte ARM.
+  \item Mise en place d'un serveur TFTP sur la station de développement.
+  \item Téléchargement du noyau en utilisant le client TFTP d'U-Boot.
+  \item Démarrage du noyau depuis la RAM.
+  \item Copie du noyau vers la flash et démarrage depuis la flash.
+  \item Stockage des paramètres de démarrage en flash et automatisation
+	du démarrage du noyau.
+  \end{itemize}
+}
+
+\section{3\textsuperscript{ème} demi-journée}
+
+\feagendatwocolumn
+{Cours – Système de fichiers racine}
+{
+  \begin{itemize}
+  \item Les systèmes de fichiers dans Linux.
+  \item Rôle et organisation du système de fichiers racine.
+  \item Localisation de ce système de fichiers: sur espace
+	de stockage, en mémoire, sur le réseau.
+  \item Les fichiers device, les systèmes de fichiers virtuels.
+  \item Contenu type d'un système de fichiers.
+  \end{itemize}
+}
+{Cours - BusyBox}
+{
+  \begin{itemize}
+  \item Présentation de BusyBox. Intérêt pour les systèmes embarqués.
+  \item CConfiguration, compilation et installation.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Démo – Construction d'un système Linux embarqué minimal avec BusyBox}
+{
+  {\em Utilisation de la carte STM32MP1 Discovery Kit 1}
+  \begin{itemize}
+  \item Construction à partir de zéro d'un système de fichiers racine
+	contenant un système Linux embarqué
+  \item Mise en place d'un noyau permettant de démarrer le système
+	depuis un répertoire mis à disposition par la station de
+	développement au travers de NFS.
+  \item Passage de paramètres au noyau pour le démarrage avec NFS.
+  \item Création complète du système de fichiers à partir de zéro :
+	installation de BusyBox, création des fichiers spéciaux
+	pour les périphériques.
+  \item Initialisation du système en utilisant le programme init de BusyBox.
+  \item Utilisation du serveur HTTP de BusyBox.
+  \item Contrôle de la cible à partir d'un navigateur Web sur la
+	station de développement.
+  \item Mise en place des bibliothèques partagées sur la cible et
+	développement d'une application d'exemple.
+  \end{itemize}
+}
+
+\section{4\textsuperscript{ème} demi-journée}
+
+\feagendatwocolumn
+{Cours - Système de fichiers bloc}
+{
+  \begin{itemize}
+  \item Systèmes de fichiers pour périphériques bloc.
+  \item Utilité des systèmes de fichiers journalisés.
+  \item Systèmes de fichiers en lecture seule.
+  \item Systèmes de fichiers en RAM.
+  \item Création de chacun de ces systèmes de fichiers.
+  \item Suggestions pour les systèmes embarqués.
+  \end{itemize}
+}
+{Démonstration - Systèmes de fichiers bloc}
+{
+  {\em Utilisation de la carte STM32MP1 Discovery Kit 1}
+  \begin{itemize}
+  \item Démarrage d'un système avec un assemblage de plusieurs systèmes
+	de fichiers : SquashFS pour les applications, ext4 pour la
+	configuration et les données utilisateur et tmpfs pour les
+	fichiers temporaires.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Cours – Réutilisation de composants open-source existants pour le système
+embarqué}
+{
+  \begin{itemize}
+  \item Motivations pour la réutilisation de composants existants.
+  \item Trouver et choisir des composants libres et open-source existants.
+  \item Les licences de Logiciels Libres et leurs conditions.
+  \item Aperçu de composants typiquement utilisés dans les systèmes
+	Linux embarqués : bibliothèques et systèmes graphiques (framebuffer,
+	GTK, Qt, etc.), utilitaires système, bibliothèques et
+	utilitaires réseau, bibliothèques multimédia, etc.
+  \item Construction du système et intégration des composants.
+  \end{itemize}
+}
+
+\section{5\textsuperscript{ème} demi-journée}
+
+\feagendatwocolumn
+{Cours – Compilation croisée de bibliothèques et d'applications}
+{
+  \begin{itemize}
+  \item Configuration, compilation croisée et installation de bibliothèques
+	et d'applications pour un système embarqué
+  \item Détails sur le système de compilation utilisé dans la plupart
+	des composants open-source.
+  \item Aperçu des principaux problèmes rencontrés lors de la
+	réutilisation des composants.
+  \end{itemize}
+}
+{Démonstration – Compilation croisée de bibliothèques et d'applications}
+{
+  {\em Utilisation de la carte STM32MP1 Discovery Kit 1}
+  \begin{itemize}
+  \item Construction d'un système avec les bibliothèques ALSA et une
+	application de lecture audio.
+  \item Compilation et installation manuelle de plusieurs
+	composants open-source.
+  \item Apprentissage des principales techniques et des problèmes principaux.
+  \end{itemize}
+}
+
+\section{6\textsuperscript{ème} demi-journée}
+
+\feagendatwocolumn
+{Cours - Outils de construction de systèmes}
+{
+  \begin{itemize}
+  \item Outils de la communauté pour la construction
+	automatisée de systèmes.
+  \item Exemple de Buildroot.
+  \end{itemize}
+}
+{Démonstration - Construction d'un système avec Buildroot}
+{
+  {\em Utilisation de la carte STM32MP1 Discovery Kit 1}
+  \begin{itemize}
+  \item Utilisation de Buildroot pour construire de façon automatisée
+	un système similaire à celui de la démo précédente.
+  \item Voir à quel point cela est plus simple
+  \item Optionnel: rajout d'un paquet dans Buildroot
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Cours - Développement et déboguage d'application}
+{
+  \begin{itemize}
+  \item Langages de programmations et bibliothèques disponibles.
+  \item Aperçu de la bibliothèque C pour le développement d'applications.
+  \item Systèmes de construction pour votre application, comment utiliser des
+	bibliothèques existantes dans votre application.
+  \item Environnements de développement intégrés (IDE) et lecteur de code source.
+  \item Débogueurs : déboguage d'applications à distance avec gdb et gdbserver, analyse
+	post-mortem d'une application.
+  \item Analyseurs de code, analyseurs mémoire, outils de profiling.
+  \end{itemize}
+}
+{Démonstration – Développement et déboguage d'application}
+{
+  {\em Utilisation de la carte STM32MP1 Discovery Kit 1}
+  \begin{itemize}
+  \item Développement et compilation d'une application basée sur la bibliothèque
+	ncurses.
+  \item Utilisation de strace, ltrace et gdbserver pour déboguer une application de
+	mauvaise qualité sur le système embarqué
+  \item Exploitation d'un {\em core dump} pour identifier à quel endroit
+        une application s'est "plantée".
+  \end{itemize}
+}
+
+\end{document}




More information about the training-materials-updates mailing list