[bootlin/training-materials updates] master: Agenda for the online embedded Linux course with demos (928cc88c)

Michael Opdenacker michael.opdenacker at bootlin.com
Mon Mar 23 14:59:29 CET 2020


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

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

commit 928cc88cd8b1d2d0606479ef42e93d34c4f4cdd7
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Mon Mar 23 14:59:29 2020 +0100

    Agenda for the online embedded Linux course with demos
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


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

928cc88cd8b1d2d0606479ef42e93d34c4f4cdd7
 agenda/embedded-linux-online-agenda.tex | 452 ++++++++++++++++++++++++++++++++
 1 file changed, 452 insertions(+)

diff --git a/agenda/embedded-linux-online-agenda.tex b/agenda/embedded-linux-online-agenda.tex
new file mode 100644
index 00000000..ace24957
--- /dev/null
+++ b/agenda/embedded-linux-online-agenda.tex
@@ -0,0 +1,452 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Embedded Linux system development training},
+  pdfauthor={Bootlin}}
+
+\renewcommand{\arraystretch}{2.0}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+Embedded Linux system development training\\
+\large
+On-line seminar
+\end{center}
+\vspace{1cm}
+
+\small
+\newcolumntype{g}{>{\columncolor{fedarkblue}}m{4cm}}
+\newcolumntype{h}{>{\columncolor{felightblue}}X}
+
+\arrayrulecolor{lightgray} {
+  \setlist[1]{itemsep=-5pt}
+  \begin{tabularx}{\textwidth}{|g|h|}
+    {\bf Title} & {\bf Embedded Linux system development training} \\
+    \hline
+
+    {\bf Overview} &
+    Bootloaders \par
+    Kernel (cross) compiling and booting \par
+    Block and flash filesystems \par
+    C library and cross-compiling toolchains \par
+    Lightweight building blocks for embedded systems \par
+    Embedded system development tools \par
+    Embedded application development and debugging \par
+    Implementing real-time requirements in embedded Linux systems \par
+    Practical demos with the ARM based SAMA5D3 Xplained board from
+        Microchip \\
+    \hline
+    {\bf Materials} &
+    Check that the course contents correspond to your needs:
+    \newline \url{https://bootlin.com/doc/training/embedded-linux}. \\
+    \hline
+
+    {\bf Duration} & {\bf Seven } half days - 28 hours (4 hours per half day).
+    \newline 80\% of lectures, 20\% of practical demos. \\
+    \hline
+
+    {\bf Trainer} & One of the engineers listed on:
+    \newline \url{https://bootlin.com/training/trainers/}\\
+    \hline
+
+    {\bf Language} & Oral lectures: English
+    \newline Materials: English.\\
+    \hline
+
+    {\bf Audience} & People developing devices using the Linux kernel
+    \newline People supporting embedded Linux system developers. \\
+    \hline
+
+    {\bf Prerequisites} &
+    {\bf Familiarity with UNIX or GNU/Linux commands}
+    \newline People lacking experience on this topic should get
+    trained by themselves, for example with our freely available
+    on-line slides:
+    \newline \url{https://bootlin.com/blog/command-line/}. \\
+    \hline
+
+  \end{tabularx}
+
+  \begin{tabularx}{\textwidth}{|g|h|}
+    {\bf Required equipment} &
+    \begin{itemize}
+    \item Computer with the operating system of your choice, provided
+    it is supported by Zoom (\url{https://zoom.us} for videoconferencing
+    \item Webcam and microphone (preferably from an audio headset)
+    \item High speed access to the Internet
+    \end{itemize}\\
+    \hline
+
+    {\bf Materials} & Electronic copies of presentations,
+    demo instructions and data.\\
+    \hline
+
+\end{tabularx}}
+\normalsize
+
+\feagendatwocolumn
+{Hardware}
+{
+	Using the Microchip SAMA5D3 Xplained board in all practical
+        demos, with a SAMA5D36 (Cortex A5) CPU from Microchip, which features:
+
+  \begin{itemize}
+  \item USB powered
+  \item 256 MB DDR2 RAM
+  \item 256 MB NAND flash
+  \item 2 Ethernet ports (Gigabit + 100 Mbit)
+  \item 2 USB 2.0 host ports
+  \item 1 USB device port
+  \item 1 MMC/SD slot
+  \item 3.3 V serial port (like Beaglebone Black)
+  \item Arduino R3-compatible header
+  \item Misc: JTAG, buttons, LEDs
+  \end{itemize}
+}
+{}
+{
+  \begin{center}
+    \includegraphics[height=5cm]{../slides/xplained-board/xplained-board.png}
+  \end{center}
+}
+
+\section{Half day 1}
+
+\feagendaonecolumn
+{Lecture - Introduction to embedded Linux}
+{
+  \begin{itemize}
+  \item Advantages of Linux versus traditional embedded operating systems.
+        Reasons for choosing Linux.
+  \item Global picture: understanding the general architecture of an
+        embedded Linux system. Overview of the major components in a typical
+        system.
+  \end{itemize}
+  {\em The rest of the course will study each of these components in detail.}
+}
+\\
+\feagendatwocolumn
+{Lecture - Embedded Linux development environment}
+{
+  \begin{itemize}
+  \item Operating system and tools to use on the development
+        workstation for embedded Linux development.
+  \item Desktop Linux usage tips.
+  \end{itemize}
+}
+{Lecture - Cross-compiling toolchain and C library}
+{
+  \begin{itemize}
+  \item What's inside a cross-compiling toolchain
+  \item Choosing the target C library
+  \item What's inside the C library
+  \item Ready to use cross-compiling toolchains
+  \item Building a cross-compiling toolchain with automated tools.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Demo - Cross compiling toolchain}
+{
+  \begin{itemize}
+  \item Configuring Crosstool-NG
+  \item Executing it to build a custom uClibc toolchain.
+  \end{itemize}
+}
+{Lecture - Bootloaders}
+{
+  \begin{itemize}
+  \item Available bootloaders
+  \item Bootloader features
+  \item Installing a bootloader
+  \item Detailed study of U-Boot
+  \end{itemize}
+}
+
+\section{Half day 2}
+
+\feagendatwocolumn
+{Demo - Bootloader and U-boot}
+{
+  {\em Using the Microchip SAMA5D3 Xplained board}
+  \begin{itemize}
+  \item Set up serial communication with the board.
+  \item Configure, compile and install the first-stage bootloader
+        and U-Boot on the Xplained board.
+  \item Become familiar with U-Boot environment and commands.
+  \item Set up TFTP communication with the board. Use TFTP U-Boot commands.
+  \end{itemize}
+}
+{Lecture - Linux kernel}
+{
+  \begin{itemize}
+  \item Role and general architecture of the Linux kernel
+  \item Features available in the Linux kernel,
+        with a focus on features useful for embedded systems
+  \item Kernel user interface
+  \item Getting the sources
+  \item Understanding Linux kernel versions.
+  \item Using the patch command
+  \end{itemize}
+}
+\\
+
+\feagendatwocolumn
+{Demo - Kernel sources}
+{
+  \begin{itemize}
+  \item Downloading kernel sources
+  \item Apply kernel patches
+  \end{itemize}
+}
+{Lecture – Configuring and compiling a Linux kernel}
+{
+  \begin{itemize}
+  \item Kernel configuration.
+  \item Using ready-made configuration files for specific
+    architectures and boards.
+  \item Kernel compilation.
+  \item Generated files.
+  \item Using kernel modules
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo - Kernel cross-compiling and booting}
+{
+  {\em Using the Microchip Xplained board}
+  \begin{itemize}
+  \item Configuring the Linux kernel and cross-compiling it for the ARM board.
+  \item Downloading your kernel on the board through U-boot's tftp client.
+  \item Booting your kernel from RAM.
+  \item Copying the kernel to flash and booting it from this location.
+  \item Storing boot parameters in flash and automating kernel booting from flash.
+  \end{itemize}
+}
+
+\section{Half day 3}
+
+\feagendatwocolumn
+{Lecture – Root filesystem in Linux}
+{
+  \begin{itemize}
+  \item Filesystems in Linux.
+  \item Role and organization of the root filesystem.
+  \item Location of the root filesystem: on storage, in memory,
+        from the network.
+  \item Device files, virtual filesystems.
+  \item Contents of a typical root filesystem.
+  \end{itemize}
+}
+{Lecture - BusyBox}
+{
+  \begin{itemize}
+  \item Detailed overview. Detailed features.
+  \item Configuration, compiling and deploying.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo – Tiny root filesystem built from scratch with BusyBox}
+{
+  {\em Using the Microchip Xplained board}
+  \begin{itemize}
+  \item Now build a basic root filesystem from scratch for your ARM system
+  \item Setting up a kernel to boot your system on a workstation
+        directory exported by NFS
+  \item Passing kernel command line parameters to boot on NFS
+  \item Creating the full root filesystem from scratch.
+        Populating it with BusyBox based utilities.
+  \item Creating device files and booting the virtual system.
+  \item System startup using BusyBox /sbin/init
+  \item Using the BusyBox http server.
+  \item Controlling the target from a web browser on the PC host.
+  \item Setting up shared libraries on the target and compiling
+        a sample executable.
+  \end{itemize}
+}
+
+\section{Half day 4}
+
+\feagendatwocolumn
+{Lecture - Block filesystems}
+{
+  \begin{itemize}
+  \item Filesystems for block devices.
+  \item Usefulness of journaled filesystems.
+  \item Read-only block filesystems.
+  \item RAM filesystems.
+  \item How to create each of these filesystems.
+  \item Suggestions for embedded systems.
+  \end{itemize}
+}
+{Demo - Block filesystems}
+{
+  {\em Using the Xplained ARM board}
+  \begin{itemize}
+  \item Creating partitions on your block storage
+  \item Booting a system with a mix of filesystems: SquashFS for
+	applications, ext3 for configuration and user data, and
+	tmpfs for temporary system files.
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Flash filesystems}
+{
+  \begin{itemize}
+  \item The Memory Technology Devices (MTD) filesystem.
+  \item Filesystems for MTD storage: JFFS2, Yaffs2, UBIFS.
+  \item Kernel configuration options
+  \item MTD storage partitions.
+  \item Focus on today's best solution, UBI and UBIFS:
+	preparing, flashing and using UBI images.
+  \end{itemize}
+}
+{Demo – Flash filesystems}
+{
+  {\em Using the SAMAD3 Xplained ARM board}
+  \begin{itemize}
+  \item Defining partitions in U-Boot for your internal
+        flash storage instead of using raw offsets.
+  \item Sharing these definitions with Linux.
+  \item Creating a UBI image on your workstation, flashing
+        it from U-Boot and booting your system on one of
+        the UBI volumes with UBIFS.
+  \end{itemize}
+}
+
+\section{Half day 5}
+
+\feagendatwocolumn
+{Lecture – Leveraging existing open-source components in your system}
+{
+  \begin{itemize}
+  \item Reasons for leveraging existing components.
+  \item Find existing free and open source software components.
+  \item Choosing the components.
+  \item The different free software licenses and their requirements.
+  \item Overview of well-known typical components used in
+        embedded systems: graphical libraries and systems
+        (framebuffer, Gtk, Qt, etc.), system utilities,
+        network libraries and utilities, multimedia libraries, etc.
+  \item System building: integration of the components.
+  \end{itemize}
+}
+{Lecture – Cross-compiling applications and libraries}
+{
+  \begin{itemize}
+  \item Configuring, cross-compiling and installing applications and libraries.
+  \item Details about the build system used in most open-source components.
+  \item Overview of the common issues found when using these components.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo – Cross-compiling applications and libraries}
+{
+  \begin{itemize}
+  \item Building a system with audio libraries and a sound player application.
+  \item Manual compilation and installation of several free software packages.
+  \item Learning about common techniques and issues.
+  \end{itemize}
+}
+
+\section{Half day 6}
+
+\feagendatwocolumn
+{Lecture - Embedded system building tools}
+{
+  \begin{itemize}
+  \item Review of existing system building tools.
+  \item Buildroot example.
+  \end{itemize}
+}
+{Demo - System build with Buildroot}
+{
+  {\em Using the Microchip Xplained board}
+  \begin{itemize}
+  \item Using Buildroot to rebuild the same system as in the previous lab.
+  \item Seeing how easier it gets.
+  \item Optional: add a package to Buildroot.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lecture - Application development and debugging}
+{
+  \begin{itemize}
+  \item Programming languages and libraries available.
+  \item Overview of the C library features for application development.
+  \item Build system for your application,
+        how to use existing libraries in your application.
+  \item Source browsers and Integrated Development Environments (IDEs).
+  \item Debuggers. Debugging remote applications with gdb and gdbserver.
+        Post-mortem debugging with core files.
+  \item Code checkers, memory checkers, profilers.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo – Application development and debugging}
+{
+  {\em On the Microchip Xplained board}
+  \begin{itemize}
+  \item Develop and compile an application relying on the ncurses library
+  \item Using strace, ltrace and gdbserver to debug a crappy application
+        on the remote system.
+  \item Do post-mortem analysis of a crashed application.
+  \end{itemize}
+}
+
+\section{Half day 7}
+
+\feagendaonecolumn
+{Lecture - Linux and real-time}
+{
+  {\em Very useful for many kinds of devices, industrial or multimedia systems.}
+  \begin{itemize}
+  \item Understanding the sources of latency in standard Linux.
+  \item Soft real-time solutions for Linux: improvements included
+        in the mainline Linux version.
+  \item Understanding and using the latest RT preempt patches for
+        mainline Linux.
+  \item Real-time kernel debugging. Measuring and analyzing latency.
+  \item Xenomai, a hard real-time solution for Linux: features, concepts,
+        implementation and examples.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Demo - Linux latency tests}
+{
+  \begin{itemize}
+  \item Tests performed on the Xplained ARM board.
+  \item Latency tests on standard Linux, with preemption options.
+  \item Latency tests using the \code{PREEMPT_RT} kernel patchset.
+  \item Setting up Xenomai.
+  \item Latency tests with Xenomai.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Questions and Answers}
+{
+  \begin{itemize}
+  \item Questions and answers with the audience about the course topics
+  \item Extra presentations if time is left, according what most
+        participants are interested in.
+  \end{itemize}
+}
+
+\end{document}




More information about the training-materials-updates mailing list