[bootlin/training-materials updates] master: BusyBox slide improvements (e2839322)
Michael Opdenacker
michael.opdenacker at bootlin.com
Thu Aug 20 19:13:20 CEST 2020
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/e2839322f6ff156300911497b8d591827e217b0e
>---------------------------------------------------------------
commit e2839322f6ff156300911497b8d591827e217b0e
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Thu Aug 20 19:13:20 2020 +0200
BusyBox slide improvements
- More details
- More graphics
- Better order
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
e2839322f6ff156300911497b8d591827e217b0e
common/busybox.png | Bin 0 -> 71850 bytes
slides/sysdev-busybox/busybox-tree.png | Bin 0 -> 103216 bytes
slides/sysdev-busybox/busybox-vi-configuration.png | Bin 0 -> 100811 bytes
slides/sysdev-busybox/sysdev-busybox.tex | 130 ++++++++++++---------
slides/sysdev-embedded-linux/busybox.png | Bin 10422 -> 0 bytes
.../sysdev-embedded-linux.tex | 2 +-
.../sysdev-kernel-building.tex | 4 +
7 files changed, 82 insertions(+), 54 deletions(-)
diff --git a/common/busybox.png b/common/busybox.png
new file mode 100644
index 00000000..a7460b67
Binary files /dev/null and b/common/busybox.png differ
diff --git a/slides/sysdev-busybox/busybox-tree.png b/slides/sysdev-busybox/busybox-tree.png
new file mode 100644
index 00000000..c58bcc56
Binary files /dev/null and b/slides/sysdev-busybox/busybox-tree.png differ
diff --git a/slides/sysdev-busybox/busybox-vi-configuration.png b/slides/sysdev-busybox/busybox-vi-configuration.png
new file mode 100644
index 00000000..9f651ac5
Binary files /dev/null and b/slides/sysdev-busybox/busybox-vi-configuration.png differ
diff --git a/slides/sysdev-busybox/sysdev-busybox.tex b/slides/sysdev-busybox/sysdev-busybox.tex
index c5e7601c..59100928 100644
--- a/slides/sysdev-busybox/sysdev-busybox.tex
+++ b/slides/sysdev-busybox/sysdev-busybox.tex
@@ -28,27 +28,46 @@
\begin{frame}
\frametitle{General purpose toolbox: BusyBox}
- \begin{itemize}
- \item Rewrite of many useful UNIX command line utilities
- \begin{itemize}
- \item Created in 1995 to implement a rescue and installer
- system for Debian, fitting in a single floppy disk (1.44 MB)
- \item Integrated into a single project, which makes it easy to
- work with
- \item Designed with embedded systems in mind: highly configurable,
- no unnecessary features
- \end{itemize}
- \item All the utilities are compiled into a single executable,
- \code{/bin/busybox}
- \begin{itemize}
- \item Symbolic links to \code{/bin/busybox} are created for each
- application integrated into Busybox
- \end{itemize}
- \item For a fairly featureful configuration, less than 500 KB
- (statically compiled with uClibc) or less than 1 MB (statically
- compiled with glibc).
- \item \url{https://www.busybox.net/}
- \end{itemize}
+ \begin{columns}
+ \column{0.75\textwidth}
+ \url{https://www.busybox.net/}
+ \begin{itemize}
+ \item Rewrite of many useful UNIX command line utilities
+ \begin{itemize}
+ \item Created in 1995 to implement a rescue and installer
+ system for Debian, fitting in a single floppy disk (1.44 MB)
+ \item Integrated into a single project, which makes it easy to
+ work with
+ \item Designed with embedded systems in mind: highly configurable,
+ no unnecessary features
+ \item Called the {\em Swiss Army Knife of Embedded Linux}
+ \end{itemize}
+ \item License: GNU GPLv2
+ \item Alternative: Toybox, BSD licensed (\url{https://en.wikipedia.org/wiki/Toybox})
+ \end{itemize}
+ \column{0.25\textwidth}
+ \includegraphics[width=\textwidth]{common/busybox.png}
+ \end{columns}
+\end{frame}
+
+\begin{frame}
+ \frametitle{BusyBox in the root filesystem}
+ \begin{columns}
+ \column{0.65\textwidth}
+ \begin{itemize}
+ \item All the utilities are compiled into a single executable,
+ \code{/bin/busybox}
+ \begin{itemize}
+ \item Symbolic links to \code{/bin/busybox} are created for each
+ application integrated into Busybox
+ \end{itemize}
+ \item For a fairly featureful configuration, less than 500 KB
+ (statically compiled with uClibc) or less than 1 MB (statically
+ compiled with glibc).
+ \end{itemize}
+ \column{0.35\textwidth}
+ \includegraphics[width=\textwidth]{slides/sysdev-busybox/busybox-tree.png}
+ \end{columns}
\end{frame}
\begin{frame}
@@ -109,36 +128,6 @@ yes, zcat, zcip}
Source: run \code{/bin/busybox}
\end{frame}
-\begin{frame}
- \frametitle{Applet highlight: Busybox init}
- \begin{itemize}
- \item Busybox provides an implementation of an \code{init} program
- \item Simpler than the init implementation found on desktop/server
- systems ({\em SysV init} or {\em systemd})
- \item A single configuration file: \code{/etc/inittab}
- \begin{itemize}
- \item Each line has the form \code{<id>::<action>:<process>}
- \end{itemize}
- \item Allows to run services at startup, and to make sure that
- certain services are always running on the system
- \item See \projfile{busybox}{examples/inittab} in Busybox for details on the
- configuration
- \end{itemize}
-\end{frame}
-
-\begin{frame}
- \frametitle{Applet highlight - BusyBox vi}
- \begin{itemize}
- \item If you are using BusyBox, adding \code{vi} support only adds
- 20K (built with shared libraries, using uClibc).
- \item You can select which exact features to compile in.
- \item Users hardly realize that they are using a lightweight \code{vi}
- version!
- \item Tip: you can learn \code{vi} on the desktop, by running the \code{vimtutor}
- command.
- \end{itemize}
-\end{frame}
-
\begin{frame}
\frametitle{Configuring BusyBox}
\begin{itemize}
@@ -161,13 +150,13 @@ yes, zcat, zcip}
\begin{frame}
\frametitle{BusyBox make xconfig}
\begin{columns}
- \column{0.3\textwidth}
+ \column{0.5\textwidth}
You can choose:
\begin{itemize}
\item the commands to compile,
\item and even the command options and features that you need!
\end{itemize}
- \column{0.7\textwidth}
+ \column{0.5\textwidth}
\includegraphics[width=\textwidth]{slides/sysdev-busybox/xconfig-screenshot.png}
\end{columns}
\end{frame}
@@ -192,6 +181,41 @@ yes, zcat, zcip}
\end{itemize}
\end{frame}
+\begin{frame}
+ \frametitle{Applet highlight: Busybox init}
+ \begin{itemize}
+ \item Busybox provides an implementation of an \code{init} program
+ \item Simpler than the init implementation found on desktop/server
+ systems ({\em SysV init} or {\em systemd})
+ \item A single configuration file: \code{/etc/inittab}
+ \begin{itemize}
+ \item Each line has the form \code{<id>::<action>:<process>}
+ \end{itemize}
+ \item Allows to run services at startup, and to make sure that
+ certain services are always running on the system
+ \item See \projfile{busybox}{examples/inittab} in Busybox for details on the
+ configuration
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Applet highlight - BusyBox vi}
+ \begin{columns}
+ \column{0.6\textwidth}
+ \begin{itemize}
+ \item If you are using BusyBox, adding \code{vi} support only adds
+ about 20K
+ \item You can select which exact features to compile in.
+ \item Users hardly realize that they are using a lightweight \code{vi}
+ version!
+ \item Tip: you can learn \code{vi} on the desktop, by running the \code{vimtutor}
+ command.
+ \end{itemize}
+ \column{0.4\textwidth}
+ \includegraphics[width=\textwidth]{slides/sysdev-busybox/busybox-vi-configuration.png}
+ \end{columns}
+\end{frame}
+
\setuplabframe
{A tiny embedded system}
{
diff --git a/slides/sysdev-embedded-linux/busybox.png b/slides/sysdev-embedded-linux/busybox.png
deleted file mode 100644
index 9532a2b6..00000000
Binary files a/slides/sysdev-embedded-linux/busybox.png and /dev/null differ
diff --git a/slides/sysdev-embedded-linux/sysdev-embedded-linux.tex b/slides/sysdev-embedded-linux/sysdev-embedded-linux.tex
index b2445378..f513c360 100644
--- a/slides/sysdev-embedded-linux/sysdev-embedded-linux.tex
+++ b/slides/sysdev-embedded-linux/sysdev-embedded-linux.tex
@@ -434,7 +434,7 @@ met:
enough to be used.
\end{itemize}
\column{0.2\textwidth}
- \includegraphics[width=0.9\textwidth]{slides/sysdev-embedded-linux/busybox.png}\\
+ \includegraphics[width=0.9\textwidth]{common/busybox.png}\\
\end{columns}
\end{frame}
diff --git a/slides/sysdev-kernel-building/sysdev-kernel-building.tex b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
index 4233f223..37208e34 100644
--- a/slides/sysdev-kernel-building/sysdev-kernel-building.tex
+++ b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
@@ -539,6 +539,8 @@ tools (\code{gcc}, \code{as}, \code{ld}, \code{objcopy}, \code{strip}...).
\item There is one different Device Tree for each board/platform
supported by the kernel, available in
\code{arch/arm/boot/dts/<board>.dtb}.
+ \item See \kfile{arch/arm/boot/dts/at91-sama5d3_xplained.dts} for
+ example.
\end{itemize}
\item The bootloader must load both the kernel image and the Device
Tree Blob in memory before starting the kernel.
@@ -555,6 +557,8 @@ tools (\code{gcc}, \code{as}, \code{ld}, \code{objcopy}, \code{strip}...).
busses (such as I2C) and configure them.
\item To configure pin muxing: choosing what SoC signals are
made available on the board external connectors.
+ See \url{http://linux.tanzilli.com/} for a web service doing this
+ interactively.
\item To configure some system parameters: flash partitions,
kernel command line (other ways exist)
\item Useful reference: Device Tree for Dummies, Thomas Petazzoni (Apr. 2014):
More information about the training-materials-updates
mailing list