[FE training-materials-updates] Convert Embedded Linux agenda from ODF to LaTeX

Michael Opdenacker michael.opdenacker at free-electrons.com
Fri Sep 5 21:13:17 CEST 2014


Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=b837d65dc557655c864c5de38504680bfcaf1c85

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

commit b837d65dc557655c864c5de38504680bfcaf1c85
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Fri Sep 5 21:11:50 2014 +0200

    Convert Embedded Linux agenda from ODF to LaTeX
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


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

b837d65dc557655c864c5de38504680bfcaf1c85
 Makefile                 |   1 +
 agenda/sysdev-agenda.tex | 472 +++++++++++++++++++++++++++++++++++++++++++++++
 odf/agenda-sysdev.odt    | Bin 768434 -> 0 bytes
 3 files changed, 473 insertions(+)

diff --git a/Makefile b/Makefile
index bfb1fc8..fbd4860 100644
--- a/Makefile
+++ b/Makefile
@@ -566,6 +566,7 @@ help:
 	@echo " android-agenda.pdf              Agenda for the 'android' course"
 	@echo " boottime-agenda.pdf             Agenda for the 'boottime' course"
 	@echo " buildroot-agenda.pdf            Agenda for the 'buildroot' course"
+	@echo " sysdev-agenda.pdf               Agenda for the 'sysdev' course"
 	@echo " kernel-agenda.pdf               Agenda for the 'kernel' course"
 	@echo " yocto-agenda.pdf                Agenda for the 'yocto' course"
 	@echo
