This 5-day course targets engineers who wish to use the Linux system in new embedded projects, and people supporting customers developing such systems. Through theory and practical labs, the course will familiarize you with the architecture of an embedded Linux system, how to build such a system, how to take advantage of open source components to implement system features and reduce development costs, and details how to develop and debug your own applications in an embedded environment. Each lecture in the course is followed by a practical implementation, representing 50% to 60% of the whole course time. Labs are performed on an embedded ARM board, on which you will progressively implement an embedded Linux system. At the end of this course, you will be ready to start a project using embedded Linux, from system building to application development.
Release dateSeptember 14, 2016
Training duration5 days
PriceUSD 4000 or 40 Training Credits
Course Part NumberHDT-EMBDSD-100-ILT
Who Should Attend?People developing devices using the Linux kernel; people supporting embedded Linux system developers.
- Knowledge and practice of Unix or GNU/Linux commands
- Ubuntu Desktop 14.04
- Demo board: Atmel SAMA5D3 Xplained board
- Introduction to Embedded Linux
- Embedded Linux Development Environment
- Cross-Compiling Toolchain and C Library
- Lab 1: Cross-Compiling Toolchain
- Lab 2: Bootloader and U-Boot
- Linux Kernel
- Lab 3: Kernel Sources
- Configuring and Compiling a Linux Kernel
- Kernel Cross-Compiling
- Lab 4: Kernel Cross-Compiling and Booting
- Root Filesystem in Linux
- Lab 5: Tiny Root Filesystem Built From Scratch with BusyBox
- Block Filesystems
- Lab 6: Block Filesystems
- Flash Filesystems
- Lab 7: Flash Filesystems
- Leveraging Existing Open-Source Components in Your System
- Cross-Compiling Applications and Libraries
- Lab 8 (Optional): Cross-Compiling Applications and Libraries
- Embedded System Building Tools
- Lab 9: System Build with Buildroot
- Application Development and Debugging
- Lab 10: Application Development and Debugging
- Linux and Real-Time
- Lab 11: Linux Latency Tests
- Lab 1: Cross-Compiling Toolchain - Configuring Crosstool-NG; executing it to build a custom uClibc toolchain.
- Lab 2: Bootloader and U-Boot - Set up serial communication with the board; configure, compile and install the first-stage bootloader and U-Boot; become familiar with U-Boot environment and commands; set up TFTP communication with the board; use TFTP U-Boot commands.
- Lab 3: Kernel Sources - Downloading kernel sources; applying kernel patches.
- Lab 4: Kernel Cross-Compiling - Kernel cross-compiling setup; using ready-made configuration files for specific architectures and boards; cross-compiling Linux.
- Lab 5: Tiny Root Filesystems Built from Scratch with BusyBox - Build a basic root filesystem; setting up a kernel to boot your system on a workstation directory exported by NFS; passing kernel command line parameters to boot on NFS; creating the full root filesystem from scratch and populating it with BusyBox-based utilities; creating device files and booting the virtual system; system startup using BusyBox /sbin/init; using the BusyBox http server; controlling the target from a web browser; setting up shared libraries on the target and compiling a sample executable.
- Lab 6: Block Filesystems - Creating partitions on your block storage; booting a system with a mix of filesystems.
- Lab 7: Flash Filesystems - Defining partitions in U-Boot for your internal flash storage; sharing these definitions with Linux; creating a UBI image, flashing it from U-Boot, and booting your system on one of the UBI volumes with UBIFS.
- Lab 8 (Optional): Cross-Compiling Applications and Libraries - Building a system with audio libraries and a sound player application; manual compilation and installation of several free software packages.
- Lab 9: System Build with Buildroot - Using Buildroot to rebuild the same system as in the previous lab; optional: add a package to Buildroot.
- Lab 10: Application Development and Debugging - Develop and compile an application relying on the ncurses library; using strace, ltrace and gdbserver to debug an application on the remote system; perform post-mortem analysis of a crashed application.
- Lab 11: Linux Latency Tests - Tests performed on the Xplained ARM board; latency tests on standard Linux; latency tests using the PREEMPT_RT kernel patchset; setting up Xenomai; latency tests with Xenomai.
Please download the respective PDF of your course: *
* The course version can be found in the training registration form