[bootlin/training-materials updates] master: Embedded Linux training: misc improvements (d87519b0)

Michael Opdenacker michael.opdenacker at bootlin.com
Mon Jul 27 16:00:49 CEST 2020


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/d87519b0e8921a687ffe12d7af555c0e618ee659

>---------------------------------------------------------------

commit d87519b0e8921a687ffe12d7af555c0e618ee659
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Mon Jul 27 16:00:49 2020 +0200

    Embedded Linux training: misc improvements
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


>---------------------------------------------------------------

d87519b0e8921a687ffe12d7af555c0e618ee659
 slides/c-libraries/c-libraries.tex                 |   3 ++-
 .../sysdev-bootloaders-sequence.tex                |   8 +++----
 .../sysdev-bootloaders-u-boot.tex                  |  26 ++++++++++++---------
 .../sysdev-dev-environment.tex                     |   9 +++----
 slides/sysdev-intro/sysdev-intro.tex               |   8 ++++---
 .../longterm-release-kernels.png                   | Bin 91823 -> 121704 bytes
 .../sysdev-linux-intro-versioning.tex              |   4 ++--
 7 files changed, 33 insertions(+), 25 deletions(-)

diff --git a/slides/c-libraries/c-libraries.tex b/slides/c-libraries/c-libraries.tex
index bf949280..e49382ee 100644
--- a/slides/c-libraries/c-libraries.tex
+++ b/slides/c-libraries/c-libraries.tex
@@ -130,6 +130,7 @@ compare the size
   \item If you run into trouble, it could be because of missing features
         in the C library.
   \item In case you wish to make static executables, {\em musl} will be
-        an easier choice.
+        an easier choice. Note that static executables built with a given C library
+        can be used in a system with a different C library.
   \end{itemize}
 \end{frame}
