[FE training-materials-updates] Add Buildroot training agenda
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Tue Dec 31 11:34:36 CET 2013
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=3fe2d330081cc4d07a596fd4530bc149d8b9a80a
>---------------------------------------------------------------
commit 3fe2d330081cc4d07a596fd4530bc149d8b9a80a
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date: Tue Dec 31 11:33:46 2013 +0100
Add Buildroot training agenda
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>---------------------------------------------------------------
3fe2d330081cc4d07a596fd4530bc149d8b9a80a
agenda/buildroot-agenda.tex | 325 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 325 insertions(+)
diff --git a/agenda/buildroot-agenda.tex b/agenda/buildroot-agenda.tex
new file mode 100644
index 0000000..944d56e
--- /dev/null
+++ b/agenda/buildroot-agenda.tex
@@ -0,0 +1,325 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{palatino}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Buildroot training},
+ pdfauthor={Free Electrons}}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+Buildroot training\\
+\large
+3 days 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} & Buildroot training \\
+ \hline
+
+ {\bf Overview} &
+ Introduction to Buildroot \par
+ Toolchains in Buildroot \par
+ Root filesystem construction in Buildroot \par
+ Integrating new packages in Buildroot \par
+ Advanced package recipe tricks \par
+ Board and project support \par
+ Application development with Buildroot \\
+ \hline
+
+ {\bf Duration} & {\bf Three} days - 24 hours (8 hours per day).
+ \newline 40\% of lectures, 60\% of practical labs. \\
+ \hline
+
+ {\bf Trainer} & {\bf Thomas Petazzoni}. Thomas is a major
+ Buildroot developer 2009, with more than 1600 patches integrated
+ and an active
+ participation to the development process.\\
+ \hline
+
+ {\bf Language} & Oral lectures: English, French.
+ \newline Materials: English.\\
+ \hline
+
+ {\bf Audience} & Companies interested in using Buildroot to build
+ their
+ embedded Linux system.\\
+ \hline
+
+ {\bf Prerequisites} & {\bf Knowledge of embedded Linux} as covered
+ in our embedded Linux training
+ (\url{http://free-electrons.com/training/embedded-linux/}) \newline
+ {\bf Knowledge and practice of Unix or GNU/Linux commands}
+ \newline People lacking experience on this topic should get
+ trained by themselves with our freely available on-line slides
+ (\url{http://free-electrons.com/docs/command-line/}) \\
+ \hline
+
+ {\bf Required equipment} &
+ {\bf For on-site sessions only.}
+ \newline Everything is supplied by Free Electrons in public
+ sessions.
+ \begin{itemize}
+ \item Video projector
+ \item PC computers with at least 2 GB of RAM, and Ubuntu Linux
+ installed in a {\bf free partition of at least 20 GB. Using Linux
+ in a virtual machine is not supported}, because of issues
+ connecting to real hardware.
+ \item We need Ubuntu Desktop 12.04 (32 or 64 bit, Xubuntu and
+ Kubuntu variants are fine). We don't support other
+ distributions, because we can't test all possible package versions.
+ \item {\bf 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}}
+
+\feagendatwocolumn
+{Hardware}
+{
+ The hardware platform used for the practical labs of this training
+ session is a {\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
+ \item USB host and device
+ \item HDMI output
+ \item 2 x 46 pins headers, to access UARTs, SPI busses, I2C busses
+ and more.
+ \end{itemize}
+}
+{}
+{
+ \begin{center}
+ \includegraphics[height=5cm]{agenda/beagleboneblack.png}
+ \end{center}
+}
+
+\section{Day 1 - Morning}
+
+\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 Comparaison of existing build systems
+ \end{itemize}
+}
+{Lecture - Introduction to Buildroot}
+{
+ \begin{itemize}
+ \item Buildroot project organization
+ \item Basic configuration and usage of Buildroot
+ \end{itemize}
+}
+\\
+\feagendatwocolumn
+{Lab - Basic Buildroot usage}
+{
+ \begin{itemize}
+ \item Getting and setting up Buildroot
+ \item Configuring a basic system with Buildroot
+ \item Running the system on an hardware platform and in the Qemu
+ emulator, with the root filesystem over NFS or the root filesystem
+ flashed
+ \end{itemize}
+}
+{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{Day 1 - Afternoon}
+
+\feagendatwocolumn
+{Lecture - Toolchains in Buildroot}
+{
+ \begin{itemize}
+ \item The different choices for using toolchains in Buildroot
+ \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 Buildroot and {\em Crosstool-ng}
+ \item Details on using and configuring {\em Crosstool-ng}
+ \end{itemize}
+}
+{Lab - Toolchains in Buildroot}
+{
+ \begin{itemize}
+ \item Explore the integration of external toolchains in Buildroot
+ and test the {\em multilib} mechanism with Sourcery CodeBench
+ toolchains
+ \item Use {\em Crosstool-NG} to generate a custom toolchain, and
+ integrate it into Buildroot
+ \end{itemize}
+}
+
+\section{Day 2 - Morning}
+
+\feagendatwocolumn
+{Lecture - Root filesystem construction in Buildroot}
+{
+ \begin{itemize}
+ \item Understand how Buildroot builds the root filesystem: {\em
+ skeleton} and installation of packages
+ \item Customization of the root filesystem contents
+ \item Understand the configuration of the {\em console}
+ \item Study the different options for managing the {\tt /dev}
+ directory: static or dynamic, with mdev or udev
+ \item Understand how Buildroot generates filesystem images
+ \end{itemize}
+}
+{Lab - Root filesystem construction}
+{
+ \begin{itemize}
+ \item Generate Buildroot systems with different {\tt /dev}
+ management options and test them on an hardware platform.
+ \item Customize the root filesystem contents
+ \end{itemize}
+}
+\\
+\feagendaonecolumn
+{Lecture - Integrating new packages in Buildroot}
+{
+ \begin{itemize}
+ \item How to integrate new packages in the Buildroot configuration
+ system
+ \item Understand the multiple package infrastructures (for {\em
+ generic} packages, {\em autotools} packages, {\em CMake}
+ packages and {\em Python} packages)
+ \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}
+}
+
+\section{Day 2 - Afternoon}
+
+\feagendatwocolumn
+{Lab - New packages in Buildroot}
+{
+ \begin{itemize}
+ \item Practical creation of multiple new packages in Buildroot,
+ using the different package infrastructures.
+ \end{itemize}
+}
+{Lecture - Advanced package recipe tricks}
+{
+ \begin{itemize}
+ \item Understanding {\em hooks}
+ \item Packaging software available from the local filesystem ({\em
+ local} and {\em file} fetching methods)
+ \item Best practices to use packages during development of
+ applications and libraries ({\em source override} mechanism)
+ \end{itemize}
+}
+\\
+\feagendaonecolumn
+{Lab - Advanced package recipe tricks}
+{
+ \begin{itemize}
+ \item Use {\em hooks} in packages
+ \item Use special features for custom software
+ \end{itemize}
+}
+
+\section{Day 3 - Morning}
+
+\feagendatwocolumn
+{Lecture - Board and project support}
+{
+ \begin{itemize}
+ \item Understand how to handle board-specific and project-specific
+ information
+ \item Storing the kernel and bootloader configuration and patches
+ \item Storing the project configuration
+ \item Handling root filesystem customization (post-build script,
+ skeleton, etc.)
+ \item How to version control project-specific changes
+ \end{itemize}
+}
+{Lab - Board and project support}
+{
+ \begin{itemize}
+ \item Create a Buildroot configuration for a specific project, with:
+ \begin{itemize}
+ \item a custom kernel configuration
+ \item custom packages
+ \item special root filesystem modifications.
+ \end{itemize}
+ \end{itemize}
+}
+
+\section{Day 3 - Afternoon}
+
+\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 a SDK for other developers
+ \item Remote debugging with Buildroot
+ \end{itemize}
+}
+{Lab - Application development with Buildroot}
+{
+ \begin{itemize}
+ \item Experiment application development and debugging with
+ Buildroot, through a practical example on our target system.
+ \end{itemize}
+}
+\\
+\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}
+{
+ \begin{itemize}
+ \item Getting support: {\em bugzilla}, {\em mailing list}, {\em IRC}
+ \item Contributing: understanding the development process, how to
+ submit patches
+ \end{itemize}
+}
+
+\end{document}
More information about the training-materials-updates
mailing list