From bbfb048de2fd5138287a6dfecc19c5c1f1909142 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 13 Jan 2023 13:59:47 +0100 Subject: [PATCH] agenda: refactor agenda items of Yocto course Signed-off-by: Thomas Bonnefille --- agenda/common.inc | 30 ++ agenda/yocto-agenda.tex | 259 ++------------ agenda/yocto-fr-agenda.tex | 260 ++------------ agenda/yocto-online-agenda.tex | 227 ++---------- agenda/yocto-online-fr-agenda.tex | 257 ++------------ agenda/yocto.inc | 568 ++++++++++++++++++++++++++++++ 6 files changed, 690 insertions(+), 911 deletions(-) create mode 100644 agenda/common.inc diff --git a/agenda/common.inc b/agenda/common.inc new file mode 100644 index 0000000000..e5c5e9c54e --- /dev/null +++ b/agenda/common.inc @@ -0,0 +1,30 @@ +\newcommand\defagendaitem[6]{ + \ifthenelse{\equal{\agendalanguage}{french}}{ + \expandafter\def\csname #1@#2@title\endcsname {#5} + \expandafter\def\csname #1@#2@contents\endcsname {#6} + }{ + \expandafter\def\csname #1@#2@title\endcsname {#3} + \expandafter\def\csname #1@#2@contents\endcsname {#4} + } +} + +\newcommand\showagendaitem[2]{ + \feagendaonecolumn{ + \ifthenelse{\equal{\agendalanguage}{french}}{ + \ifthenelse{\equal{#2}{lecture}} + {Cours -} + { + \ifthenelse{\equal{\trainingtype}{online}}{Démo -}{TP -} + } + }{ + \ifthenelse{\equal{#2}{lecture}} + {Lecture -} + { + \ifthenelse{\equal{\trainingtype}{online}}{Demo -}{Lab -} + } + } + \csname #1@#2@title\endcsname + }{ + \csname #1@#2@contents\endcsname + } +} diff --git a/agenda/yocto-agenda.tex b/agenda/yocto-agenda.tex index 7303afe622..22823bd694 100644 --- a/agenda/yocto-agenda.tex +++ b/agenda/yocto-agenda.tex @@ -87,264 +87,51 @@ \section{Day 1 - Morning} -\feagendaonecolumn -{Lecture - Introduction to embedded Linux build systems} -{ - \begin{itemize} - \item Overview of an embedded Linux system architecture - \item Methods to build a root filesystem image - \item Usefulness of build systems - \end{itemize} -} +\showagendaitem{intro}{lecture} -\feagendaonecolumn -{Lecture - Yocto Project and Poky reference system overview} -{ - \begin{itemize} - \item Introduction to the Yocto / OpenEmbedded build system and its lexicon - \item Overview of the Poky reference system - \end{itemize} -} +\showagendaitem{overview}{lecture} -\feagendatwocolumn -{Lecture - Using Yocto Project - basics} -{ - \begin{itemize} - \item Setting up the build directory and environment - \item Configuring the build system - \item Building a root filesystem image - \end{itemize} -} -{Lab 1 - First Yocto Project build} -{ - \begin{itemize} - \item Downloading the Poky reference build system - \item Configuring the build system - \item Building a system image - \end{itemize} -} +\showagendaitem{firstbuild}{lab} \section{Day 1 - Afternoon} -\feagendatwocolumn -{Lecture - Using Yocto Project - basics} -{ - \begin{itemize} - \item Organization of the build output - \end{itemize} -} -{Lab 1 - Flashing and booting} -{ - \begin{itemize} - \item Flashing and booting the image on the board - \end{itemize} -} +\showagendaitem{basics}{lecture} + +\showagendaitem{flashingbooting}{lab} + +\showagendaitem{usingadvanced}{lecture} + +\showagendaitem{nfsconfiguring}{lab} -\feagendatwocolumn -{Lecture - Using Yocto Project - advanced usage} -{ - \begin{itemize} - \item Variable assignment, operators and overrides - \item Package variants and package selection - \item bitbake command line options - \end{itemize} -} -{Lab 2 - Using NFS and configuring the build} -{ - \begin{itemize} - \item Configuring the board to boot over NFS - \item Add a package to the root filesystem - \item Learn how to use the \code{PREFERRED_PROVIDER} mechanism - \item Get familiar with the bitbake command line options - \end{itemize} -} -\\ \section{Day 2 - Morning} -\feagendatwocolumn -{Lecture - Writing recipes - basics} -{ - \begin{itemize} - \item Recipes: overview - \item Recipe file organization - \item Applying patches - \item Recipe examples - \end{itemize} -} -{Lab 3 - Adding an application to the build} -{ - \begin{itemize} - \item Writing a recipe for {\em nInvaders} - \item Troubleshooting the recipe - \item Troubleshooting cross-compilation issues - \item Adding {\em ninvaders} to the final image - \end{itemize} -} +\showagendaitem{writingrecipebasics}{lecture} -\feagendaonecolumn -{Lecture - Writing recipes - advanced features} -{ - \begin{itemize} - \item Extending and overriding recipes - \item Virtual packages - \item Learn about classes - \item BitBake file inclusions - \item Debugging recipes - \item Configuring BitBake network usage - \end{itemize} -} +\showagendaitem{appcompilation}{lab} + +\showagendaitem{writingrecipesadvanced}{lecture} \section{Day 2 - Afternoon} -\feagendatwocolumn -{Lecture - Layers} -{ - \begin{itemize} - \item What layers are - \item Where to find layers - \item Creating a layer - \end{itemize} -} -{Lab 4 - Writing a layer} -{ - \begin{itemize} - \item Learn how to write a layer - \item Add the layer to the build - \item Move {\em ninvaders} to the new layer - \end{itemize} -} +\showagendaitem{layers}{lecture} -\section{Day 3 - Morning} +\showagendaitem{writinglayer}{lab} -\feagendaonecolumn -{Lab 5 - Extend a recipe} -{ - \begin{itemize} - \item Extend the kernel recipe to add patches - \item Configure the kernel to compile the nunchuk driver - \item Edit the ninvaders recipe to add patches - \item Play {\em nInvaders} - \end{itemize} -} +\section{Day 3 - Morning} -\feagendatwocolumn -{Lecture - Writing a BSP} -{ - \begin{itemize} - \item Introduction to BSP layers - \item Adding a new machine - \item Bootloader configuration - \item Linux: the kernel bbclass and the linux-yocto recipe - \end{itemize} -} -{Lab 6 - Create a custom machine configuration} -{ - \begin{itemize} - \item Create a new machine configuration - \item Build an image for the new machine - \end{itemize} -} +\showagendaitem{writingbsp}{lecture} -\feagendaonecolumn -{Lecture - Distro layers} -{ - \begin{itemize} - \item Distro configuration - \item Distro layers - \end{itemize} -} - -\feagendatwocolumn -{Lecture - Images} -{ - \begin{itemize} - \item Writing an image recipe - \item Image types - \item Writing and using package groups recipes - \end{itemize} -} -{Lab 7 - Create a custom image} -{ - \begin{itemize} - \item Add a basic image recipe - \item Select the image capabilities and packages - \item Add a custom package group - \item Add an image variant for debugging - \end{itemize} -} +\showagendaitem{kernelchanges}{lab} \section{Day 3 - Afternoon} -\feagendatwocolumn -{Lecture - Writing recipes - going further} -{ - \begin{itemize} - \item The per-recipe sysroot - \item Using Python code in metadata - \item Variable flags - \item Packages features and PACKAGECONFIG - \item Conditional features - \item Package splitting - \item Dependencies in detail - \end{itemize} -} -{Lecture - Licensing} -{ - \begin{itemize} - \item Managing open source licenses - \end{itemize} -} +\showagendaitem{image}{lecture} -\feagendatwocolumn -{Lecture - The Yocto Project SDK} -{ - \begin{itemize} - \item Goals of the SDK - \item Building and customizing an SDK - \item Using the Yocto Project SDK - \end{itemize} -} -{Lab 8 - Develop your application in the Poky SDK} -{ - \begin{itemize} - \item Building an SDK - \item Using the Yocto Project SDK - \end{itemize} -} +\showagendaitem{image}{lab} -\feagendatwocolumn -{Lecture - Devtool} -{ - \begin{itemize} - \item About devtool - \item Devtool use cases - \end{itemize} -} -{Lab 9 - Using devtool} -{ - \begin{itemize} - \item Generate a new recipe - \item Modify a recipe to add a new patch - \item Upgrade a recipe to a newer version - \end{itemize} -} +\showagendaitem{sdk}{lecture} -\feagendatwocolumn -{Lecture - Automating layer management} -{ - \begin{itemize} - \item Automating layer management - \end{itemize} -} -{Lecture - Runtime Package Management} -{ - \begin{itemize} - \item Introduction to runtime package management - \item Build configuration - \item Package server configuration - \item Target configuration - \end{itemize} -} +\showagendaitem{sdk}{lab} \end{document} diff --git a/agenda/yocto-fr-agenda.tex b/agenda/yocto-fr-agenda.tex index ee415acf19..051edc8951 100644 --- a/agenda/yocto-fr-agenda.tex +++ b/agenda/yocto-fr-agenda.tex @@ -87,264 +87,50 @@ \section{1\textsuperscript{er} jour - Matin} -\feagendaonecolumn -{Cours - Introduction aux outils de compilation de systèmes Linux embarqué} -{ - \begin{itemize} - \item Vue d'ensemble de l'architecture d'un système Linux embarqué - \item Méthodes pour compiler un système de fichiers - \item Utilité des outils de compilation - \end{itemize} -} +\showagendaitem{intro}{lecture} -\feagendaonecolumn -{Cours - Vue d'ensemble de Yocto Project et du système de référence Poky} -{ - \begin{itemize} - \item Présentation de l'outil de compilation Yocto / OpenEmbedded et de sa terminologie. - \item Vue d'ensemble du système de référence Poky - \end{itemize} -} +\showagendaitem{overview}{lecture} -\feagendatwocolumn -{Cours - Bases de l'utilisation de Yocto Project} -{ - \begin{itemize} - \item Mise en place du répertoire de travail et de l'environnement - \item Configuration de l'outil de compilation - \item Compilation de l'image d'un système de fichiers racine - \end{itemize} -} -{TP 1 - 1\textsuperscript{ère} compilation avec Yocto Project} -{ - \begin{itemize} - \item Téléchargement du système de référence Poky - \item Configuration de l'outil de compilation - \item Compilation d'une image système - \end{itemize} -} +\showagendaitem{firstbuild}{lab} \section{1\textsuperscript{er} Jour - Après-midi} -\feagendatwocolumn -{Cours - Utilisation de Yocto Project - Notions de base} -{ - \begin{itemize} - \item Structure des fichiers générés - \end{itemize} -} -{TP 1- Flasher et booter} -{ - \begin{itemize} - \item Flasher et booter l'image du système sur la carte - \end{itemize} -} +\showagendaitem{basics}{lecture} + +\showagendaitem{flashingbooting}{lab} + +\showagendaitem{usingadvanced}{lecture} + +\showagendaitem{nfsconfiguring}{lab} -\feagendatwocolumn -{Cours - Utilisation de Yocto Project - Utilisation avancée} -{ - \begin{itemize} - \item Assignation des variables, opérateurs et surcharge - \item Paquetages: variantes de paquetages - \item Options de la commande bitbake - \end{itemize} -} -{TP 2- Utilisation de NFS et configuration de la compilation} -{ - \begin{itemize} - \item Configurer la carte pour démarrer via NFS - \item Rajouter un paquetage au système de fichiers racine - \item Apprendre à utiliser le mécanisme \code{PREFERRED_PROVIDER} - \item Se familiariser avec les options de la commande bitbake - \end{itemize} -} -\\ \section{2\textsuperscript{ème} jour - Matin} -\feagendatwocolumn -{Cours - Écriture de recettes - Fonctionnalités de base} -{ - \begin{itemize} - \item Recettes: vue d'ensemble - \item Organisation d'un fichier de recette - \item Application de patches - \item Exemples de recettes - \end{itemize} -} -{TP 3 - Ajouter la compilation d'une application} -{ - \begin{itemize} - \item Création d'une recette pour {\em nInvaders} - \item Résolution de problèmes liés à la recette - \item Résolution de problèmes liés à la compilation croisée - \item Ajout d'{\em nInvaders} à l'image finale - \end{itemize} -} +\showagendaitem{writingrecipebasics}{lecture} -\feagendaonecolumn -{Cours - Écriture de recettes - Fonctionnalités avancées} -{ - \begin{itemize} - \item Extension et redéfinition de recettes - \item Paquetages virtuels - \item Familiarisation avec les classes - \item Inclusion d'exemples avec BitBake - \item Mise au point des recettes - \item Configuration de l'utilisation du réseau par BitBake - \end{itemize} -} +\showagendaitem{appcompilation}{lab} -\section{2\textsuperscript{ème} jour - Après-midi} +\showagendaitem{writingrecipesadvanced}{lecture} -\feagendatwocolumn -{Cours - Layers} -{ - \begin{itemize} - \item Ce que sont les {\em layers} - \item Où trouver les {\em layers} - \item Création d'un {\em layer} - \end{itemize} -} -{TP 4- Écriture d'un layer} -{ - \begin{itemize} - \item Apprendre à écrire un {\em layer} - \item Ajouter le {\em layer} à la compilation - \item Inclure {\em nInvaders} dans le nouveau {\em layer} - \end{itemize} -} +\section{2\textsuperscript{ème} jour - Après-midi} -\section{3\textsuperscript{ème} jour - Matin} +\showagendaitem{layers}{lecture} -\feagendaonecolumn -{TP 5 - Étendre une recette} -{ - \begin{itemize} - \item Étendre la recette pour le noyau pour rajouter des patches - \item Configurer le noyau pour compiler le pilote du nunchuk - \item Modifier la recette ninvaders pour rajouter des patches - \item Jouer avec {\em nInvaders} - \end{itemize} -} +\showagendaitem{writinglayer}{lab} -\feagendatwocolumn -{Cours - Écriture d'un BSP} -{ - \begin{itemize} - \item Introduction aux layers BSP - \item Ajout d'une nouvelle machine - \item Configuration du chargeur de démarrage - \item Linux : la classe kernel.bbclass et la recette linux-yocto - \end{itemize} -} -{TP 6 - Création d'une configuration spécifique pour une machine} -{ - \begin{itemize} - \item Créer un nouvelle configuration de machine - \item Compiler une image pour la machine - \end{itemize} -} +\section{3\textsuperscript{ème} jour - Matin} -\feagendaonecolumn -{Cours - Layers de distribution} -{ - \begin{itemize} - \item Configuration d'une distribution - \item Layers de distribution - \end{itemize} -} +\showagendaitem{writingbsp}{lecture} -\feagendatwocolumn -{Cours - Images} -{ - \begin{itemize} - \item Écriture d'une recette d'image - \item Types d'images - \item Écriture et utilisation de groupes de paquetages - \end{itemize} -} -{TP 7- Création d'une image sur mesure} -{ - \begin{itemize} - \item Rajouter une recette de base pour une image - \item Sélectionner les fonctionnalités et les paquetages de l'image - \item Ajouter un groupe de paquetages sur mesure - \item Ajouter une variante d'image pour le débogage - \end{itemize} -} +\showagendaitem{kernelchanges}{lab} \section{3\textsuperscript{ème} jour - Après-midi} -\feagendatwocolumn -{Cours - Écriture de recettes - Pour aller plus loin} -{ - \begin{itemize} - \item Le sysroot de chaque recette - \item Utilisation de code Python code dans les méta-données - \item Drapeaux de variables - \item Fonctionnalités de paquetages et PACKAGECONFIG - \item Fonctionnalités conditionnelles - \item Découpage de paquetages - \item Détails sur les dépendances - \end{itemize} -} -{Cours - Licences} -{ - \begin{itemize} - \item Gestion de licences open source - \end{itemize} -} +\showagendaitem{image}{lecture} -\feagendatwocolumn -{Cours - SDK pour le projet Yocto} -{ - \begin{itemize} - \item Objectifs du SDK - \item Compilation et personnalisation d'un SDK - \item Utilisation d'un SDK pour le projet Yocto - \end{itemize} -} -{TP 8 - Développement d'une application au moyen du SDK de Poky} -{ - \begin{itemize} - \item Compilation d'un SDK - \item Utilisation du SDK - \end{itemize} -} +\showagendaitem{image}{lab} -\feagendatwocolumn -{Cours - Devtool} -{ - \begin{itemize} - \item Présentation devtool - \item Cas d'utilisation de devtool - \end{itemize} -} -{TP 9 - Utilisation de devtool} -{ - \begin{itemize} - \item Création d'une nouvelle recette - \item Modification d'une recette pour ajouter un nouveau patch - \item Mettre à jour une recette pour prendre en charge une nouvelle version - \end{itemize} -} +\showagendaitem{sdk}{lecture} -\feagendatwocolumn -{Cours - Gestion automatique de layers} -{ - \begin{itemize} - \item Gestion automatique de layers - \end{itemize} -} -{Cours - Gestion de paquetages à l'exécution} -{ - \begin{itemize} - \item Introduction à la gestion de paquetages à l'exécution - \item Configuration de la compilation - \item Configuration d'une serveur de paquetages - \item Configuration de la machine cible - \end{itemize} -} +\showagendaitem{sdk}{lab} \end{document} - diff --git a/agenda/yocto-online-agenda.tex b/agenda/yocto-online-agenda.tex index 70461fe244..e9d0cd5cd9 100644 --- a/agenda/yocto-online-agenda.tex +++ b/agenda/yocto-online-agenda.tex @@ -87,227 +87,48 @@ \section{Half day 1} -\feagendaonecolumn -{Lecture - Introduction to embedded Linux build systems} -{ - \begin{itemize} - \item Overview of an embedded Linux system architecture - \item Methods to build a root filesystem image - \item Usefulness of build systems - \end{itemize} -} -\feagendaonecolumn -{Lecture - Yocto Project and Poky reference system overview} -{ - \begin{itemize} - \item Introduction to the Yocto / OpenEmbedded build system and its lexicon - \item Overview of the Poky reference system - \end{itemize} -} +\showagendaitem{intro}{lecture} -\feagendatwocolumn -{Lecture - Using Yocto Project - basics} -{ - \begin{itemize} - \item Setting up the build directory and environment - \item Configuring the build system - \item Building a root filesystem image - \end{itemize} -} -{Demo 1 - First Yocto Project build} -{ - \begin{itemize} - \item Downloading the Poky reference build system - \item Configuring the build system - \item Building a system image - \end{itemize} -} +\showagendaitem{overview}{lecture} -\feagendatwocolumn -{Lecture - Using Yocto Project - basics} -{ - \begin{itemize} - \item Organization of the build output - \end{itemize} -} -{Demo 1 - Flashing and booting} -{ - \begin{itemize} - \item Flashing and booting the image on the board - \end{itemize} -} +\showagendaitem{firstbuild}{lab} + +\showagendaitem{basics}{lecture} + +\showagendaitem{flashingbooting}{lab} \section{Half day 2} -\feagendatwocolumn -{Lecture - Using Yocto Project - advanced usage} -{ - \begin{itemize} - \item Variable assignment, operators and overrides - \item Package variants and package selection - \item bitbake command line options - \end{itemize} -} -{Demo 2 - Using NFS and configuring the build} -{ - \begin{itemize} - \item Configuring the board to boot over NFS - \item Add a package to the root filesystem - \item Learn how to use the \code{PREFERRED_PROVIDER} mechanism - \item Get familiar with the bitbake command line options - \end{itemize} -} -\\ +\showagendaitem{usingadvanced}{lecture} -\feagendatwocolumn -{Lecture - Writing recipes - basics} -{ - \begin{itemize} - \item Recipes: overview - \item Recipe file organization - \item Applying patches - \item Recipe examples - \end{itemize} -} -{Demo 3 - Adding an application to the build} -{ - \begin{itemize} - \item Writing a recipe for {\em nInvaders} - \item Troubleshooting the recipe - \item Troubleshooting cross-compilation issues - \item Adding {\em ninvaders} to the final image - \end{itemize} -} +\showagendaitem{nfsconfiguring}{lab} -\feagendaonecolumn -{Lecture - Writing recipes - advanced features} -{ - \begin{itemize} - \item Extending and overriding recipes - \item Virtual packages - \item Learn about classes - \item BitBake file inclusions - \item Debugging recipes - \item Configuring BitBake network usage - \end{itemize} -} +\showagendaitem{writingrecipebasics}{lecture} -\section{Half day 3} +\showagendaitem{appcompilation}{lab} -\feagendatwocolumn -{Lecture - Layers} -{ - \begin{itemize} - \item What layers are - \item Where to find layers - \item Creating a layer - \end{itemize} -} -{Demo 4 - Writing a layer} -{ - \begin{itemize} - \item Learn how to write a layer - \item Add the layer to the build - \item Move {\em ninvaders} to the new layer - \end{itemize} -} +\showagendaitem{writingrecipesadvanced}{lecture} -\feagendaonecolumn -{Demo 5 - Extend a recipe} -{ - \begin{itemize} - \item Extend the kernel recipe to add patches - \item Configure the kernel to compile the nunchuk driver - \item Edit the ninvaders recipe to add patches - \item Play {\em nInvaders} - \end{itemize} -} +\section{Half day 3} -\feagendatwocolumn -{Lecture - Writing a BSP} -{ - \begin{itemize} - \item Introduction to BSP layers - \item Adding a new machine - \item Bootloader configuration - \item Linux: the kernel bbclass and the linux-yocto recipe - \end{itemize} -} -{Demo 6 - Create a custom machine configuration} -{ - \begin{itemize} - \item Create a new machine configuration - \item Build an image for the new machine - \end{itemize} -} +\showagendaitem{layers}{lecture} -\feagendaonecolumn -{Lecture - Distro layers} -{ - \begin{itemize} - \item Distro configuration - \item Distro layers - \end{itemize} -} +\showagendaitem{writinglayer}{lab} -\feagendatwocolumn -{Lecture - Images} -{ - \begin{itemize} - \item Writing an image recipe - \item Image types - \item Writing and using package groups recipes - \end{itemize} -} -{Demo 7 - Create a custom image} -{ - \begin{itemize} - \item Add a basic image recipe - \item Select the image capabilities and packages - \item Add a custom package group - \item Add an image variant for debugging - \end{itemize} -} +\showagendaitem{writingbsp}{lecture} + +\showagendaitem{kernelchanges}{lab} \section{Half day 4} -\feagendatwocolumn -{Lecture - Writing recipes - going further} -{ - \begin{itemize} - \item The per-recipe sysroot - \item Using Python code in metadata - \item Variable flags - \item Packages features and PACKAGECONFIG - \item Conditional features - \item Package splitting - \item Dependencies in detail - \end{itemize} -} -{Lecture - Licensing} -{ - \begin{itemize} - \item Managing open source licenses - \end{itemize} -} +\showagendaitem{image}{lecture} -\feagendatwocolumn -{Lecture - The Yocto Project SDK} -{ - \begin{itemize} - \item Goals of the SDK - \item Building and customizing an SDK - \item Using the Yocto Project SDK - \end{itemize} -} -{Demo 8 - Develop your application in the Poky SDK} -{ - \begin{itemize} - \item Building an SDK - \item Using the Yocto Project SDK - \end{itemize} -} +\showagendaitem{image}{lab} + +\showagendaitem{sdk}{lecture} + +\showagendaitem{sdk}{lab} \feagendatwocolumn {Lecture - Devtool} diff --git a/agenda/yocto-online-fr-agenda.tex b/agenda/yocto-online-fr-agenda.tex index c10e763014..3b46d89977 100644 --- a/agenda/yocto-online-fr-agenda.tex +++ b/agenda/yocto-online-fr-agenda.tex @@ -87,261 +87,48 @@ \section{1\textsuperscript{ère} demi-journée} -\feagendaonecolumn -{Cours - Introduction aux outils de compilation de systèmes Linux embarqué} -{ - \begin{itemize} - \item Vue d'ensemble de l'architecture d'un système Linux embarqué - \item Méthodes pour compiler un système de fichiers - \item Utilité des outils de compilation - \end{itemize} -} +\showagendaitem{intro}{lecture} -\feagendaonecolumn -{Cours - Vue d'ensemble de Yocto Project et du système de référence Poky} -{ - \begin{itemize} - \item Présentation de l'outil de compilation Yocto / OpenEmbedded et de sa terminologie. - \item Vue d'ensemble du système de référence Poky - \end{itemize} -} -\feagendatwocolumn -{Cours - Bases de l'utilisation de Yocto Project} -{ - \begin{itemize} - \item Mise en place du répertoire de travail et de l'environnement - \item Configuration de l'outil de compilation - \item Compilation de l'image d'un système de fichiers racine - \end{itemize} -} -{Démo 1 - 1\textsuperscript{ère} compilation avec Yocto Project} -{ - \begin{itemize} - \item Téléchargement du système de référence Poky - \item Configuration de l'outil de compilation - \item Compilation d'une image système - \end{itemize} -} +\showagendaitem{overview}{lecture} -\feagendatwocolumn -{Cours - Utilisation de Yocto Project - Notions de base} -{ - \begin{itemize} - \item Structure des fichiers générés - \end{itemize} -} -{Démo 1 - Flasher et booter} -{ - \begin{itemize} - \item Flasher et booter l'image du système sur la carte - \end{itemize} -} +\showagendaitem{firstbuild}{lab} + +\showagendaitem{basics}{lecture} + +\showagendaitem{flashingbooting}{lab} \section{2\textsuperscript{ème} demi-journée} -\feagendatwocolumn -{Cours - Utilisation de Yocto Project - Utilisation avancée} -{ - \begin{itemize} - \item Assignation des variables, opérateurs et surcharge - \item Paquetages: variantes de paquetages - \item Options de la commande bitbake - \end{itemize} -} -{Démo 2 - Utilisation de NFS et configuration de la compilation} -{ - \begin{itemize} - \item Configurer la carte pour démarrer via NFS - \item Rajouter un paquetage au système de fichiers racine - \item Apprendre à utiliser le mécanisme \code{PREFERRED_PROVIDER} - \item Se familiariser avec les options de la commande bitbake - \end{itemize} -} -\\ +\showagendaitem{usingadvanced}{lecture} -\feagendatwocolumn -{Cours - Écriture de recettes - Fonctionnalités de base} -{ - \begin{itemize} - \item Recettes: vue d'ensemble - \item Organisation d'un fichier de recette - \item Application de patches - \item Exemples de recettes - \end{itemize} -} -{Démo 3 - Ajouter la compilation d'une application} -{ - \begin{itemize} - \item Création d'une recette pour {\em nInvaders} - \item Résolution de problèmes liés à la recette - \item Résolution de problèmes liés à la compilation croisée - \item Ajout d'{\em nInvaders} à l'image finale - \end{itemize} -} +\showagendaitem{nfsconfiguring}{lab} -\feagendaonecolumn -{Cours - Écriture de recettes - Fonctionnalités avancées} -{ - \begin{itemize} - \item Extension et redéfinition de recettes - \item Paquetages virtuels - \item Familiarisation avec les classes - \item Inclusion d'exemples avec BitBake - \item Mise au point des recettes - \item Configuration de l'utilisation du réseau par BitBake - \end{itemize} -} +\showagendaitem{writingrecipebasics}{lecture} -\section{3\textsuperscript{ème} demi-journée} +\showagendaitem{appcompilation}{lab} -\feagendatwocolumn -{Cours - Layers} -{ - \begin{itemize} - \item Ce que sont les {\em layers} - \item Où trouver les {\em layers} - \item Création d'un {\em layer} - \end{itemize} -} -{Démo 4 - Écriture d'un layer} -{ - \begin{itemize} - \item Apprendre à écrire un {\em layer} - \item Ajouter le {\em layer} à la compilation - \item Inclure {\em nInvaders} dans le nouveau {\em layer} - \end{itemize} -} +\showagendaitem{writingrecipesadvanced}{lecture} -\feagendaonecolumn -{TP 5 - Étendre une recette} -{ - \begin{itemize} - \item Étendre la recette pour le noyau pour rajouter des patches - \item Configurer le noyau pour compiler le pilote du nunchuk - \item Modifier la recette ninvaders pour rajouter des patches - \item Jouer avec {\em nInvaders} - \end{itemize} -} +\section{3\textsuperscript{ème} demi-journée} -\feagendatwocolumn -{Cours - Écriture d'un BSP} -{ - \begin{itemize} - \item Introduction aux layers BSP - \item Ajout d'une nouvelle machine - \item Configuration du chargeur de démarrage - \item Linux : la classe kernel.bbclass et la recette linux-yocto - \end{itemize} -} -{Démo 6 - Création d'une configuration spécifique pour une machine} -{ - \begin{itemize} - \item Créer un nouvelle configuration de machine - \item Compiler une image pour la machine - \end{itemize} -} +\showagendaitem{layers}{lecture} -\feagendaonecolumn -{Cours - Layers de distribution} -{ - \begin{itemize} - \item Configuration d'une distribution - \item Layers de distribution - \end{itemize} -} +\showagendaitem{writinglayer}{lab} -\feagendatwocolumn -{Cours - Images} -{ - \begin{itemize} - \item Écriture d'une recette d'image - \item Types d'images - \item Écriture et utilisation de groupes de paquetages - \end{itemize} -} -{Démo 7 - Création d'une image sur mesure} -{ - \begin{itemize} - \item Rajouter une recette de base pour une image - \item Sélectionner les fonctionnalités et les paquetages de l'image - \item Ajouter un groupe de paquetages sur mesure - \item Ajouter une variante d'image pour le débogage - \end{itemize} -} +\showagendaitem{writingbsp}{lecture} + +\showagendaitem{kernelchanges}{lab} \section{4\textsuperscript{ème} demi-journée} -\feagendatwocolumn -{Cours - Écriture de recettes - Pour aller plus loin} -{ - \begin{itemize} - \item Le sysroot de chaque recette - \item Utilisation de code Python code dans les méta-données - \item Drapeaux de variables - \item Fonctionnalités de paquetages et PACKAGECONFIG - \item Fonctionnalités conditionnelles - \item Découpage de paquetages - \item Détails sur les dépendances - \end{itemize} -} -{Cours - Licences} -{ - \begin{itemize} - \item Gestion de licences open source - \end{itemize} -} +\showagendaitem{image}{lecture} -\feagendatwocolumn -{Cours - SDK pour le projet Yocto} -{ - \begin{itemize} - \item Objectifs du SDK - \item Compilation et personnalisation d'un SDK - \item Utilisation d'un SDK pour le projet Yocto - \end{itemize} -} -{Démo 8 - Développement d'une application au moyen du SDK de Poky} -{ - \begin{itemize} - \item Compilation d'un SDK - \item Utilisation du SDK - \end{itemize} -} +\showagendaitem{image}{lab} -\feagendatwocolumn -{Cours - Devtool} -{ - \begin{itemize} - \item Présentation devtool - \item Cas d'utilisation de devtool - \end{itemize} -} -{Démo 9 - Utilisation de devtool} -{ - \begin{itemize} - \item Création d'une nouvelle recette - \item Modification d'une recette pour ajouter un nouveau patch - \item Mettre à jour une recette pour prendre en charge une nouvelle version - \end{itemize} -} +\showagendaitem{sdk}{lecture} -\feagendatwocolumn -{Cours - Gestion automatique de layers} -{ - \begin{itemize} - \item Gestion automatique de layers - \end{itemize} -} -{Cours - Gestion de paquetages à l'exécution} -{ - \begin{itemize} - \item Introduction à la gestion de paquetages à l'exécution - \item Configuration de la compilation - \item Configuration d'une serveur de paquetages - \item Configuration de la machine cible - \end{itemize} -} +\showagendaitem{sdk}{lab} \feagendaonecolumn {Questions / réponses} diff --git a/agenda/yocto.inc b/agenda/yocto.inc index 527eca5c81..bde565f194 100644 --- a/agenda/yocto.inc +++ b/agenda/yocto.inc @@ -1,4 +1,6 @@ \usepackage{ifthen} +\input{agenda/common.inc} + \def \training{yocto} % Title @@ -96,3 +98,569 @@ % Time ratio \def \onsitelecturetimeratio{40} \def \onsitelabtimeratio{60} + +% Agenda items + +\defagendaitem +{intro} +{lecture} +{Introduction to embedded Linux build systems} +{ + \begin{itemize} + \item Overview of an embedded Linux system architecture + \item Methods to build a root filesystem image + \item Usefulness of build systems + \end{itemize} +} +{Introduction aux outils de compilation de systèmes Linux embarqué} +{ + \begin{itemize} + \item Vue d'ensemble de l'architecture d'un système Linux embarqué + \item Méthodes pour compiler un système de fichiers + \item Utilité des outils de compilation + \end{itemize} +} + +\defagendaitem +{overview} +{lecture} +{Overview of the Yocto Project and the Poky reference system} +{ + \begin{itemize} + \item Introduction to the Yocto / OpenEmbedded build system and its lexicon + \item Overview of the Poky reference system + \end{itemize} +} +{Vue d'ensemble de Yocto Project et du système de référence Poky} +{ + \begin{itemize} + \item Organisation des sources du projet + \item Création d'un système de fichiers avec Yocto Project + \end{itemize} +} + +\defagendaitem +{overview} +{lecture} +{Yocto Project and Poky reference system overview} +{ + \begin{itemize} + \item Introduction to the Yocto / OpenEmbedded build system and its lexicon + \item Overview of the Poky reference system + \end{itemize} +} +{Vue d'ensemble de Yocto Project et du système de référence Poky} +{ + \begin{itemize} + \item Présentation de l'outil de compilation Yocto / OpenEmbedded et de sa terminologie. + \item Vue d'ensemble du système de référence Poky + \end{itemize} +} + +\defagendaitem +{usingbasics} +{lecture} +{Using Yocto Project - basics} +{ + \begin{itemize} + \item Setting up the build directory and environment + \item Configuring the build system + \item Building a root filesystem image + \end{itemize} +} +{Bases de l'utilisation de Yocto Project} +{ + \begin{itemize} + \item Mise en place du répertoire de travail et de l'environnement + \item Configuration de l'outil de compilation + \item Compilation de l'image d'un système de fichiers racine + \end{itemize} +} + + +\defagendaitem +{firstbuild} +{lab} +{First Yocto Project build} +{ + \begin{itemize} + \item Downloading the Poky reference build system + \item Configuring the build system + \item Building a system image + \end{itemize} +} +{1\textsuperscript{ère} compilation avec Yocto Project} +{ + \begin{itemize} + \item Téléchargement du système de référence Poky + \item Configuration de l'outil de compilation + \item Compilation d'une image système + \end{itemize} +} + +\defagendaitem +{basics} +{lecture} +{Using Yocto Project - basics} +{ + \begin{itemize} + \item Organization of the build output + \item Flashing and installing the system image + \end{itemize} +} +{Utilisation de Yocto Project - Notions de base} +{ + \begin{itemize} + \item Structure des fichiers générés + \item Flasher et installer l'image du système + \end{itemize} +} + +\defagendaitem +{flashingbooting} +{lab} +{Flashing and booting} +{ + \begin{itemize} + \item Variable assignment, operators and overrides + \item Package variants and package selection + \item bitbake command line options + \end{itemize} +} +{Flasher et booter} +{ + \begin{itemize} + \item Flasher et booter l'image du système sur la carte + \end{itemize} +} + +\defagendaitem +{usingadvanced} +{lecture} +{Using Yocto Project - advanced usage} +{ + \begin{itemize} + \item Variable assignment, operators and overrides + \item Package variants and package selection + \item bitbake command line options + \end{itemize} +} +{Utilisation de Yocto Project - Utilisation avancée} +{ + \begin{itemize} + \item Assignation des variables, opérateurs et surcharge + \item Paquetages: variantes de paquetages + \item Options de la commande bitbake + \end{itemize} +} + +\defagendaitem +{nfsconfiguring} +{lab} +{Using NFS and configuring the build} +{ + \begin{itemize} + \item Configuring the board to boot over NFS + \item Add a package to the root filesystem + \item Learn how to use the \code{PREFERRED_PROVIDER} mechanism + \item Get familiar with the bitbake command line options + \end{itemize} +} +{Utilisation de NFS et configuration de la compilation} +{ + \begin{itemize} + \item Configurer la carte pour démarrer via NFS + \item Rajouter un paquetage au système de fichiers racine + \item Apprendre à utiliser le mécanisme \code{PREFERRED_PROVIDER} + \item Se familiariser avec les options de la commande bitbake + \end{itemize} +} + +\defagendaitem +{writingrecipesbasics} +{lecture} +{Writing recipes - basics} +{ + \begin{itemize} + \item Recipes: overview + \item Recipe file organization + \item Applying patches + \item Recipe examples + \end{itemize} +} +{Écriture de recettes - Fonctionnalités de base} +{ + \begin{itemize} + \item Recettes: vue d'ensemble + \item Organisation d'un fichier de recette + \item Application de patches + \item Exemples de recettes + \end{itemize} +} + +\defagendaitem +{appcompilation} +{lab} +{Adding an application to the build} +{ + \begin{itemize} + \item Writing a recipe for {\em ninvader} + \item Troubleshooting the recipe + \item Troubleshooting cross-compilation issues + \item Adding {\em ninvaders} to the final image + \end{itemize} +} +{Ajouter la compilation d'une application} +{ + \begin{itemize} + \item Création d'une recette pour {\em ninvader} + \item Résolution de problèmes liés à la recette + \item Résolution de problèmes liés à la compilation croisée + \item Ajout d'{\em ninvader} à l'image finale + \end{itemize} +} + +\defagendaitem +{writingrecipesadvanced} +{lecture} +{Writing recipes - advanced features} +{ + \begin{itemize} + \item Extending and overriding recipes + \item Virtual packages + \item Learn about classes + \item BitBake file inclusions + \item Debugging recipes + \item Configuring BitBake network usage + \end{itemize} +} +{Écriture de recettes - Fonctionnalités avancées} +{ + \begin{itemize} + \item Extension et redéfinition de recettes + \item Paquetages virtuels + \item Familiarisation avec les classes + \item Inclusion d'exemples avec BitBake + \item Mise au point des recettes + \item Configuration de l'utilisation du réseau par BitBake + \end{itemize} +} + +\defagendaitem +{layers} +{lecture} +{Layers} +{ + \begin{itemize} + \item What layers are + \item Where to find layers + \item Creating a layer + \end{itemize} +} +{Layers} +{ + \begin{itemize} + \item Ce que sont les {\em layers} + \item Où trouver les {\em layers} + \item Création d'un {\em layer} + \end{itemize} +} + +\defagendaitem +{writinglayer} +{lab} +{Writing a layer} +{ + \begin{itemize} + \item Learn how to write a layer + \item Add the layer to the build + \item Move {\em ninvader} to the new layer + \end{itemize} +} +{Écriture d'un layer} +{ + \begin{itemize} + \item Apprendre à écrire un {\em layer} + \item Ajouter le {\em layer} à la compilation + \item Inclure {\em ninvader} dans le nouveau {\em layer} + \end{itemize} +} + +\defagendaitem +{extendrecipe} +{lab} +{Extend a recipe} +{ + \begin{itemize} + \item Extend the kernel recipe to add patches + \item Configure the kernel to compile the nunchuk driver + \item Edit the ninvaders recipe to add patches + \item Play {\em nInvaders} + \end{itemize} +} +{Étendre une recette} +{ + \begin{itemize} + \item Étendre la recette pour le noyau pour rajouter des patches + \item Configurer le noyau pour compiler le pilote du nunchuk + \item Modifier la recette ninvaders pour rajouter des patches + \item Jouer avec {\em nInvaders} + \end{itemize} +} + + + +\defagendaitem +{writingbsp} +{lecture} +{Writing a BSP} +{ + \begin{itemize} + \item Introduction to BSP layers + \item Adding a new machine + \item Bootloader configuration + \item Linux: the kernel bbclass and the linux-yocto recipe + \end{itemize} +} +{Écriture d'un BSP} +{ + \begin{itemize} + \item Introduction aux layers BSP + \item Ajout d'une nouvelle machine + \item Configuration du chargeur de démarrage + \item Linux : la classe kernel.bbclass et la recette linux-yocto + \end{itemize} +} + +\defagendaitem +{kernelchanges} +{lab} +{Create a custom machine configuration} +{ + \begin{itemize} + \item Create a new machine configuration + \item Build an image for the new machine + \end{itemize} +} +{Création d'une configuration spécifique pour une machine} +{ + \begin{itemize} + \item Types d'images + \item Écriture et utilisation de groupes de paquetages + \end{itemize} +} + +\defagendaitem +{distrolayer} +{lecture} +{Distro layers} +{ + \begin{itemize} + \item Distro configuration + \item Distro layers + \end{itemize} +} +{Création d'une image sur mesure} +{ + \begin{itemize} + \item Rajouter une recette de base pour une image + \item Sélectionner les fonctionnalités et les paquetages de l'image + \item Ajouter un groupe de paquetages sur mesure + \item Ajouter une variante d'image pour le débogage + \end{itemize} +} + +\defagendaitem +{image} +{lecture} +{Images} +{ + \begin{itemize} + \item Writing an image recipe + \item Image types + \item Writing and using package groups recipes + \end{itemize} +} +{} +{ + \begin{itemize} + \end{itemize} +} + +\defagendaitem +{image} +{lab} +{Create a custom image} +{ + \begin{itemize} + \item Add a basic image recipe + \item Select the image capabilities and packages + \item Add a custom package group + \item Add an image variant for debugging + \end{itemize} +} +{Création d'une image sur mesure} +{ + \begin{itemize} + \item Écrire une recette d'image personnalisée + \item Ajouter {\em ninvader} à l'image sur mesure + \end{itemize} +} + +\defagendaitem +{writingrecipesgoingfurther} +{lecture} +{Writing recipes - going further} +{ + \begin{itemize} + \item The per-recipe sysroot + \item Using Python code in metadata + \item Variable flags + \item Packages features and PACKAGECONFIG + \item Conditional features + \item Package splitting + \item Dependencies in detail + \end{itemize} +} +{Écriture de recettes - Pour aller plus loin} +{ + \begin{itemize} + \item Le sysroot de chaque recette + \item Utilisation de code Python code dans les méta-données + \item Drapeaux de variables + \item Fonctionnalités de paquetages et PACKAGECONFIG + \item Fonctionnalités conditionnelles + \item Découpage de paquetages + \end{itemize} +} + +\defagendaitem +{licensing} +{lecture} +{Licensing} +{ + \begin{itemize} + \item Managing open source licenses + \end{itemize} +} +{Licences} +{ + \begin{itemize} + \item Gestion de licences open source + \end{itemize} +} + + +\defagendaitem +{sdk} +{lecture} +{The Yocto Project SDK} +{ + \begin{itemize} + \item Goals of the SDK + \item Building and customizing an SDK + \item Using the Yocto Project SDK + \end{itemize} +} +{SDK pour le projet Yocto} +{ + \begin{itemize} + \item Objectifs du SDK + \item Compilation et personnalisation d'un SDK + \item Utilisation d'un SDK pour le projet Yocto + \end{itemize} +} + +\defagendaitem +{sdk} +{lab} +{Develop your application in the Poky SDK} +{ + \begin{itemize} + \item Building an SDK + \item Using the Yocto Project SDK + \end{itemize} +} +{Développement d'une application au moyen du SDK de Poky} +{ + \begin{itemize} + \item Construction d'un SDK + \item Utilisation du SDK de Yocto Project + \end{itemize} +} + +\defagendaitem +{devtool} +{lecture} +{Devtool} +{ + \begin{itemize} + \item About devtool + \item Devtool use cases + \end{itemize} +} +{Devtool} +{ + \begin{itemize} + \item Présentation devtool + \item Cas d'utilisation de devtool + \end{itemize} +} + +\defagendaitem +{devtool} +{lab} +{Using devtool} +{ + \begin{itemize} + \item Generate a new recipe + \item Modify a recipe to add a new patch + \item Upgrade a recipe to a newer version + \end{itemize} +} +{Utilisation de devtool} +{ + \begin{itemize} + \item Création d'une nouvelle recette + \item Modification d'une recette pour ajouter un nouveau patch + \item Mettre à jour une recette pour prendre en charge une nouvelle version + \end{itemize} +} + +\defagendaitem +{automatinglayermanagement} +{lecture} +{Automating layer management} +{ + \begin{itemize} + \item Automating layer management + \end{itemize} +} +{Gestion automatique de layers} +{ + \begin{itemize} + \item Gestion automatique de layers + \end{itemize} +} + +\defagendaitem +{runtimepackagemanagement} +{lecture} +{Runtime Package Management} +{ + \begin{itemize} + \item Introduction to runtime package management + \item Build configuration + \item Package server configuration + \item Target configuration + \end{itemize} +} +{Gestion de paquetages à l'exécution} +{ + \begin{itemize} + \item Introduction à la gestion de paquetages à l'exécution + \item Configuration de la compilation + \item Configuration d'une serveur de paquetages + \item Configuration de la machine cible + \end{itemize} +}