[bootlin/training-materials updates] master: Yocto on STM32: add agenda (648e8cb6)
Michael Opdenacker
michael.opdenacker at bootlin.com
Tue Sep 17 09:22:12 CEST 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/648e8cb600ac9b23905d1e65408d5f5964cb0de4
>---------------------------------------------------------------
commit 648e8cb600ac9b23905d1e65408d5f5964cb0de4
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Tue Sep 17 09:22:12 2019 +0200
Yocto on STM32: add agenda
- Please fix if the agenda is different from the one
with BBB
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
648e8cb600ac9b23905d1e65408d5f5964cb0de4
agenda/yocto-stm32-agenda.tex | 311 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 311 insertions(+)
diff --git a/agenda/yocto-stm32-agenda.tex b/agenda/yocto-stm32-agenda.tex
new file mode 100644
index 00000000..5e63751c
--- /dev/null
+++ b/agenda/yocto-stm32-agenda.tex
@@ -0,0 +1,311 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Yocto Project and OpenEmbedded development training},
+ pdfauthor={Bootlin}}
+
+\renewcommand{\arraystretch}{2.0}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+Yocto Project and OpenEmbedded training\\
+\large
+3-day session
+\end{center}
+\vspace{1cm}
+
+\small
+\newcolumntype{g}{>{\columncolor{fedarkblue}}m{4cm}}
+\newcolumntype{h}{>{\columncolor{felightblue}}X}
+
+\arrayrulecolor{lightgray} {
+ \setlist[1]{itemsep=-5pt}
+ \begin{tabularx}{\textwidth}{|g|h|}
+ {\bf Title} & {\bf Yocto Project and OpenEmbedded development training} \\
+ \hline
+
+ {\bf Overview} &
+ Understanding the Yocto Project \par
+ Using it to build a root filesystem and run it on your target \par
+ Writing and extending recipes \par
+ Creating layers \par
+ Integrating your board in a BSP \par
+ Creating custom images \par
+ Application development with the Yocto Project SDK \\
+ \hline
+
+ {\bf Duration} & {\bf Three} days - 24 hours (8 hours per day).
+ \newline 40\% of lectures, 60\% of practical labs. \\
+ \hline
+
+ {\bf Trainer} & One of the engineers listed on
+ \newline \url{https://bootlin.com/training/trainers/}\\
+ \hline
+
+ {\bf Language} & Oral lectures: English, French.
+ \newline Materials: English.\\
+ \hline
+
+ {\bf Audience} & Companies and engineers interested in using
+ the Yocto Project to build their embedded Linux system.\\
+ \hline
+
+ {\bf Prerequisites} & {\bf Knowledge of embedded Linux} as covered
+ in our embedded Linux training
+ (\url{https://bootlin.com/training/embedded-linux/}) \vspace{1em}
+ \newline {\bf Knowledge and practice of Unix or GNU/Linux commands}
+ \newline People lacking experience on this topic should get
+ trained by themselves, for example with our freely available
+ on-line slides:
+ \newline \url{https://bootlin.com/blog/command-line/} \\
+ \hline
+ \end{tabularx}
+
+ \begin{tabularx}{\textwidth}{|g|h|}
+ {\bf Required equipment} &
+ {\bf For on-site sessions only.}
+ \newline Everything is supplied by Bootlin in public
+ sessions.
+ \begin{itemize}
+ \item Video projector
+ \item PC computers with at least 8 GB of RAM, a CPU at least
+ equivalent to an Intel Core i5 and Ubuntu Linux
+ installed in a {\bf free partition of at least 40 GB. Using Linux
+ in a virtual machine is not supported}, because of issues
+ connecting to real hardware.
+ \item We need Ubuntu Desktop 16.04 (Xubuntu and
+ other variants are fine). We don't support other
+ distributions, because we can't test all possible package versions.
+ \item {\bf High Speed Connection to the Internet} (direct or through the
+ company proxy).
+ \item {\bf PC computers with valuable data must be backed up}
+ before being used in our sessions. Some people have already made
+ mistakes during our sessions and damaged work data.
+ \end{itemize} \\
+ \hline
+
+ {\bf Materials} & Print and electronic copies of presentations and
+ labs.
+ \newline Electronic copy of lab files.\\
+ \hline
+
+\end{tabularx}}
+\normalsize
+
+\feagendatwocolumn
+{Hardware}
+{
+ Using the STMicroelectronics STM32MP157C-DK2 Discovery board in all practical labs
+ STM32MP157C (dual Cortex-A7) CPU from STMicroelectronics, which features:
+
+ \begin{itemize}
+ \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 Uno v3-compatible header
+ \item Audio codec
+ \item Misc: buttons, LEDs
+ \end{itemize}
+}
+{}
+{
+ \begin{center}
+ \includegraphics[height=5cm]{../slides/beagleboneblack-board/beagleboneblack.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}
+}
+\\
+\feagendatwocolumn
+{Lecture - Overview of the Yocto Project and the Poky reference system}
+{
+ \begin{itemize}
+ \item Organization of the project source tree
+ \item Building a root filesystem image using the Yocto Project
+ \end{itemize}
+}
+{Lab - First Yocto Project build}
+{
+ \begin{itemize}
+ \item Downloading the Poky reference 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
+ \item Flashing and installing the system image
+ \end{itemize}
+}
+{Lab - Flashing and booting}
+{
+ \begin{itemize}
+ \item Flashing and booting the image on the BeagleBone
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Using Yocto Project - advanced usage}
+{
+ \begin{itemize}
+ \item Configuring the build system
+ \item Customizing the package selection
+ \end{itemize}
+}
+{Lab - Using NFS and configuring the build}
+{
+ \begin{itemize}
+ \item Configuring the BeagleBone to boot over NFS
+ \item Learn how to use the \code{PREFERRED_PROVIDER} mechanism
+ \end{itemize}
+}
+\\
+\section{Day 2 - Morning}
+
+\feagendatwocolumn
+{Lecture - Writing recipes - basics}
+{
+ \begin{itemize}
+ \item Writing a minimal recipe
+ \item Adding dependencies
+ \item Development workflow with {\em bitbake}
+ \end{itemize}
+}
+{Lab - Adding an application to the build}
+{
+ \begin{itemize}
+ \item Writing a recipe for {\em nInvaders}
+ \item Adding {\em nInvaders} to the final image
+ \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture - Writing recipes - advanced features}
+{
+ \begin{itemize}
+ \item Extending and overriding recipes
+ \item Adding steps to the build process
+ \item Learn about classes
+ \item Analysis of examples
+ \item Logging
+ \item Debugging dependencies
+ \end{itemize}
+}
+
+\section{Day 2 - Afternoon}
+
+\feagendaonecolumn
+{Lab - Learning how to configure packages}
+{
+ \begin{itemize}
+ \item Extending a recipe to add configuration files
+ \item Using \code{ROOTFS_POSTPROCESS_COMMAND} to modify the final rootfs
+ \item Studying package dependencies
+ \end{itemize}
+}
+\feagendatwocolumn
+{Lecture - Layers}
+{
+ \begin{itemize}
+ \item What layers are
+ \item Where to find layers
+ \item Creating a layer
+ \end{itemize}
+}
+{Lab - 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}
+
+\feagendatwocolumn
+{Lecture - Writing a BSP}
+{
+ \begin{itemize}
+ \item Extending an existing BSP
+ \item Adding a new machine
+ \item Bootloaders
+ \item Linux and the linux-yocto recipe
+ \item Adding a custom image type
+ \end{itemize}
+}
+{Lab - Implementing the kernel changes}
+{
+ \begin{itemize}
+ \item Extend the kernel recipe to add the nunchuk driver
+ \item Configure the kernel to compile the nunchuk driver
+ \item Play {\em nInvaders}
+ \end{itemize}
+}
+
+\section{Day 3 - Afternoon}
+
+\feagendatwocolumn
+{Lecture - Creating a custom image}
+{
+ \begin{itemize}
+ \item Writing an image recipe
+ \item Adding users/groups
+ \item Adding custom configuration
+ \item Writing and using package groups recipes
+ \end{itemize}
+}
+{Lab - Creating a custom image}
+{
+ \begin{itemize}
+ \item Writing a custom image recipe
+ \item Adding {\em nInvaders} to the custom image
+ \end{itemize}
+}
+\feagendatwocolumn
+{Lecture - Creating and using an SDK}
+{
+ \begin{itemize}
+ \item Understanding the purpose of an SDK for the application
+ developer
+ \item Building an SDK for the custom image
+ \end{itemize}
+}
+{Lab - Experimenting with the SDK}
+{
+ \begin{itemize}
+ \item Building an SDK
+ \item Using the Yocto Project SDK
+ \end{itemize}
+}
+
+\end{document}
+
More information about the training-materials-updates
mailing list