[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