[bootlin/training-materials updates] master: Boot time labs: add switching to static executables (1affd4e3)
Michael Opdenacker
michael.opdenacker at bootlin.com
Wed Oct 23 15:16:54 CEST 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/1affd4e3cbdeeb5c81087e0aceb240ae3f82e8b6
>---------------------------------------------------------------
commit 1affd4e3cbdeeb5c81087e0aceb240ae3f82e8b6
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Wed Oct 23 15:16:54 2019 +0200
Boot time labs: add switching to static executables
- Producing good results!
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
1affd4e3cbdeeb5c81087e0aceb240ae3f82e8b6
.../boot-time-init-scripts.tex | 24 ++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/labs/boot-time-init-scripts/boot-time-init-scripts.tex b/labs/boot-time-init-scripts/boot-time-init-scripts.tex
index 04f92ffa..153a7ffe 100644
--- a/labs/boot-time-init-scripts/boot-time-init-scripts.tex
+++ b/labs/boot-time-init-scripts/boot-time-init-scripts.tex
@@ -7,6 +7,8 @@ Remember that the first step in optimization work is measuring elapsed
time. We need to know which parts of the init scripts are the biggest
time consumers.
+Check and write down the initial size of the root filesystem archive.
+
\subsection{Use bootchartd on the board}
Add \code{bootchartd} to your \code{BusyBox} configuration:
@@ -292,6 +294,8 @@ Update your root filesystem, remove the \code{rw} kernel parameter from
\code{bootargs} in U-Boot (better to keep the root filesystem mounted read-only as we don't
cleanly shut down the system) and check that your system still boots fine.
+Check and write down the new size of the root filesystem archive.
+
\subsection{Reducing BusyBox to the minimum}
While we're simplifying the root filesystem, it's time to reduce the
@@ -330,8 +334,6 @@ Just select the below options, based on what we have in our
\begin{itemize}
\item Support for the \code{sleep} command, with support for fractional arguments.
\item Support for the \code{echo} command, without additional options.
- \item Support for the \code{sync} command, without further options.
- We need this utility if we make changes to the root filesystem.
\item Enable \code{test} and \code{test as [}
\item Disable \code{Extend test to 64 bit}
\end{itemize}
@@ -352,6 +354,24 @@ Buildroot will enable Busybox \code{init} into your configuration.
Run \code{make}, and update your SD card.
Check the new size of \code{/bin/busybox}!
+Also write down the new size of the root filesystem tar archive.
+
+\subsection{Switching to static executables}
+
+Since we now have only two executables (\code{busybox} and
+\code{ffmpeg}), let's explore the possibility to switch to static
+executables, hoping to reduce filesystem size by not having to copy
+the entire shared libraries.
+
+In Buildroot's configuration interface, find and set
+\code{BR2_STATIC_LIBS=y}.
+
+Run \code{make clean} and \code{make}.
+
+Again, write down the new size of the root filesystem tar archive.
+You should observe substancial space reduction. Let's keep this option!
+
+\subsection{Testing}
Boot your system again.
If everything works, it's time to boot the system again through
More information about the training-materials-updates
mailing list