[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