[bootlin/training-materials updates] master: Boot time: Buildroot part1 (8fca0941)
Michael Opdenacker
michael.opdenacker at bootlin.com
Thu May 16 14:17:19 CEST 2019
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/8fca094129efa2d273fddfbcdb3cfef3aefffce5
>---------------------------------------------------------------
commit 8fca094129efa2d273fddfbcdb3cfef3aefffce5
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date: Thu May 16 05:55:41 2019 +0200
Boot time: Buildroot part1
Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>
>---------------------------------------------------------------
8fca094129efa2d273fddfbcdb3cfef3aefffce5
.../boot-time-build-system.tex | 81 ++++++++++++++++++++++
mk/boot-time.mk | 1 +
2 files changed, 82 insertions(+)
diff --git a/labs/boot-time-build-system/boot-time-build-system.tex b/labs/boot-time-build-system/boot-time-build-system.tex
new file mode 100644
index 00000000..9150dd4a
--- /dev/null
+++ b/labs/boot-time-build-system/boot-time-build-system.tex
@@ -0,0 +1,81 @@
+\subchapter{Build the system}{Objective: compile the root filesystem.}
+
+After this lab, you will have a ready to use root filesystem to boot
+your system with, including a video player application.
+
+We haven't compiled the bootloader and kernel for our board yet,
+but since this part can take a long time (especially compiling the
+cross-compiling toolchain), let's start it now, while we are still
+fetching kernel sources or going through lectures.
+
+\section{Setup}
+
+As specified in the Buildroot
+manual\footnote{\url{https://buildroot.org/downloads/manual/manual.html\#requirement-mandatory}},
+Buildroot requires a few packages to be installed on your
+machine. Let's install them using Ubuntu's package manager:
+
+\begin{verbatim}
+sudo apt install sed make binutils gcc g++ bash patch \
+ gzip bzip2 perl tar cpio python unzip rsync wget libncurses-dev
+\end{verbatim}
+
+\section{Choosing a Buildroot release}
+
+Buildroot is one of the best tools for building a custom root filesystem
+for a dedicated embedded system with a fixed set of features, typically
+like the one we're trying to build.
+
+Go to the /code{~/boot-time-labs/src/buildroot/} directory.
+
+We will use the latest revision of the \code{2019.02} release, which is
+one of Buildroot's long term releases:
+
+\begin{verbatim}
+git tag | grep 2019.02
+git checkout 2019.02.2
+\end{verbatim}
+
+\section{Configuring Buildroot}
+
+To minimize external dependencies and maximize flexibility, we will ask
+Buildroot to generate its own toolchain. This can be better than using
+external toolchains, as we have the ability to tweak toolchain settings
+in a fine way if needed.
+
+Start the Buildroot configuration utility:
+
+\begin{verbatim}
+make menuconfig
+\end{verbatim}
+
+\begin{itemize}
+\item \code{Target Options} menu
+ \begin{itemize}
+
+ \item It is quite well known that the BeagleBone Black Wireless is
+ an ARM based platform, so select \code{ARM (little endian)} as the
+ target architecture.
+
+ \item According to the BeagleBone Black Wireless website at
+ \url{http://beagleboard.org/BLACK}, it uses a Texas Instruments
+ AM335x, which is based on the ARM Cortex-A8 core. So select
+ \code{cortex-A8} as the \code{Target Architecture Variant}.
+
+ \item On ARM two {\em Application Binary Interfaces} are available:
+ \code{EABI} and \code{EABIhf}. Unless you have backward
+ compatibility concerns with pre-built binaries, \code{EABIhf} is
+ more efficient, so make this choice as the \code{Target ABI}
+ (which should already be the default anyway).
+
+ \item The other parameters can be left to their default value:
+ \code{ELF} is the only available \code{Target Binary Format},
+ \code{VFPv3-D16} is a sane default for the {\em Floating Point
+ Unit}, and using the \code{ARM} instruction set is also a good
+ default (we could use the \code{Thumb-2} instruction set for
+ slightly more compact code).
+
+
+
+
+
diff --git a/mk/boot-time.mk b/mk/boot-time.mk
index 85badf20..5d08f8f0 100644
--- a/mk/boot-time.mk
+++ b/mk/boot-time.mk
@@ -24,6 +24,7 @@ BOOT_TIME_LABS = boot-time-goals \
setup \
boot-time-sources-download \
boot-time-board-setup \
+ boot-time-build-system \
boottime-init-scripts \
boottime-application \
boottime-kernel \
More information about the training-materials-updates
mailing list