diff --git a/agenda/sysdev-agenda.tex b/agenda/sysdev-agenda.tex
new file mode 100644
index 0000000..6a0e049
--- /dev/null
+++ b/agenda/sysdev-agenda.tex
@@ -0,0 +1,472 @@
+\documentclass[a4paper,12pt,obeyspaces,spaces,hyphens]{article}
+
+\usepackage{agenda}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage{palatino}
+\usepackage{calc}
+
+\hypersetup{pdftitle={Embedded Linux system development training},
+  pdfauthor={Free Electrons}}
+
+\renewcommand{\arraystretch}{1.8}
+
+\begin{document}
+
+\thispagestyle{fancy}
+
+\setlength{\arrayrulewidth}{0.8pt}
+
+\begin{center}
+\LARGE
+Embedded Linux system development training\\
+\large
+5-day session
+\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} & 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 labs with the ARM based SAMA5D3 Xplained board from Atmel \\
+    \hline
+    {\bf Materials} &
+    Check that the course contents correspond to your needs:
+    \newline \url{http://free-electrons.com/doc/training/embedded-linux}. \\
+    \hline
+
+    {\bf Duration} & {\bf Five} days - 40 hours (8 hours per day).
+    \newline 50\% of lectures, 50\% of practical labs. \\
+    \hline
+
+    {\bf Trainer} & One of the engineers listed on:
+    \newline \url{http://free-electrons.com/training/trainers/}\\
+    \hline
+
+    {\bf Language} & Oral lectures: English, French, German or Polish.
+    \newline Materials: English.\\
+    \hline
+
+    {\bf Audience} & People developing devices using the Linux kernel
+    \newline People supporting embedded Linux system developers. \\
+    \hline
+
+    {\bf Prerequisites} &
+    {\bf Knowledge and practice of UNIX or GNU/Linux commands}
+    \newline People lacking experience on this topic should get
+    trained by themselves with our freely available on-line slides:
+    \newline \url{http://free-electrons.com/docs/command-line/}. \\
+    \hline
+  \end{tabularx}
+
+  \begin{tabularx}{\textwidth}{|g|h|}
+    {\bf Required equipment} &
+    {\bf For on-site sessions only}
+    \newline Everything is supplied by Free Electrons in public sessions.
+    \begin{itemize}
+    \item Video projector
+    \item PC computers with at least 2 GB of RAM, and Ubuntu Linux
+    installed in a {\bf free partition of at least 20 GB. Using Linux
+      in a virtual machine is not supported}, because of issues
+    connecting to real hardware.
+    \item We need Ubuntu Desktop 12.04 (32 or 64 bit, Xubuntu and
+    Kubuntu variants are fine). We don't support other
+    distributions, because we can't test all possible package versions.
+    \item {\bf Connection to the Internet} (direct or through the
+    company proxy).
+    \item {\bf PC computers with valuable data must be backed up}
+    before being used in our sessions.  Some people have already made
+    mistakes during our sessions and damaged work data.
+    \end{itemize}\\
+    \hline
+
+    {\bf Materials} & Print and electronic copies of presentations and
+    labs.
+    \newline Electronic copy of lab files.\\
+    \hline
+
+\end{tabularx}}
+\normalsize
+
+\feagendatwocolumn
+{Hardware}
+{
+	Using the Atmel SAMA5D3 Xplained board in all practical labs
+	SAMA5D36 (Cortex A5) CPU from Atmel, 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{Day 1 - Morning}
+
+\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}
+}
+
+\section{Day 1 - Afternoon}
+\feagendatwocolumn
+{Lab - Cross compiling toolchain}
+{
+  \begin{itemize}
+  \item Configuring Crosstool-NG
+  \item Executing it to build a custom uClibc toolchain.
+  \end{itemize}
+}
+{Lecture - Bootloaders}
+{
+  {\em Using the Atmel SAMA5D3 Xplained board}
+  \begin{itemize}
+  \item Available bootloaders
+  \item ootloader features
+  \item Installing a bootloader
+  \item Detailed study of U-Boot
+  \end{itemize}
+}
+\\
+
+\feagendatwocolumn
+{Lab - Bootloader and U-boot}
+{
+  \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}
+}
+\\
+
+\section{Day 2 - Morning}
+
+\feagendatwocolumn
+{Lab - Kernel sources}
+{
+  \begin{itemize}
+  \item Downloading kernel sources
+  \item Apply kernel patches
+  \end{itemize}
+}
+{Lecture – Configuring and compiling a Linux kernel}
+{
+  {\em Using the Atmel Xplained board}
+  \begin{itemize}
+  \item Kernel configuration.
+  \item Useful settings for embedded systems.
+  \item Native compiling.
+  \item Generated files.
+  \item Using kernel modules
+  \end{itemize}
+}
+
+\feagendatwocolumn
+{Lecture - Kernel cross-compiling}
+{
+  \begin{itemize}
+  \item Kernel cross-compiling setup.
+  \item Using ready-made configuration files for specific architectures and boards.
+  \item Cross-compiling Linux  \end{itemize}
+}
+{Lab - Kernel cross-compiling and booting}
+{
+  {\em Using the Atmel 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{Day 2 - Afternoon}
+
+\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}
+{
+  {\em Using the Atmel Xplained board}
+  \begin{itemize}
+  \item Detailed overview. Detailed features.
+  \item Configuration, compiling and deploying.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lab – Tiny root filesystem built from scratch with BusyBox}
+{
+  {\em Using the Atmel 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{Day 3 - Morning}
+
+\feagendaonecolumn
+{Lab – Tiny root filesystem built from scratch with BusyBox}
+{
+   Continued from the previous afternoon.
+}
+
+\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}
+}
+{Lab - 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
+  \item configuration and user data, and tmpfs for temporary system files.
+  \end{itemize}
+}
+
+\section{Day 3 - Afternoon}
+
+\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 Mounting MTD filesystem images.
+  \end{itemize}
+}
+{Lab – Flash filesystems}
+{
+  {\em Using the SAMAD3 Xplained ARM board}
+  \begin{itemize}
+  \item Creating partitions in your internal flash storage.
+  \item Formating the main partition with JFFS2 in read-only mode.
+  \item Using JFFS2 for system data.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{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, DirectFB, Gtk, Qt, etc.), system utilities,
+        network libraries and utilities, multimedia libraries, etc.
+  \item Example of a typical consumer electronic product leveraging
+        many open-source components.
+  \item System building: integration of the components.
+  \end{itemize}
+}
+
+\section{Day 4 - Morning}
+
+\feagendatwocolumn
+{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}
+}
+{Lab – Cross-compiling applications and libraries}
+{
+  {\em If enough time left}
+  \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{Day 4 - Afternoon}
+
+\feagendatwocolumn
+{Lecture - Embedded system building toolsm}
+{
+  \begin{itemize}
+  \item Review of existing system building tools.
+  \item Buildroot example.
+  \end{itemize}
+}
+{Lab - System build with Buildroot}
+{
+  {\em Using the Atmel 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}
+}
+
+\section{Day 5 - Morning}
+
+\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.
+  \item Developing on Windows.
+  \end{itemize}
+}
+
+\feagendaonecolumn
+{Lab – Application development and debugging}
+{
+  {\em On the Atmel 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{Day 5 - Afternoon}
+
+\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
+{Lab - Linux latency tests}
+{
+  \begin{itemize}
+  \item Tests performed on the Xplained ARM board
+  \item Latency tests on standard Linux.
+  \item Setting up Xenomai.
+  \item Latency tests with Xenomai.
+  \end{itemize}
+}
+
+\end{document}
+
diff --git a/odf/agenda-sysdev.odt b/odf/agenda-sysdev.odt
deleted file mode 100644
index 79e9462..0000000
Binary files a/odf/agenda-sysdev.odt and /dev/null differ



More information about the training-materials-updates mailing list