diff --git a/slides/sysdev-bootloaders-sequence/sysdev-bootloaders-sequence.tex b/slides/sysdev-bootloaders-sequence/sysdev-bootloaders-sequence.tex
index 25be1122..75dc763b 100644
--- a/slides/sysdev-bootloaders-sequence/sysdev-bootloaders-sequence.tex
+++ b/slides/sysdev-bootloaders-sequence/sysdev-bootloaders-sequence.tex
@@ -167,10 +167,10 @@
       The most used on ARM, also used on PPC, MIPS, x86, m68k, RiscV,
       etc. The de-facto standard nowadays. We will study it in detail.\\
       \url{https://www.denx.de/wiki/U-Boot}
-    \item {\bf Barebox}, an architecture-neutral bootloader, written
-      as a successor of U-Boot. It doesn't have as much hardware support
-      as U-Boot yet. U-Boot has improved quite a lot thanks to this
-      competitor.\\
+    \item {\bf Barebox}, an architecture-neutral bootloader created by
+      Pengutronix.\\
+      It doesn't have as much hardware support as U-Boot yet. U-Boot
+      has improved quite a lot thanks to this competitor.\\
       \url{https://www.barebox.org}
     \end{itemize}
   \end{itemize}
diff --git a/slides/sysdev-bootloaders-u-boot/sysdev-bootloaders-u-boot.tex b/slides/sysdev-bootloaders-u-boot/sysdev-bootloaders-u-boot.tex
index ecc1f0e8..24315a2c 100644
--- a/slides/sysdev-bootloaders-u-boot/sysdev-bootloaders-u-boot.tex
+++ b/slides/sysdev-bootloaders-u-boot/sysdev-bootloaders-u-boot.tex
@@ -13,7 +13,7 @@
     \url{https://gitlab.denx.de/u-boot/u-boot}
   \item Development and discussions happen around an open mailing-list
     \url{https://lists.denx.de/pipermail/u-boot/}
-  \item Follows a fixed-interval release schedule. Every two months,
+  \item Follows a regular release schedule. Every 2 or 3 months,
     a new version is released. Versions are named \code{YYYY.MM}.
 \end{itemize}
 \end{frame}
@@ -21,16 +21,16 @@
 \begin{frame}
   \frametitle{U-Boot configuration}
   \begin{itemize}
-  \item Get the source code from the website, and uncompress it
-  \item The \code{configs/} directory contains one configuration file
+  \item Get the source code from the website or from git, and uncompress it
+  \item The \projdir{u-boot}{configs} directory contains one configuration file
     for each supported board
     \begin{itemize}
     \item It defines the CPU type, the peripherals and their configuration, the
       memory mapping, the U-Boot features that should be compiled in, etc.
     \end{itemize}
   \item Note: U-Boot is migrating from board configuration defined in
-    C header files (\code{include/configs/}) to {\em defconfig} like in
-    the Linux kernel (\code{configs/})
+    C header files (\projdir{u-boot}{include/configs}) to {\em defconfig} like in
+    the Linux kernel (\projdir{u-boot}{configs})
     \begin{itemize}
     \item Not all boards have been converted to the new configuration
       system.
@@ -76,6 +76,7 @@ CONFIG_USB_EHCI_HCD=y
   \begin{itemize}
   \item U-Boot must be configured before being compiled
     \begin{itemize}
+    \item Configuration stored in a \code{.config} file
     \item \code{make BOARDNAME_defconfig}
     \item Where \code{BOARDNAME} is the name of a configuration, as
       visible in the \code{configs/} directory.
@@ -188,7 +189,7 @@ Device 0: nand0, sector size 128 KiB
 \begin{frame}[fragile]
   \frametitle{Information commands (2)}
 \begin{block}{Version details}
-{\tiny
+{\small
 \begin{verbatim}
 => version
 U-Boot 2020.04 (May 26 2020 - 16:05:43 +0200)
@@ -300,7 +301,8 @@ u-boot # saveenv
   \begin{itemize}
   \item \code{bootcmd}, specifies the commands that U-Boot will
     automatically execute at boot time after a configurable delay
-    (\code{bootdelay}), if the process is not interrupted
+    (\code{bootdelay}), if the process is not interrupted. See next
+    page for an example.
   \item \code{bootargs}, contains the arguments passed to the Linux
     kernel, covered later
   \item \code{serverip}, the IP address of the server that U-Boot will
@@ -330,8 +332,9 @@ u-boot # saveenv
     \item You can reference other variables using
       \code{${variable-name}}
     \end{itemize}
-  \item Example
+  \item Examples
     \begin{itemize}
+    \item \code{setenv bootcmd 'tftp 0x21000000 zImage; tftp 0x22000000 dtb; bootz 0x21000000 - 0x22000000'}
     \item \code{setenv mmc-boot 'if fatload mmc 0 80000000
       boot.ini; then source; else if fatload mmc 0 80000000 zImage;
       then run mmc-do-boot; fi; fi'}
@@ -374,8 +377,8 @@ u-boot # saveenv
   \item A TFTP server is needed on the development workstation
     \begin{itemize}
     \item \code{sudo apt install tftpd-hpa}
-    \item All files in \code{/var/lib/tftpboot} (in Ubuntu 18.04)
-          or in \code{/srv/tftp} (in Ubuntu 20.04) are then visible through TFTP
+    \item All files in \code{/var/lib/tftpboot} or in \code{/srv/tftp}
+      (if \code{/srv} exists) are then visible through TFTP
     \item A TFTP client is available in the \code{tftp-hpa} package,
       for testing
     \end{itemize}
@@ -383,7 +386,8 @@ u-boot # saveenv
     \begin{itemize}
     \item Configure the \code{ipaddr} and \code{serverip} environment
       variables
-    \item Use \code{tftp <address> <filename>} to load a file
+    \item Use \code{tftp <address> <filename>} to load file contents to
+      the specified RAM address
     \end{itemize}
   \end{itemize}
 \end{frame}
diff --git a/slides/sysdev-dev-environment/sysdev-dev-environment.tex b/slides/sysdev-dev-environment/sysdev-dev-environment.tex
index 9c158c2d..4bd3b299 100644
--- a/slides/sysdev-dev-environment/sysdev-dev-environment.tex
+++ b/slides/sysdev-dev-environment/sysdev-dev-environment.tex
@@ -27,14 +27,15 @@
   \begin{itemize}
   \item All community tools are developed and designed to run on
     Linux. Trying to use them on other operating systems (Windows, Mac
-    OS X) will lead to trouble, and their usage on these systems is
-    generally not supported by community developers.
+    OS X) will lead to trouble.
   \item As Linux also runs on the embedded device, all the knowledge
     gained from using Linux on the desktop will apply similarly to the
     embedded device.
   \item If you are stuck with a Windows desktop, at least you should
     use GNU/Linux in a virtual machine (such as VirtualBox which is open
     source), though there could be a small performance penalty.
+    With Windows 10, you can also run your favorite native Linux distro through
+    Windows Subsystem for Linux (WSL2)
   \end{itemize}
   \begin{center}
     \includegraphics[width=0.5\textwidth]{slides/sysdev-dev-environment/linux-as-development-os.pdf}
@@ -208,8 +209,8 @@
     \item In a shell, hit \code{[Control] [r]}, then a keyword, will
       search through the command history. Hit \code{[Control] [r]}
       again to search backwards in the history
-    \item You can copy/paste paths directly from the file manager to
-      the terminal by drag-and-drop.
+    \item You may be able copy/paste paths directly from the file manager to
+      the terminal by drag-and-drop (some distribution versions support this)
     \end{itemize}
   \end{itemize}
 \end{frame}
diff --git a/slides/sysdev-intro/sysdev-intro.tex b/slides/sysdev-intro/sysdev-intro.tex
index 546f8f31..61788438 100644
--- a/slides/sysdev-intro/sysdev-intro.tex
+++ b/slides/sysdev-intro/sysdev-intro.tex
@@ -15,8 +15,9 @@
       \item ~1995, Linux is more and more popular on server systems
       \item ~2000, Linux is more and more popular on {\bf embedded
           systems}
-      \item ~2008, Linux is more and more popular on mobile devices
-      \item ~2010, Linux is more and more popular on phones
+      \item ~2008, Linux is more and more popular on mobile devices and phones
+      \item ~2012, Linux is available on cheap, extensible hardware:
+            Raspberry Pi, BeagleBone Black
       \end{itemize}
     \column{0.25\textwidth}
       \includegraphics[width=\textwidth]{slides/sysdev-intro/richard-stallman.jpg}
@@ -283,6 +284,7 @@
     \item CAN
     \item 1-wire
     \item SDIO
+    \item PCI
     \item USB
     \end{itemize}
   \item And also extensive networking support
@@ -301,7 +303,7 @@
   \begin{itemize}
   \item {\bf Evaluation platforms} from the SoC vendor. Usually
     expensive, but many peripherals are built-in. Generally unsuitable
-    for real products.
+    for real products, but best for product development.
   \item {\bf Component on Module}, a small board with only
     CPU/RAM/flash and a few other core components, with connectors to
     access all other peripherals. Can be used to build end products
diff --git a/slides/sysdev-linux-intro-versioning/longterm-release-kernels.png b/slides/sysdev-linux-intro-versioning/longterm-release-kernels.png
index c0c65c56..2f65aa88 100644
Binary files a/slides/sysdev-linux-intro-versioning/longterm-release-kernels.png and b/slides/sysdev-linux-intro-versioning/longterm-release-kernels.png differ
diff --git a/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex b/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex
index 70ba0a03..9c029c26 100644
--- a/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex
+++ b/slides/sysdev-linux-intro-versioning/sysdev-linux-intro-versioning.tex
@@ -41,10 +41,10 @@
   \end{itemize}
   \begin{columns}
   \column{0.6\textwidth}
-  \includegraphics[height=0.3\textheight]{slides/sysdev-linux-intro-versioning/longterm-release-kernels.png}\\
+  \includegraphics[width=\textwidth]{slides/sysdev-linux-intro-versioning/longterm-release-kernels.png}\\
   \column{0.4\textwidth}
   \scriptsize
-   Captured on \url{https://kernel.org} in Nov. 2019, following the
+   Captured on \url{https://kernel.org} in Jul. 2020, following the
    \href{https://www.kernel.org/category/releases.html}{\em Releases} link.
   \end{columns}
 \end{frame}




More information about the training-materials-updates mailing list