[FE training-materials-updates] Add French kernel agenda + misc agenda fixes

Michael Opdenacker michael.opdenacker at free-electrons.com
Tue Mar 25 04:45:00 CET 2014


Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=5b5cf75d0d7f7acb564462e576e27bb6afd1f17a

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

commit 5b5cf75d0d7f7acb564462e576e27bb6afd1f17a
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Tue Mar 25 04:44:00 2014 +0100

    Add French kernel agenda + misc agenda fixes
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


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

5b5cf75d0d7f7acb564462e576e27bb6afd1f17a
 agenda/android-agenda.tex   |   10 +-
 agenda/boottime-agenda.tex  |    6 +-
 agenda/kernel-agenda.tex    |   48 ++--
 agenda/kernel-fr-agenda.tex |  517 +++++++++++++++++++++++++++++++++++++++++++
 agenda/yocto-agenda.tex     |    2 +-
 5 files changed, 556 insertions(+), 27 deletions(-)

diff --git a/agenda/android-agenda.tex b/agenda/android-agenda.tex
index 0ad1274..7c6dd5e 100644
--- a/agenda/android-agenda.tex
+++ b/agenda/android-agenda.tex
@@ -38,7 +38,11 @@ Android System Development Training\\
     Understanding the Android Build System \par
     Customizing Android for a specific hardware \par
     Extending the Android framework \par
