Skip to content

Commit

Permalink
agenda: refactor agenda items of Yocto course
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Bonnefille <[email protected]>
  • Loading branch information
tpetazzoni authored and Taumille committed Oct 29, 2024
1 parent e24fee4 commit bbfb048
Show file tree
Hide file tree
Showing 6 changed files with 690 additions and 911 deletions.
30 changes: 30 additions & 0 deletions agenda/common.inc
Original file line number Diff line number Diff line change
@@ -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
}
}
259 changes: 23 additions & 236 deletions agenda/yocto-agenda.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Loading

0 comments on commit bbfb048

Please sign in to comment.