[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