[bootlin/training-materials updates] master: On-line agenda for the boot-time course (ce2ed94c)
Michael Opdenacker
michael.opdenacker at bootlin.com
Fri Jan 22 12:22:42 CET 2021
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/ce2ed94cc41b114282b87939c9127193a04ea402
>---------------------------------------------------------------
commit ce2ed94cc41b114282b87939c9127193a04ea402
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Fri Jan 22 12:22:42 2021 +0100
On-line agenda for the boot-time course
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
ce2ed94cc41b114282b87939c9127193a04ea402
agenda/boot-time-agenda.tex | 12 +-
agenda/boot-time-online-agenda.tex | 325 +++++++++++++++++++++++++++++++++++++
2 files changed, 332 insertions(+), 5 deletions(-)
diff --git a/agenda/boot-time-agenda.tex b/agenda/boot-time-agenda.tex
index 95d27078..a2636e8e 100644
--- a/agenda/boot-time-agenda.tex
+++ b/agenda/boot-time-agenda.tex
@@ -5,7 +5,7 @@
\usepackage{xcolor}
\usepackage{calc}
-\hypersetup{pdftitle={Boot time optimization},
+\hypersetup{pdftitle={Boot time optimization training},
pdfauthor={Bootlin}}
\renewcommand{\arraystretch}{2.0}
@@ -40,10 +40,11 @@ Boot Time Optimization Training\\
Reducing kernel boot time \par
Bootloader optimizations \par
Advanced techniques and alternatives \par
- Practical labs with ARM boards (Beagle Bone Black).\\
+ Practical labs with the ARM-based BeagleBone Black board
+ (or with its Wireless variant).\\
\hline
{\bf Materials} &
- Will soon be published on
+ Check that the course contents correspond to your needs:
\newline \url{https://bootlin.com/doc/training/boot-time}. \\
\hline
@@ -277,7 +278,8 @@ Boot Time Optimization Training\\
\item Compiling U-Boot with less features
\item U-Boot configuration settings that impact boot time
\item Optimizing kernel loading
- \item Skipping the bootloader - U-Boot's Falcon mode
+ \item Skipping the bootloader - How to modify U-Boot to
+ enable its {\em Falcon mode}
\end{itemize}
}
{Lab - Bootloader optimizations}
@@ -286,7 +288,7 @@ Boot Time Optimization Training\\
\item Using the above techniques to make the bootloader
as quick as possible.
\item Switching to faster storage
- \item Skip the bootloader with U-Boot's Falcon mode
+ \item Skip the bootloader with U-Boot's {\em Falcon mode}
\end{itemize}
}
diff --git a/agenda/boot-time-online-agenda.tex b/agenda/boot-time-online-agenda.tex
new file mode 100644
index 00000000..f638c677
--- /dev/null
+++ b/agenda/boot-time-online-agenda.tex
@@ -0,0 +1,325 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Boot time optimization training},
+ pdfauthor={Bootlin}}
+
+\renewcommand{\arraystretch}{2.0}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+Boot Time Optimization 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 Boot Time Optimization Training}\\
+ \hline
+
+ {\bf Overview} &
+ Measuring boot time \par
+ Reducing user space boot time \par
+ Reducing kernel boot time \par
+ Bootloader optimizations \par
+ Advanced techniques and alternatives \par
+ Practical demos with the ARM-based BeagleBone Black board
+ (or with its Wireless variant).\\
+ \hline
+ {\bf Materials} &
+ Check that the course contents correspond to your needs:
+ \newline \url{https://bootlin.com/doc/training/boot-time}. \\
+ \hline
+
+ {\bf Duration} & {\bf Four } half days - 16 hours (4 hours per half day).
+ \newline 25\% of lectures, 75\% of practical demos. \\
+ \hline
+
+ {\bf Trainer} & One of the engineers listed on
+ \newline \url{https://bootlin.com/training/trainers/}\\
+ \hline
+
+ {\bf Language} & Oral lectures: English or French.
+ \newline Materials: English.\\
+ \hline
+
+ {\bf Audience} & People developing embedded Linux systems.
+ \newline People supporting embedded Linux system developers. \\
+ \hline
+
+ {\bf Prerequisites} & {\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/} \vspace{1em}
+ \newline {\bf Knowledge and practice of embedded Linux system
+ development} \\
+ \hline
+ \end{tabularx}
+
+ \begin{tabularx}{\textwidth}{|g|h|}
+ {\bf Required equipment} &
+ \begin{itemize}
+ \item Computer with the operating system of your choice, with the
+ Google Chrome or Chromium browser 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} board, 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}
+}
+
+\feagendaonecolumn
+{Demos}
+{
+ The practical demos of this training session use the following
+ hardware peripherals:
+
+ \begin{itemize}
+ \item A USB webcam
+ \item An LCD and touchscreen cape connected to the
+ BeagleBone Black board, to display the video captured by the webcam.
+ \item We will also use an Arduino board as a way to measure boot time with accurary,
+ demonstrating a hardware boot time measurement technique.
+ \end{itemize}
+}
+
+\section{Half day 1}
+\feagendatwocolumn
+{Lecture - Principles}
+{
+ \begin{itemize}
+ \item How to measure boot time
+ \item Main ideas
+ \end{itemize}
+}
+{Demo - Preparing the system}
+{
+ \begin{itemize}
+ \item Downloading bootloader, kernel and Buildroot source code
+ \item Board setup, setting up serial communication
+ \item Configure Buildroot and build the system
+ \item Configure and build the U-Boot bootloader. Prepare an SD card
+ and boot the bootloader from it.
+ \item Configure and build the kernel. Boot the system
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Measuring time}
+{
+ \begin{itemize}
+ \item Generic software techniques
+ \item Hardware techniques
+ \item Specific solutions for each stage
+ \end{itemize}
+}
+{Demo - Measuring time - Software solution}
+{
+ \begin{itemize}
+ \item Modify the system to measure time at various steps
+ \item Timing messages on the serial console
+ \item Timing the execution of the application
+ \item Timing the launching of the application
+ \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo - Measuring time - Hardware solution}
+{
+ \begin{itemize}
+ \item Measure total boot time by toggling a GPIO
+ \item Setting up an Arduino board
+ \item Preparing a test circuit with a 7-segment display
+ \item Modifying the DTS to configuring Bone Black pins as GPIOs
+ \item Making the application drive the custom GPIOs
+ \end{itemize}
+}
+
+\section{Half day 2}
+
+\feagendaonecolumn
+{Lecture - Toolchain optimizations}
+{
+ \begin{itemize}
+ \item Introduction to toolchains
+ \item C libraries
+ \item Size information
+ \item Measuring executable performance with \code{time}
+ \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo - Toolchain optimizations}
+{
+ \begin{itemize}
+ \item Measuring application execution time
+ \item Switching to a Thumb2 toolchain
+ \item Generate a Buildroot SDK to rebuild faster
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Application optimization}
+{
+ \begin{itemize}
+ \item Using \code{strace}
+ \item Other profiling techniques
+ \end{itemize}
+}
+{Demo - Application optimization}
+{
+ \begin{itemize}
+ \item Finding unnecessary configuration options in applications
+ \item Modifying configuration options through Buildroot
+ \item Experiments with \code{strace} to trace program execution
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Optimizing system initialization}
+{
+ \begin{itemize}
+ \item Using Bootchart
+ \item Optimizing init scripts
+ \item Possibility to start your application directly
+ \end{itemize}
+}
+{Demo - Optimizing system initialization}
+{
+ \begin{itemize}
+ \item Using Buildroot to remove unnecessary scripts and commands
+ \item Access-time based technique to identify unused files
+ \item Simplifying BusyBox
+ \item Starting the application as the init program
+ \end{itemize}
+}
+
+\section{Half day 3}
+
+\feagendatwocolumn
+{Lecture - Filesystem optimizations}
+{
+ \begin{itemize}
+ \item Available filesystems, performance and boot time aspects
+ \item Making UBIFS faster
+ \item Tweaks for reducing boot time
+ \item Booting on an initramfs
+ \item Using static executables: licensing constraints
+ \end{itemize}
+}
+{Demo - Filesystem optimizations}
+{
+ \begin{itemize}
+ \item Trying and measuring two block filesystems: ext4 and SquashFS.
+ \item Trying and measuring the initramfs solution. Constraints
+ due to this solution.
+ \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Kernel optimizations}
+{
+ \begin{itemize}
+ \item Using {\em Initcall debug} to generate a boot graph
+ \item Compression and size features
+ \item Reducing or suppressing console output
+ \item Multiple tweaks to reduce boot time
+ \end{itemize}
+}
+{Demo - Kernel optimizations}
+{
+ \begin{itemize}
+ \item Generating and analyzing a boot graph for the kernel
+ \item Find and eliminate unnecessary kernel features
+ \item Find the best kernel compression solution for our system
+ \end{itemize}
+}
+
+\section{Half day 4}
+
+\feagendaonecolumn
+{Demo - Kernel optimizations}
+{
+ Continued from the previous session
+}
+
+\feagendatwocolumn
+{Lecture - Bootloader optimizations}
+{
+ \begin{itemize}
+ \item Compiling U-Boot with less features
+ \item U-Boot configuration settings that impact boot time
+ \item Optimizing kernel loading
+ \item Skipping the bootloader - How to modify U-Boot to
+ enable its {\em Falcon mode}
+ \end{itemize}
+}
+{Demo - Bootloader optimizations}
+{
+ \begin{itemize}
+ \item Using the above techniques to make the bootloader
+ as quick as possible.
+ \item Switching to faster storage
+ \item Skip the bootloader with U-Boot's {\em Falcon mode}
+ \end{itemize}
+}
+
+\feagendaonecolumn
+{Wrap-up}
+{
+ \begin{itemize}
+ \item Summary of results
+ \item Questions and answers, experience sharing with the trainer
+ \end{itemize}
+}
+
+\end{document}
More information about the training-materials-updates
mailing list