Skip to content

Commit

Permalink
agenda: use commands to refactor the Yocto agenda
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Bonnefille <[email protected]>
  • Loading branch information
Taumille committed Oct 30, 2024
1 parent a8599ab commit 8ad8543
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 1,339 deletions.
335 changes: 4 additions & 331 deletions agenda/yocto-agenda.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Loading

0 comments on commit 8ad8543

Please sign in to comment.