[bootlin/training-materials updates] master: Online agenda for Buildroot (29b0b3a7)

Michael Opdenacker michael.opdenacker at bootlin.com
Mon Mar 23 22:58:02 CET 2020


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/29b0b3a79ed50b4bf40664c4eddccac5228dbbbc

>---------------------------------------------------------------

commit 29b0b3a79ed50b4bf40664c4eddccac5228dbbbc
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Mon Mar 23 22:58:02 2020 +0100

    Online agenda for Buildroot
    
    - Make sure you review the daily boundaries, which I picked rather
      quickly
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


>---------------------------------------------------------------

29b0b3a79ed50b4bf40664c4eddccac5228dbbbc
 agenda/buildroot-online-agenda.tex | 394 +++++++++++++++++++++++++++++++++++++
 1 file changed, 394 insertions(+)

diff --git a/agenda/buildroot-online-agenda.tex b/agenda/buildroot-online-agenda.tex
new file mode 100644
index 00000000..e941d002
--- /dev/null
+++ b/agenda/buildroot-online-agenda.tex
@@ -0,0 +1,394 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Buildroot training},
+  pdfauthor={Bootlin}}
+
+\renewcommand{\arraystretch}{2.0}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+Embedded Linux development with Buildroot training\\
+\large
+On-line seminar
+\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 Embedded Linux development with Buildroot training} \\
+    \hline
+
+    {\bf Overview} &
+    Introduction to Buildroot \par
+    Managing and building the configuration \par
+    Buildroot source and build trees \par
+    Toolchains in Buildroot \par
+    Managing the Linux kernel configuration \par
+    Root filesystem \par
+    Download infrastructure \par
+    GNU Make 101 \par
+    Integrating new packages \par
+    Advanced package aspects \par
+    Analyzing the build \par
+    Advanced topics \par
+    Application development with Buildroot \par
+    Understanding the Buildroot internals \par
+    Buildroot community: support and contribution \par
+    What's new in Buildroot? \\
+    \hline
+
+    {\bf Duration} & {\bf Four} half days - 16 hours (4 hours per half day).
+    \newline 80\% of lectures, 20\% of practical demos. \\
+    \hline
+
+    {\bf Trainer} & {\bf Thomas Petazzoni}. Thomas is a major
+    Buildroot developer since 2009, with more than 2700 patches
+    integrated and an active participation to the development process.\\
+    \hline
+
+    {\bf Language} & Oral lectures: English
+    \newline Materials: English.\\
+    \hline
+
+    {\bf Audience} & Companies already using or interested in using
+    Buildroot to build their embedded Linux systems.\\
+    \hline
+
+    {\bf Prerequisites} & {\bf Familiarity with embedded Linux} as covered
+    in our embedded Linux course:
+    \newline \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 may 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 Computer with the operating system of your choice, provided
+    it is supported by Zoom (\url{https://zoom.us} for videoconferencing
+    \item Webcam and microphone (preferably from an audio headset)
+    \item High speed access to the Internet
+    \end{itemize}\\
+    \hline
+
+    {\bf Materials} & Electronic copies of presentations,
+    demo instructions and data.\\
+    \hline
+
+\end{tabularx}}
+\normalsize
+
+\feagendatwocolumn
+{Hardware}
+{
+  The hardware platform used for the practical demos of this training
+  session is the {\bf BeagleBone Black}, which features:
+
+  \begin{itemize}
+  \item An ARM AM335x processor from Texas Instruments (Cortex-A8
+    based), 3D acceleration, etc.
+  \item 512 MB of RAM
+  \item 2 GB of on-board eMMC storage
+	\newline(4 GB in Rev C)
+  \item USB host and device
+  \item HDMI output
+  \item 2 x 46 pins headers, to access UARTs, SPI buses, I2C buses
+    and more.
+  \end{itemize}
+}
+{}
+{
+  \begin{center}
+    \includegraphics[height=5cm]{../slides/beagleboneblack-board/beagleboneblack.png}
+  \end{center}
+}
+
+\section{Half day 1}
+
+\feagendatwocolumn
+{Lecture - Embedded Linux and build system introduction}
+{
+  \begin{itemize}
+  \item The general architecture of an embedded Linux system
+  \item Build systems vs. binary distributions
+  \item Role of a build system
+  \item Comparison of existing build systems
+  \end{itemize}
+}
+{Lecture - Introduction to Buildroot}
+{
+  \begin{itemize}
+  \item Key facts about the project
+  \item Getting Buildroot
+  \item Basic configuration of Buildroot
+  \item Doing a first build
+  \end{itemize}
+}
+\\
+\feagendatwocolumn
+{Demo - Basic Buildroot usage}
+{
+  \begin{itemize}
+  \item Getting and setting up Buildroot
+  \item Configuring and building a basic system with Buildroot for the
+    BeagleBone Black
+  \item Flash and test the generated system on the BeagleBone Black
+  \end{itemize}
+}
+{Lecture - Managing the build and configuration}
+{
+  \begin{itemize}
+  \item Out of tree build
+  \item Using and creating {\em defconfigs}
+  \item Defconfig fragments
+  \item Other building tips
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture - Buildroot source and build trees}
+{
+  \begin{itemize}
+  \item Details about the Buildroot source code organization
+  \item Details about the Buildroot build tree
+  \end{itemize}
+}
+
+
+\section{Half day 2}
+
+\feagendaonecolumn
+{Lecture - Toolchains in Buildroot}
+{
+  \begin{itemize}
+  \item The different choices for using toolchains in Buildroot
+  \item Overview of the toolchain options
+  \item Using existing binary toolchains, such as Sourcery CodeBench
+    toolchains, understanding {\em multilib} capabilities and
+    integration of toolchains in Buildroot
+  \item Generating custom toolchains with {\em Crosstool-NG}, and
+    re-use them as external toolchains
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Managing the Linux kernel configuration}
+{
+  \begin{itemize}
+  \item Loading, changing and saving the kernel configuration
+  \end{itemize}
+}
+{Lecture - Root filesystem construction in Buildroot}
+{
+  \begin{itemize}
+  \item Understand how Buildroot builds the root filesystem: {\em
+      skeleton}, installation of packages, overlays, {\em post-build}
+    and {\em post-image} scripts.
+  \item Customization of the root filesystem contents
+  \item System configuration: {\em console} selection, various {\tt
+      /dev} management methods, the different {\tt init}
+    implementations, etc.
+  \item Understand how Buildroot generates filesystem images
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo - Root filesystem customization}
+{
+  \begin{itemize}
+  \item Explore the build output
+  \item Customize the root filesystem using a {\em rootfs overlay}
+  \item Customize the kernel with patches and additional configuration
+    options
+  \item Add more packages
+  \item Use {\em defconfig} files and {\em out of tree} build
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Download infrastructure in Buildroot}
+{
+  \begin{itemize}
+  \item Downloading logic
+  \item Primary site and backup site, doing offline builds
+  \item VCS download, integrity checking
+  \item Download-related {\em make} targets
+  \end{itemize}
+}
+{Lecture - GNU Make 101}
+{
+  \begin{itemize}
+  \item Basics of make rules
+  \item Defining and referencing variables
+  \item Conditions, functions
+  \item Writing recipes
+  \end{itemize}
+}
+
+\section{Half day 3}
+
+\feagendatwocolumn
+{Lecture - Integrating new packages in Buildroot}
+{
+  \begin{itemize}
+  \item How to integrate new packages in the Buildroot configuration
+    system
+  \item Understand the different package infrastructures: for {\em
+      generic}, {\em autotools}, {\em CMake}, {\em Python} packages
+    and more.
+  \item Writing a package \code{Config.in} file: how to express
+    dependencies on other packages, on toolchain options, etc.
+  \item Details on writing a package recipe: describing the package
+    source code location, download method, configuration, build and
+    installation steps, handling dependencies, etc.
+  \end{itemize}
+}
+{Demo - New packages in Buildroot}
+{
+  \begin{itemize}
+  \item Create a new package for {\em nInvaders}
+  \item Understand how to add dependencies
+  \item Add patches to {\em nInvaders} for {\em Nunchuk} support
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Advanced package aspects}
+{
+  \begin{itemize}
+  \item Licensing report
+  \item Patching support: patch ordering and format, global patch directory, etc.
+  \item User, permission, device tables
+  \item Init scripts and systemd unit files
+  \item Config scripts
+  \item Understanding {\em hooks}
+  \item Overriding commands
+  \item Legacy handling
+  \item Virtual packages
+  \end{itemize}
+}
+{Demo - Advanced packages}
+{
+  \begin{itemize}
+  \item Package an application with a mandatory dependency and an
+    optional dependency
+  \item Package a library, hosted on GitHub
+  \item Use {\em hooks} to tweak packages
+  \item Add a patch to a package
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture - Analyzing the build: licensing, dependencies, build time}
+{
+  \begin{itemize}
+  \item Usage of the legal information infrastructure
+  \item Graphing dependencies of packages
+  \item Collecting and graphing build time information
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture - Advanced topics}
+{
+  \begin{itemize}
+  \item \code{BR2_EXTERNAL} to store customizations outside of the
+    Buildroot sources
+  \item Package-specific targets
+  \item Understanding rebuilds
+  \item Tips for building faster
+  \end{itemize}
+}
+
+\section{Half day 4}
+
+\feagendaonecolumn
+{Demo - Advanced aspects}
+{
+  \begin{itemize}
+  \item Use build time graphing capabilities
+  \item Use dependency graphing capabilities
+  \item Use licensing report generation, and add licensing
+    information to your own packages
+  \item Use \code{BR2_EXTERNAL}
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Application development with Buildroot}
+{
+  \begin{itemize}
+  \item Using Buildroot during application development
+  \item Usage of the Buildroot environment to build applications
+    outside of Buildroot
+  \item Generate an SDK for other developers
+  \item Remote debugging with Buildroot
+  \end{itemize}
+}
+{Demo - Application development with Buildroot}
+{
+  \begin{itemize}
+  \item Build and run your own application
+  \item Remote debug your application
+  \item Use \code{<pkg>_OVERRIDE_SRCDIR}
+  \end{itemize}
+}
+
+% Strange that this is required, otherwise the page overflows
+\newpage
+
+\feagendatwocolumn
+{Lecture - Understanding Buildroot internals}
+{
+  \begin{itemize}
+  \item Detailed description of the Buildroot build process:
+    toolchain, packages, root filesystem construction, stamp files,
+    etc.
+  \item Understanding virtual packages.
+  \end{itemize}
+}
+{Lecture - Getting support and contributing, what's new in Buildroot}
+{
+  \begin{itemize}
+  \item Getting support: {\em Bugzilla}, {\em mailing list}, {\em IRC}
+  \item Contributing: understanding the development process, how to
+    submit patches
+  \item What's new in Buildroot: summary of the major changes since
+    the last two years
+  \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}
+}
+
+\end{document}




More information about the training-materials-updates mailing list