From ecacdbaa9e4b567b1a12323af2a46e2c9df4b305 Mon Sep 17 00:00:00 2001 From: Thomas Bonnefille Date: Tue, 29 Oct 2024 18:28:53 +0100 Subject: [PATCH] agenda: use commands to refactor the Yocto agenda Signed-off-by: Thomas Bonnefille --- agenda/yocto-agenda.tex | 335 +---------------------------- agenda/yocto-fr-agenda.tex | 336 +---------------------------- agenda/yocto-online-agenda.tex | 342 +----------------------------- agenda/yocto-online-fr-agenda.tex | 342 +----------------------------- 4 files changed, 16 insertions(+), 1339 deletions(-) diff --git a/agenda/yocto-agenda.tex b/agenda/yocto-agenda.tex index 7303afe622..735e748427 100644 --- a/agenda/yocto-agenda.tex +++ b/agenda/yocto-agenda.tex @@ -13,338 +13,11 @@ \feshowinfo -\feagendatwocolumn -{Hardware platform for practical labs, option \#1} -{ - One of these Discovery Kits from STMicroelectronics: {\bf - STM32MP157A-DK1}, {\bf STM32MP157D-DK1}, {\bf STM32MP157C-DK2} or - {\bf STM32MP157F-DK2} - \begin{itemize} - \item STM32MP157, dual Cortex-A7 processor from STMicroelectronics - \item USB 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 compatible headers - \item Audio codec, buttons, LEDs - \item LCD touchscreen (DK2 kits only) - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/discovery-board-dk1/discovery-board-dk1.png} - \end{center} -} +\showboarditem{stm32mp1} +\showboarditem{beagleboneblack} +\showboarditem{beagleplay} -\feagendatwocolumn -{Hardware platform for practical labs, option \#2} -{ - {\bf BeagleBone Black} or {\bf BeagleBone Black Wireless} board - \begin{itemize} - \item An ARM AM335x (single Cortex-A8) processor from Texas - Instruments - \item USB powered - \item 512 MB of RAM - \item 2 or 4 GB of on-board eMMC storage - \item USB host and device - \item HDMI output - \item 2 x 46 pins headers, to access UARTs, SPI buses, I2C buses - and more. - \item Ethernet or WiFi - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleboneblack-board/beagleboneblack.png} - \end{center} -} - -\feagendatwocolumn -{Hardware platform for practical labs, option \#3} -{ - {\bf BeaglePlay} board - \begin{itemize} - \item Texas Instruments AM625x (4xARM Cortex-A53 CPU) - \item SoC with 3D acceleration, integrated MCU and many other peripherals. - \item 2 GB of RAM - \item 16 GB of on-board eMMC storage - \item USB host and USB device, microSD, HDMI - \item 2.4 and 5 GHz WiFi, Bluetooth and also Ethernet - \item 1 MicroBus Header (SPI, I2C, UART, ...), OLDI and CSI connector. - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleplay-board/beagleplay.png} - \end{center} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\section{Day 3 - Morning} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} +\onsiteagenda \end{document} diff --git a/agenda/yocto-fr-agenda.tex b/agenda/yocto-fr-agenda.tex index ee415acf19..8de1f2556a 100644 --- a/agenda/yocto-fr-agenda.tex +++ b/agenda/yocto-fr-agenda.tex @@ -13,338 +13,10 @@ \feshowinfo -\feagendatwocolumn -{Plateforme matérielle pour les travaux pratiques, option \#1} -{ - Une de ces cartes de STMicroelectronics : {\bf - STM32MP157A-DK1}, {\bf STM32MP157D-DK1}, {\bf STM32MP157C-DK2} ou - {\bf STM32MP157F-DK2} - \begin{itemize} - \item Processeur STM32MP157, double Cortex-A7, de STMicroelectronics - \item Alimentée par USB - \item 512 Mo DDR3L RAM - \item Port Gigabit Ethernet port - \item 4 ports hôte USB 2.0 - \item 1 port USB-C OTG - \item 1 connecteur Micro SD - \item Debugger ST-LINK/V2-1 sur la carte - \item Connecteurs compatibles Arduino Uno v3 - \item Codec audio - \item Divers : boutons, LEDs - \item Écran LCD tactile (uniquement sur cartes DK2) - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/discovery-board-dk1/discovery-board-dk1.png} - \end{center} -} +\showboarditem{stm32mp1} +\showboarditem{beagleboneblack} +\showboarditem{beagleplay} -\feagendatwocolumn -{Plateforme matérielle pour les travaux pratiques, option \#2} -{ - Carte {\bf BeagleBone Black} ou {\bf BeagleBone Black Wireless} - \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 ou 4 Go de stockage eMMC - \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. - \item Ethernet ou WiFi - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleboneblack-board/beagleboneblack.png} - \end{center} -} - -\feagendatwocolumn -{Plateforme matérielle pour les travaux pratiques, option \#3} -{ - Carte {\bf BeaglePlay} - \begin{itemize} - \item SoC Texas Instruments AM625x (CPU 4xARM Cortex-A53) - \item SoC avec accélération 3D, MCU intégré et de nombreux autres périphériques. - \item 2 GB de RAM - \item 16 Go de stockage eMMC - \item USB hôte et device, microSD, HDMI - \item WiFi 2.4 and 5 GHz, Bluetooth et aussi Ethernet - \item 1 Header MicroBus (SPI, I2C, UART, ...), connecteurs OLDI et CSI. - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleplay-board/beagleplay.png} - \end{center} -} - -\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} -} - -\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} -} -{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} -} - -\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} -} - -\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} -} - -\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} -} - -\section{2\textsuperscript{ème} jour - Après-midi} - -\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{3\textsuperscript{ème} jour - Matin} - -\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} -} - -\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} -} - -\feagendaonecolumn -{Cours - Layers de distribution} -{ - \begin{itemize} - \item Configuration d'une distribution - \item Layers de distribution - \end{itemize} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} +\onsiteagenda \end{document} - diff --git a/agenda/yocto-online-agenda.tex b/agenda/yocto-online-agenda.tex index 70461fe244..bffbf62fee 100644 --- a/agenda/yocto-online-agenda.tex +++ b/agenda/yocto-online-agenda.tex @@ -13,345 +13,11 @@ \feshowinfo -\feagendatwocolumn -{Hardware platform for practical demos, option \#1} -{ - One of these Discovery Kits from STMicroelectronics: {\bf - STM32MP157A-DK1}, {\bf STM32MP157D-DK1}, {\bf STM32MP157C-DK2} or - {\bf STM32MP157F-DK2} - \begin{itemize} - \item STM32MP157, dual Cortex-A7 processor from STMicroelectronics - \item USB 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 compatible headers - \item Audio codec, buttons, LEDs - \item LCD touchscreen (DK2 kits only) - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/discovery-board-dk1/discovery-board-dk1.png} - \end{center} -} +\showboarditem{stm32mp1} +\showboarditem{beagleboneblack} +\showboarditem{beagleplay} -\feagendatwocolumn -{Hardware platform for practical demos, option \#2} -{ - {\bf BeagleBone Black} or {\bf BeagleBone Black Wireless} board - \begin{itemize} - \item An ARM AM335x (single Cortex-A8) processor from Texas - Instruments - \item USB powered - \item 512 MB of RAM - \item 2 or 4 GB of on-board eMMC storage - \item USB host and device - \item HDMI output - \item 2 x 46 pins headers, to access UARTs, SPI buses, I2C buses - and more. - \item Ethernet or WiFi - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleboneblack-board/beagleboneblack.png} - \end{center} -} - -\feagendatwocolumn -{Hardware platform for practical labs, option \#3} -{ - {\bf BeaglePlay} board - \begin{itemize} - \item Texas Instruments AM625x (4xARM Cortex-A53 CPU) - \item SoC with 3D acceleration, integrated MCU and many other peripherals. - \item 2 GB of RAM - \item 16 GB of on-board eMMC storage - \item USB host and USB device, microSD, HDMI - \item 2.4 and 5 GHz WiFi, Bluetooth and also Ethernet - \item 1 MicroBus Header (SPI, I2C, UART, ...), OLDI and CSI connector. - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleplay-board/beagleplay.png} - \end{center} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} -\\ - -\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} -} - -\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} -} - -\section{Half day 3} - -\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} -} - -\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} -} - -\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} -} - -\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} -} -{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} -} - -\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} -} - -\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} -} - -\feagendatwocolumn -{Lecture - Devtool} -{ - \begin{itemize} - \item About devtool - \item Devtool use cases - \end{itemize} -} -{Demo 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} -} - -\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} -} - -\feagendaonecolumn -{Questions and Answers} -{ - \begin{itemize} - \item Questions and answers with the audience about the course topics - \item Extra presentations if time is left, according what most - participants are interested in. - \end{itemize} -} +\onlineagenda \section{Possible extra time} diff --git a/agenda/yocto-online-fr-agenda.tex b/agenda/yocto-online-fr-agenda.tex index c10e763014..605257d8db 100644 --- a/agenda/yocto-online-fr-agenda.tex +++ b/agenda/yocto-online-fr-agenda.tex @@ -13,345 +13,11 @@ \feshowinfo -\feagendatwocolumn -{Plateforme matérielle pour les démonstrations, option \#1} -{ - Une de ces cartes de STMicroelectronics : {\bf - STM32MP157A-DK1}, {\bf STM32MP157D-DK1}, {\bf STM32MP157C-DK2} ou - {\bf STM32MP157F-DK2} - \begin{itemize} - \item Processeur STM32MP157, double Cortex-A7, de STMicroelectronics - \item Alimentée par USB - \item 512 Mo DDR3L RAM - \item Port Gigabit Ethernet port - \item 4 ports hôte USB 2.0 - \item 1 port USB-C OTG - \item 1 connecteur Micro SD - \item Debugger ST-LINK/V2-1 sur la carte - \item Connecteurs compatibles Arduino Uno v3 - \item Codec audio - \item Divers : boutons, LEDs - \item Écran LCD tactile (uniquement sur cartes DK2) - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/discovery-board-dk1/discovery-board-dk1.png} - \end{center} -} +\showboarditem{stm32mp1} +\showboarditem{beagleboneblack} +\showboarditem{beagleplay} -\feagendatwocolumn -{Plateforme matérielle pour les démonstrations, option \#2} -{ - Carte {\bf BeagleBone Black} ou {\bf BeagleBone Black Wireless} - \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 ou 4 Go de stockage eMMC - \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. - \item Ethernet ou WiFi - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleboneblack-board/beagleboneblack.png} - \end{center} -} - -\feagendatwocolumn -{Plateforme matérielle pour les travaux pratiques, option \#3} -{ - Carte {\bf BeaglePlay} - \begin{itemize} - \item SoC Texas Instruments AM625x (CPU 4xARM Cortex-A53) - \item SoC avec accélération 3D, MCU intégré et de nombreux autres périphériques. - \item 2 GB de RAM - \item 16 Go de stockage eMMC - \item USB hôte et device, microSD, HDMI - \item WiFi 2.4 and 5 GHz, Bluetooth et aussi Ethernet - \item 1 Header MicroBus (SPI, I2C, UART, ...), connecteurs OLDI et CSI. - \end{itemize} -} -{} -{ - \begin{center} - \includegraphics[width=5cm]{../slides/beagleplay-board/beagleplay.png} - \end{center} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} -\\ - -\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} -} - -\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} -} - -\section{3\textsuperscript{ème} demi-journée} - -\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} -} - -\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} -} - -\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} -} - -\feagendaonecolumn -{Cours - Layers de distribution} -{ - \begin{itemize} - \item Configuration d'une distribution - \item Layers de distribution - \end{itemize} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\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} -} - -\feagendaonecolumn -{Questions / réponses} -{ - \begin{itemize} - \item Questions et réponses avec les participants à propos des sujets abordés. - \item Présentations supplémentaires s'il reste du temps, en fonction des demandes - de la majorité des participants. - \end{itemize} -} +\onlineagenda \section{Temps supplémentaire possible}