Wednesday 19 December 2018

Developing & Delivering KnowHow

Home > Training > Developing With Embedded Linux

F2F trainingDeveloping With Embedded Linux

Standard Level - 4 days

view dates and locations

Linux is being used more and more on embedded systems driven by increasingly complex devices and a greater requirement for connectivity & multimedia. Working with Linux for embedded systems can be difficult, with a vast array of choices available for tools and software. Developing With Embedded Linux is a 4-day course providing the practical skills and knowledge required to work with Linux in this environment.

TuxThe course provides an overview of what an embedded Linux system is compromised of and provides practical information about how to work with each of the components. At each stage there is a strong focus on what tools are available in Linux to understand and debug problems. How to configure an embedded Linux system is considered in detail, looking at the changes that need to be made as a project moves from a development phase into a product. The aim is to equip attendees with the skills they need to develop and maintain their embedded Linux based products in an efficient and effective way.

Workshops comprise approximately 50% of class time, and are based around carefully designed exercises to reinforce and challenge the extent of learning.

The course mainly uses Linux open source tools with a discussion of some of the available commercial solutions where appropriate.

Course Overview Video


This course is designed for anyone wishing to get started quickly on working with Linux for embedded systems.

What will you learn?

  • An understanding of the structure of an embedded Linux system and how to work with the component parts
  • Practical information about developing, analysing and debugging kernel and user space applications using a wide range of freely available Linux tools
  • How to configure embedded Linux on the target, including the filesystem and the booting process.

Pre-requisites

  • Completion of Linux Fundamentals training or equivalent basic knowledge of using Linux as a host operating system
  • Experience of working with embedded systems (e.g. using RTOS or bare machine)
  • Some familiarity with C programming is useful.

Hardware

This is a hands-on training course and labs are conducted on a real target board.
For scheduled public courses the actual target board provided during the course may vary dependent on the location.

Target boards currently deployed include an NXP® i.MX6SX board featuring ARM® Cortex®-A9 and Cortex-M4 cores and boards based on the Xilinx® Zynq®-7000 All Programmable SoC, featuring a dual ARM Cortex-A9 processor:

i.MX 6SoloX
SABRE
board

MicroZed Board

MicroZed™
development
board

Zedboard development board

Please contact the Doulos team to discuss your specific project and hardware requirements.

Course materials

Doulos course materials are renowned for being the most comprehensive and user friendly available. Their unique style, content and coverage has made them sought after resources in their own right. The materials include fully indexed class notes creating a complete reference manual.

Structure and Content

Introduction

  • Course Objectives
  • Linux Background
  • Open-Source Software
  • Licensing
  • Linux Distributions
  • Development platforms
  • Version control

Anatomy of an Embedded Linux System

  • Toolchain
  • Bootloader
  • Linux kernel
  • Filesystem
  • Host to target communications
  • Exercises:
    • Booting a standard image
    • Establishing target communications
    • Exploring the target filesystem

Working with the Linux Kernel

  • Scheduling, real-time and memory
  • Kernel configuration
  • Building and booting the kernel
  • Board support
  • Kernel modules
  • Exercises:
    • Configuring and building the kernel
    • Creating a kernel module

Debugging the Linux Kernel

  • Kernel logs
  • JTAG
  • KGDB/KDB
  • Exercises:
    • Using kernel logs
    • Using KGDB to debug a kernel module

Building Applications

  • Compiling on the target
  • Cross-compiling
  • Static and shared libraries
  • Using portable build systems (e.g. Autotools)
  • Exercises:
    • Cross-compiling
    • Creating static and shared libraries
    • Configuring and compiling an Autotools application

Debugging Applications

  • Compiling for debugging
  • Target debugging
  • Cross debugging
  • Other user space tools
  • Debugging user space seg faults
  • Exercises:
    • Target debugging
    • Cross-debugging a seg fault
    • Finding memory leaks with Valgrind
    • Generating and using core-dumps

Linux Applications:

  • How a Linux application can be structured
  • Managing processes and threads
  • Inter-process communications
  • Interfacing with the kernel
  • Exercises:
    • Simple IPC
    • Threads and processes

Configuring Filesystems

  • Filesystem contents
  • BusyBox
  • Filesystem types and locations
    • NFS
    • RAM filesystems
    • Block-based filesystems
    • Flash filesystems (JFFS2, UBIFS)
  • Exercises:
    • Configuring and compiling BusyBox
    • Creating an initramfs
    • Writing a UBIFS into flash

Configuring the Bootloader

  • The bootloader
  • Bootloader choices
  • Working with U-Boot
  • Porting U-Boot to a new board
  • Exercises:
    • Configuring the target root filesystem location
    • Flashing a kernel image in U-Boot

Trace & Profile

  • Linux trace technology
    • SysProf
    • OProfile
    • FTrace
    • Perf
    • Other Tools
  • Use case examples
  • Exercises:
    • Investigating scp behaviour with trace & profile tools


Course Dates:
January 29th, 2019 Munich, DE Enquire
February 5th, 2019 Ringwood, UK Enquire
February 12th, 2019 Woodland Hills, CA Enquire
February 19th, 2019 Denver, CO Enquire
March 5th, 2019 Boston, MA Enquire
March 11th, 2019 Ankara, TR Enquire
March 19th, 2019 San Diego, CA Enquire
April 1st, 2019 Oslo, NO Enquire
April 8th, 2019 Stockholm, SE Enquire
April 16th, 2019 Milwaukee, WI Enquire
April 23rd, 2019 Austin, TX Enquire
April 30th, 2019 Columbia, MD Enquire
May 21st, 2019 Munich, DE Enquire
June 3rd, 2019 Copenhagen, DK Enquire
June 3rd, 2019 Ringwood, UK Enquire
July 1st, 2019 Ankara, TR Enquire
July 30th, 2019 Denver, CO Enquire
August 13th, 2019 Chicago, IL Enquire
indicates CONFIRMED TO RUN courses.

Looking for team-based training, or other locations?

Complete an on-line form and a Doulos representative will get back to you »

Price on request


Back to top
Privacy Policy Site Map Contact Us