-    Practical labs with the ARM-based BeagleBone Black.\\
+    Practical labs with the ARM-based BeagleBone Black board.
+    \newline\newline See our training materials on
+    \url{http://free-electrons.com/doc/training/android}.
+    This way, you can check by yourself whether the course contents
+    correspond to your needs. \\
     \hline
 
     {\bf Duration} & {\bf Four} days - 32 hours (8 hours per day).
@@ -98,7 +102,7 @@ Android System Development Training\\
 {Hardware}
 {
   The hardware platform used for the practical labs of this training
-  session is the {\bf BeagleBone Black}, which features:
+  session is the {\bf BeagleBone Black board}, which features:
 
   \begin{itemize}
   \item An ARM AM335x processor from Texas Instruments (Cortex-A8
@@ -201,7 +205,7 @@ Android System Development Training\\
 }
 {Lab - Supporting a board}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Use the Android's build for the BeagleBone Black
   \item Boot Android on a real board
diff --git a/agenda/boottime-agenda.tex b/agenda/boottime-agenda.tex
index 29d9f28..f808391 100644
--- a/agenda/boottime-agenda.tex
+++ b/agenda/boottime-agenda.tex
@@ -39,7 +39,11 @@ Boot Time Optimization Training\\
     Reducing kernel boot time \par
     Bootloader optimizations \par
     Advanced techniques and alternatives \par
-    Practical labs with ARM boards (SAMA5D3x evaluation kits from Atmel).\\
+    Practical labs with ARM boards (SAMA5D3x evaluation kits from Atmel).
+    \newline\newline See our training materials on
+    \url{http://free-electrons.com/doc/training/boot-time}.
+    This way, you can check by yourself whether the course contents
+    correspond to your needs. \\
     \hline
 
     {\bf Duration} & {\bf One} day - 8 hours.
diff --git a/agenda/kernel-agenda.tex b/agenda/kernel-agenda.tex
index fe2d069..1df2da2 100644
--- a/agenda/kernel-agenda.tex
+++ b/agenda/kernel-agenda.tex
@@ -39,7 +39,11 @@ Embedded Linux kernel and driver development training\\
     Linux kernel debugging \par
     Porting the Linux kernel to a new board \par
     Working with the kernel development community \par
-    Practical labs with the ARM-based Beagle Bone Black.\\
+    Practical labs with the ARM-based Beagle Bone Black board.
+    \newline\newline See our training materials on
+    \url{http://free-electrons.com/doc/training/linux-kernel}.
+    This way, you can check by yourself whether the course contents
+    correspond to your needs. \\
     \hline
 
     {\bf Duration} & {\bf Five} days - 40 hours (8 hours per day).
@@ -64,11 +68,11 @@ Embedded Linux kernel and driver development training\\
     \newline In particular, participants must be familiar
     with creating and dealing with complex data types and structures,
     with pointers to such symbols, as well as with function pointers.
-    \newline {\bf Knowledge and practice of UNIX or GNU/Linux commands}
+    \newline\newline {\bf Knowledge and practice of UNIX or GNU/Linux commands}
     \newline People lacking experience on this topic should get
     trained by themselves with our freely available on-line slides
     (\url{http://free-electrons.com/docs/command-line/}).
-    \newline {\bf Experience in embedded Linux development}.
+    \newline\newline {\bf Experience in embedded Linux development}.
     \newline Taking our Embedded Linux course
     (\url{http://free-electrons.com/training/embedded-linux/})
     first is not an absolute prerequisite, but it will definitely
@@ -113,7 +117,7 @@ Embedded Linux kernel and driver development training\\
 {Hardware}
 {
   The hardware platform used for the practical labs of this training
-  session is the {\bf BeagleBone Black}, which features:
+  session is the {\bf BeagleBone Black} board, which features:
 
   \begin{itemize}
   \item An ARM AM335x processor from Texas Instruments (Cortex-A8
@@ -142,7 +146,7 @@ Embedded Linux kernel and driver development training\\
 
   \begin{itemize}
   \item A Wii Nunchuk, which is connected over the I2C bus to the
-    BeagleBoneBlack. Its driver will use the Linux {\em input}
+    BeagleBone Black board. Its driver will use the Linux {\em input}
     subsystem.
   \item An additional UART, which is memory-mapped, and will use the
     Linux {\em misc} subsystem.
@@ -199,14 +203,14 @@ Embedded Linux kernel and driver development training\\
 {
   \begin{itemize}
   \item Kernel configuration.
-  \item Native and cross-compilation. Generated files.
+  \item Native and cross compilation. Generated files.
   \item Booting the kernel. Kernel booting parameters.
-  \item Booting the kernel using NFS.
+  \item Mounting a root filesystem on NFS.
   \end{itemize}
 }
 {Lab - Kernel configuration, cross-compiling and booting on NFS}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Configuring, cross-compiling and booting a Linux kernel with
     NFS boot support.
@@ -229,7 +233,7 @@ Embedded Linux kernel and driver development training\\
 }
 {Lab - Writing modules}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Write a kernel module with several capabilities.
   \item Access kernel internals from your module.
@@ -253,7 +257,7 @@ Embedded Linux kernel and driver development training\\
 }
 {Lab - Linux device model for an I2C driver}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Implement a driver that registers as an I2C driver
   \item Modify the Device Tree to list an I2C device
@@ -284,7 +288,7 @@ Embedded Linux kernel and driver development training\\
 \feagendaonecolumn
 {Lab - Communicate with the Nunchuk over I2C}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Configure the pin muxing for the I2C bus used to communicate
     with the Nunchuk
@@ -313,13 +317,13 @@ Embedded Linux kernel and driver development training\\
   \begin{itemize}
   \item Principle of the kernel {\em input} subsystem
   \item API offered to kernel drivers to expose input devices
-    capabilities to userspace application
+    capabilities to userspace applications
   \item Userspace API offered by the {\em input} subsystem
   \end{itemize}
 }
 {Lab - Expose the Nunchuk functionality to userspace}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Extend the Nunchuk driver to expose the Nunchuk features to
     userspace applications, as a {\em input} device.
@@ -353,7 +357,7 @@ Embedded Linux kernel and driver development training\\
 \feagendaonecolumn
 {Lab - Minimal platform driver and access to I/O memory}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Implement a minimal platform driver
   \item Modify the Device Tree to instantiate the new serial port
@@ -377,7 +381,7 @@ Embedded Linux kernel and driver development training\\
 }
 {Lab - Output-only serial port driver}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Extend the driver started in the previous lab by registering
     it into the {\em misc} subsystem
@@ -399,12 +403,12 @@ Embedded Linux kernel and driver development training\\
 }
 {Lab - Sleeping and handling interrupts in a device driver}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Adding read capability to the character driver developed
     earlier.
   \item Register an interrupt handler.
-  \item Waiting for data to be available in the read file operation.
+  \item Waiting for data to be available in the \code{read()} file operation.
   \item Waking up the code when data is available from the device.
   \end{itemize}
 }
@@ -415,7 +419,7 @@ Embedded Linux kernel and driver development training\\
 {Lecture - Locking}
 {
   \begin{itemize}
-  \item Issues with concurrent access to resources
+  \item Issues with concurrent access to shared resources
   \item Locking primitives: mutexes, semaphores, spinlocks.
   \item Atomic operations.
   \item Typical locking issues.
@@ -425,7 +429,7 @@ Embedded Linux kernel and driver development training\\
 }
 {Lab - Locking}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Observe problems due to concurrent accesses to the device.
   \item Add locking to the driver to fix these issues.
@@ -437,7 +441,7 @@ Embedded Linux kernel and driver development training\\
 {
   \begin{itemize}
   \item Debugging with printk
-  \item Debugfs entries
+  \item Using Debugfs
   \item Analyzing a kernel oops
   \item Using kgdb, a kernel debugger
   \item Using the Magic SysRq commands
@@ -446,10 +450,10 @@ Embedded Linux kernel and driver development training\\
 }
 {Lab - Investigating kernel faults}
 {
-  {\em Using the BeagleBoneBlack}
+  {\em Using the BeagleBone Black board}
   \begin{itemize}
   \item Studying a broken driver.
-  \item Analyzing a kernel fault and locating the problem in the
+  \item Analyzing a kernel fault message and locating the problem in the
     source code.
   \end{itemize}
 }
diff --git a/agenda/kernel-fr-agenda.tex b/agenda/kernel-fr-agenda.tex
new file mode 100644
index 0000000..15648b3
--- /dev/null
+++ b/agenda/kernel-fr-agenda.tex
@@ -0,0 +1,517 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{palatino}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Formation développement noyau et pilotes Linux},
+  pdfauthor={Free Electrons}}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+Formation développement noyau et pilotes Linux\\
+\large
+Session de 5 jours
+\end{center}
+\vspace{1cm}
+
+\small
+\newcolumntype{g}{>{\columncolor{fedarkblue}}m{4cm}}
+\newcolumntype{h}{>{\columncolor{felightblue}}X}
+
+\arrayrulecolor{lightgray} {
+  \setlist[1]{itemsep=-5pt}
+  \begin{tabularx}{\textwidth}{|g|h|}
+    {\bf Titre} & Formation développement noyau et pilotes Linux \\
+    \hline
+
+    {\bf Aperçu} &
+    Comprendre le noyau Linux \par
+    Développer des pilotes de périphérique pour le noyau Linux \par
+    Débogage du noyau Linux \par
+    Portage du noyau Linux sur un nouveau matériel \par
+    Travailler avec la communauté de développeurs du noyau Linux \par
+    Travaux pratiques sur carte électronique ARM BeagleBone Black
+    \newline\newline Voir nos supports de formation sur
+    \url{http://free-electrons.com/doc/training/linux-kernel}.
+    De cette manière, vous pouvez vérifier par vous-même si le contenu
+    correspond à vos besoins. \\
+    \hline
+
+    {\bf Durée} & {\bf Cinq} jours - 40 h (8 h par jour)
+    \newline 50\% de présentations et 50\% de travaux pratiques. \\
+    \hline
+
+    {\bf Formateur} & Un des ingénieurs mentionnés 
+    \newline sur \url{http://free-electrons.com/training/trainers/}\\
+    \hline
+
+    {\bf Langue} & Présentations: Français
+    \newline Supports: Anglais\\
+    \hline
+
+    {\bf Public ciblé} & Ingénieurs développant des systèmes reposant sur le noyau Linux. 
+    \newline Ingénieurs supportant des développeurs Linux embarqué.\\
+    \hline
+
+    {\bf Pré-requis} &
+
+    {\bf Expérience solide en programmation en langage C}
+    \newline En particulier, les participants devront maîtriser
+    la création et la gestion de types et de structures de données
+    complexes, de pointeurs vers de tels symboles, et de pointeurs de
+    fonctions.
+    \newline {\bf Connaissance et pratique des commandes Unix ou
+    GNU/Linux}
+    \newline Les personnes n'ayant pas ces connaissances doivent se
+    former en utilisant nos supports de formations disponibles en ligne
+    \newline (\url{http://free-electrons.com/docs/command-line/})
+    \newline {\bf Expérience en développement Linux embarqué}.
+    \newline Suivre au préalable notre Formation Linux Embarqué
+    \newline (\url{http://free-electrons.com/fr/formation/linux-embarque/})
+    \newline n'est pas un pré-requis absolu, mais sera très utile à toutes
+    personnes manquant d'expérience en Linux embarqué. 
+    Cela leur permettra de mieux comprendre l'environnement de
+    développement et les manipulations mises en oeuvre dans les
+    travaux pratiques, pour pouvoir se concentrer sur la programmation
+    du code du noyau Linux.
+    \\
+    \hline
+  \end{tabularx}
+
+  \begin{tabularx}{\textwidth}{|g|h|}
+    {\bf Équipement\newline nécessaire} &
+    {\bf Pour les sessions sur site uniquement}
+    \newline Le matériel est fourni par Free Electrons durant les sessions publiques 
+    \begin{itemize}
+    \item Projecteur vidéo
+    \item Un ordinateur sur chaque bureau (pour une ou deux personnes), avec au
+    moins 2 Go de RAM et Ubuntu Linux installé dans une {\bf partition
+    dédiée d'au moins 20 Go. L'utilisation de Linux dans une machine virtuelle
+    n'est pas supportée}, en raison de problèmes avec la connexion au matériel.
+    \item Nous avons besoin d'Ubuntu Desktop 12.04 (32 ou 64 bit, Xubuntu et
+    Kubuntu fonctionnent également). Nous ne supportons pas d'autres
+    distributions, car nous ne pouvons tester toutes les versions des
+    paquets.
+    \item {\bf Connexion à Internet} (directe ou par le proxy de l'entreprise).
+    \item {\bf Les ordinateurs contenant des données importantes doivent être
+    sauvegardés} avant d'être utilisés dans nos sessions. Certains
+    participants ont déjà commis des erreurs lors de travaux pratiques
+    avec pour conséquence des pertes de données.
+    \end{itemize} \\
+    \hline
+
+    {\bf Supports} & Versions électroniques et imprimées des
+    présentations et travaux pratiques. 
+    \newline Version électronique des données pour les travaux
+    pratiques..\\
+    \hline
+
+\end{tabularx}}
+\normalsize
+
+\feagendatwocolumn
+{Matériel}
+{
+  La plateforme matérielle utilisée pendant les travaux pratiques de
+  cette formation est la carte {\bf BeagleBone Black}, dont voici les 
+  caractéristiques:
+
+  \begin{itemize}
+  \item Un processeur ARM AM335x de Texas Instruments (à base de
+    Cortex-A8), avec accélération 3D, etc.
+  \item 512 Mo de RAM
+  \item 2 Go de stockage eMMC embarqué sur la carte
+  \item USB hôte et device
+  \item Sortie HDMI
+  \item Connecteurs à 2 x 46 broches, pour accéder aux UARTs, aux
+        bus SPI, aux bus I2C, et à d'autres entrées/sorties du
+        processeur.
+  \end{itemize}
+}
+{}
+{
+  \begin{center}
+    \includegraphics[height=5cm]{agenda/beagleboneblack.png}
+  \end{center}
+}
+
+\feagendaonecolumn
+{Travaux pratiques}
+{
+  Les travaux pratiques de cette formation font appel aux périphériques
+  matériels suivants, pour illustrer le développement de pilotes de
+  périphériques pour Linux:
+
+  \begin{itemize}
+  \item Une manette Nunchuk pour console Wii, qui est connectée à la 
+    BeagleBone Black via le bus I2C. Son pilote utilisera le
+    sous-système {\em input} du noyau Linux.
+  \item Un port série (UART) supplémentaire, dont les registres sont
+    mappés en mémoire, et pour lequel on utilisera le sous-système {\em
+    misc} de Linux.
+  \end{itemize}
+
+  Bien que nos explications cibleront spécifiquement les sous-systèmes
+  de Linux utilisés pour réaliser ces pilotes, celles-ci seront toujours
+  suffisamment génériques pour faire comprendre la philosophie
+  d'ensemble de la conception du noyau Linux. Un tel apprentissage
+  sera donc applicable bien au delà des périphériques I2C, d'entrée ou
+  mappés en mémoire.  
+}
+
+
+\section{1\textsuperscript{er} jour - Matin}
+
+\feagendaonecolumn
+{Cours - Introduction au noyau Linux}
+{
+  \begin{itemize}
+  \item Fonctionnalités et rôle du noyau. 
+  \item Comprendre le processus de développement du noyau.
+  \item Contraintes juridiques liées aux pilotes de périphériques. 
+  \item L'interface noyau / espace utilisateur (/proc et /sys).
+  \item Pilotes de périphériques en espace utilisateur. 
+  \end{itemize}
+}
+\\
+\feagendatwocolumn
+{Cours - Les sources du noyau}
+{
+  \begin{itemize}
+  \item Spécificités du développement noyau 
+  \item Conventions de codage 
+  \item Récupération des sources du noyau 
+  \item Aperçu des sources du noyau 
+  \item Outils de navigation dans les sources: cscope, Linux Cross
+    Reference (LXR) 
+  \end{itemize}
+}
+{TP - Code source du noyau}
+{
+  \begin{itemize}
+  \item Récupération des sources du noyau
+  \item Effectuer des recherches dans les sources du noyau Linux :
+    recherche de définitions C, de paramètres de configuration et d'autres
+    informations. 
+  \item En utilisant la ligne de commande Unix et des outils de
+    navigation dans le code. 
+ \end{itemize}
+}
+
+\section{1\textsuperscript{er} Jour - Après-midi}
+\feagendatwocolumn
+{Cours – Configuration, compilation et démarrage du noyau Linux}
+{
+  \begin{itemize}
+  \item Configuration du noyau.
+  \item Compilation native et croisée. Fichiers générés.
+  \item Démarrage du noyau. Paramètres de démarrage. 
+  \item Montage du système de fichiers racine par NFS.
+  \end{itemize}
+}
+{TP – Configuration, compilation croisée et démarrage sur NFS}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Configuration, compilation croisée et démarrage du noyau Linux
+    avec support de NFS.
+  \end{itemize}
+}
+\\
+\section{2\textsuperscript{ème} jour - Matin}
+
+\feagendatwocolumn
+{Cours – Modules noyau Linux}
+{
+  \begin{itemize}
+  \item Pilotes de périphériques Linux 
+  \item Un module simple 
+  \item Contraintes de programmation 
+  \item Chargement et déchargement de modules 
+  \item Dépendances entre modules 
+  \item Ajouter du code source à l'arbre du noyau 
+  \end{itemize}
+}
+{TP - Développement de module}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Écriture d'un module noyau offrant quelques fonctionnalités
+  \item Accès aux informations internes du noyau depuis le module
+  \item Mise en place de l'environnement de compilation 
+  \end{itemize}
+}
+
+\section{2\textsuperscript{ème} jour - Après-midi}
+
+\feagendatwocolumn
+{Lecture - Le "device model" de Linux}
+{
+  \begin{itemize}
+  \item Comprendre comment le noyau est conçu pour supporter les pilotes
+    de périphériques 
+  \item Le "device model"
+  \item Connexion entre périphériques et pilotes. 
+  \item Périphériques "platform", le "Device Tree"
+  \item Interface en espace utilisateur avec \code{/sys}
+  \end{itemize}
+}
+{TP - Device model de Linux pour un pilote I2C}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Réalisation d'un pilote qui s'enregistre comme
+     un pilote I2C.
+  \item Modification du Device Tree pour déclarer un 
+     périphérique I2C.
+  \item Faire en sorte que le pilote soit appelé quand le
+     périphérique I2C est énuméré au démarrage.
+  \end{itemize}
+}
+
+\section{3\textsuperscript{ème} jour - Matin}
+
+\feagendatwocolumn
+{Cours - Introduction à l'API I2C}
+{
+  \begin{itemize}
+  \item Le sous-système I2C du noyau
+  \item Détails sur l'API fournie aux pilotes du noyau pour interagir 
+    avec les périphériques I2C.
+  \end{itemize}
+}
+{Cours - "Pin muxing" (multiplexage d'entrées-sorties)}
+{
+  \begin{itemize}
+  \item Comprendre l'infrastructure {\em pinctrl} du noyau.
+  \item Comprendre comment configurer le multiplexage des
+    entrées/sorties.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{TP - Communiquer avec le Nunchuk via I2C}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Configurer le pin muxing pour le bus I2C utilisé pour
+    communiquer avec le Nunchuk
+  \item Étendre le pilote I2C commencé au TP précédent pour 
+    communiquer avec le Nunchuk à travers le bus I2C.
+  \end{itemize}
+}
+
+\section{3\textsuperscript{ème} jour - Après-midi}
+
+\feagendaonecolumn
+{Cours - Infrastructures du noyau}
+{
+  \begin{itemize}
+  \item Périphériques de type bloc et caractère
+  \item Interaction entre applications en espace utilisateur et le noyau
+  \item Détails sur les pilotes caractère,  \code{file_operations},
+    \code{ioctl()}, etc.
+  \item Échange de données vers ou depuis l'espace utilisateur
+  \item Le principe des infrastructures du noyau
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Cours - Le sous-système input}
+{
+  \begin{itemize}
+  \item Principe du sous-système {\em input} du noyau
+  \item API offerte aux pilotes du noyau pour exposer 
+    des fonctionnalités de périphériques d'entrée aux 
+    applications en espace utilisateur. 
+  \item API en espace utilisateur offerte par le 
+    sous-système {\em input}
+  \end{itemize}
+}
+{TP - Exposer la fonctionnalité du Nunchuk en espace utilisateur}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Extension du pilote du Nunchuk pour exposer les fonctionnalités
+    du Nunchuk aux applications en espace utilisateur, comme
+    un périphérique d'entrée.
+  \item S'assurer du bon fonctionnement du Nunchuk via 
+    des applications simples en espace utilisateur.
+  \end{itemize}
+}
+
+\section{4\textsuperscript{ème} jour - Matin}
+
+\feagendatwocolumn
+{Cours - Gestion de la mémoire}
+{
+  \begin{itemize}
+  \item Linux: gestion de la mémoire. Espaces d'adressages physique et
+     virtuel, séparation noyau et espace utilisateur.
+  \item Implémentation de la gestion de la mémoire dans Linux.
+  \item Allocation avec \code{kmalloc()}.
+  \item Allocation par pages.
+  \item Allocation avec \code{vmalloc()}.
+  \end{itemize}
+}
+{Cours - Entrées-sorties avec le matériel}
+{
+  \begin{itemize}
+  \item Enregistrement des plages de ports d'E/S et de mémoire d'E/S. 
+  \item Accès aux plages de ports d'E/S et de mémoire d'E/S. 
+  \item Barrières mémoire. 
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{TP - Pilote "platform" minimal et accès à la mémoire d'E/S}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Réalisation d'un pilote "platform" minimal
+  \item Modification du Device Tree pour ajouter un nouveau
+    port série.
+  \item Réservation des adresses d'E/S utilisées par le port série.
+  \item Lecture et écriture des registres du périphérique, pour
+    envoyer des caractères sur le port série.
+  \end{itemize}
+}
+
+\section{4\textsuperscript{ème} jour - Après-midi}
+
+\feagendatwocolumn
+{Cours - Le sous-système misc}
+{
+  \begin{itemize}
+  \item Utilité du sous-système {\em misc} du noyau
+  \item API du sous-système {\em misc}, à la fois du côté du noyau, et
+    du côté de l'espace utilisateur.
+  \end{itemize}
+}
+{TP - Pilote de port série en écriture seule}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Extension du pilote commencé dans le TP précédent, en
+    enregistrant celui-ci dans le sous-système {\em misc}
+  \item Implémentation de l'écriture vers le port série en
+    utilisant le sous-système {\em misc}
+  \item Tests d'écriture depuis l'espace utilisateur
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Cours - Processus, ordonnancement, sommeil et interruptions}
+{
+  \begin{itemize}
+  \item Gestion des processus dans le noyau Linux. 
+  \item L'ordonnanceur du noyau Linux et la mise en sommeil des processus.
+  \item Gestion des interruptions dans les pilotes de périphérique:
+    enregistrement et développement des gestionnaires d'interruption,
+    exécution différée de tâches.
+  \end{itemize}
+}
+{TP - Mise en sommeil et gestion d'interruptions dans un pilote de périphérique}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Ajout de la fonctionnalité de lecture au pilote caractère développé
+    précédemment.
+  \item Enregistrement d'un gestionnaire d'interruption.
+  \item Attente de la disponibilité de données dans l'opération \code{read()}
+  \item Réveil lorsque les données deviennent disponibles. 
+  \end{itemize}
+}
+
+\section{5\textsuperscript{ème} jour - Matin}
+
+\feagendatwocolumn
+{Cours - Verrouillage} 
+{
+  \begin{itemize}
+  \item Problématique de l'accès concurrent à des ressources partagées
+  \item Primitives de verrouillage: mutexes, sémaphores, spinlocks. 
+  \item Opérations atomiques. 
+  \item Problèmes typiques de verrouillage. 
+  \item Utilisation du validateur de verrouillage pour identifier les
+    sources de problèmes. 
+  \end{itemize}
+}
+{TP - Verrouillage}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Observation de problèmes liés à des accès concurrents au
+    périphérique.
+  \item Ajout de mécanismes de verrouillage au pilote pour corriger 
+    ces problèmes.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Cours - Techniques de débogage noyau} 
+{
+  \begin{itemize}
+  \item Débogage avec printk 
+  \item Utilisation de debugfs
+  \item Analyse d'un oops noyau
+  \item Utilisation de kgdb, un débogueur noyau 
+  \item Utilisation des commandes SysRq 
+  \item Débogage en utilisant une sonde JTAG 
+  \end{itemize}
+}
+{TP - Investigation de bugs noyau}
+{
+  {\em En utilisant la carte BeagleBone Black}
+  \begin{itemize}
+  \item Étude d'un pilote incorrect. 
+  \item Analyse du message d'erreur et recherche du problème dans le code
+    source. 
+  \end{itemize}
+}
+
+\section{5\textsuperscript{ème} jour - Après-midi}
+
+\feagendatwocolumn
+{Cours - Support de cartes et de SoC ARM}
+{
+  \begin{itemize}
+  \item Comprendre l'organisation du code supportant la plateforme ARM
+  \item Comprendre comment le noyau peut être porté vers un nouveau
+    matériel
+  \end{itemize}
+}
+{Cours - Gestion de l'énergie}
+{
+  \begin{itemize}
+  \item Vue d'ensemble des fonctionnalités de gestion d'énergie du noyau
+    Linux.
+  \item Sujets abordés: horloges, mise en veille et réveil, ajustement
+    automatique de la fréquence, économie d'énergie dans la boucle idle,
+    "runtime power management", régulateurs, etc.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Cours - Le processus de développement du noyau Linux}
+{
+  \begin{itemize}
+  \item Organisation de la communauté du noyau Linux
+  \item Le processus de développement: versions bêta, versions stables,
+    versions long-terme, etc.
+  \item Licences et aspects légaux.
+  \item Comment soumettre des contributions de code à la communauté.
+  \end{itemize}
+}
+
+\end{document}
+
diff --git a/agenda/yocto-agenda.tex b/agenda/yocto-agenda.tex
index f989de5..98bcdee 100644
--- a/agenda/yocto-agenda.tex
+++ b/agenda/yocto-agenda.tex
@@ -102,7 +102,7 @@ Yocto Project and OpenEmbedded training\\
 {Hardware}
 {
   The hardware platform used for the practical labs of this training
-  session is the {\bf BeagleBone Black}, which features:
+  session is the {\bf BeagleBone Black board}, which features:
 
   \begin{itemize}
   \item An ARM AM335x processor from Texas Instruments (Cortex-A8



More information about the training-materials-updates mailing list