Embedded Linux system development training 5-day session

Similar documents
Yocto Project and OpenEmbedded training 3-day session

Android System Development Training 4-day session

Embedded Linux kernel and driver development training 5-day session

D1 - Embedded Linux. Building and installing an embedded and real-time Linux platform. Objectives. Course environment.

EMBEDDED LINUX ON ARM9 Weekend Workshop

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline

Introduction p. 1 Why Linux? p. 2 Embedded Linux Today p. 3 Open Source and the GPL p. 3 Free Versus Freedom p. 4 Standards and Relevant Bodies p.

D1S - Embedded Linux with Ac6 System Workbench

Flash filesystem benchmarks

D1Y - Embedded Linux with Yocto

Hands-on with the Sitara Linux SDK

Adding hardware support to Buildroot

How I survived to a SoC with a terrible Linux BSP

Embedded Linux Primer, Second Edition

Lab 1. OMAP5912 Starter Kit (OSK5912)

S3C6410-TFAUbuntu Easy Guide

IPL+UBI: Flexible and Reliable with Linux as the Bootloader

Update on boot time reduction techniques

Track Two Building an Internet Radio with the TI Sitara AM3517 using LinuxLink

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Embedded Systems. Mail: Web: Université de Nice - Sophia Antipolis

How I survived to a SoC with a terrible Linux BSP

User s Manual for the Boundary Devices Nitrogen R board

TQ2440 Development Platform Manual

Embedded Linux Training. Lab Book. Free Electrons

Labs instructions for Enabling BeagleBone with TI SDK 5.x

Pengwyn Documentation

MYD-JA5D2X Development Board

NI Linux Real-Time. Fanie Coetzer. Field Sales Engineer SA North. ni.com

Using Buildroot for real projects

OM-Cube Project. Contents. V. Hiribarren - N. Marchand - N. Talfer OM-Cube Project 1. V. Hiribarren - N. Marchand - N. Talfer OM-Cube Project 2

Poky Linux & OpenEmbedded based environment

Embedded Linux System Development. Practical Labs.

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink

MCAM335x Linux User's Guide

Digi Embedded Yocto 1.6. First Steps Guide

Embedded Linux Training. Lab Book. Free Electrons

Cross-compilation with Buildroot

First Steps. esom/sk4 esom/3517 Embedded Linux Starter Kit

Evaluation of Real-time operating systems for FGC controls

Development Environment Embedded Linux Primer Ch 1&2

Lab2 - Bootloader. Conventions. Department of Computer Science and Information Engineering National Taiwan University

μc/probe on the element14 BeagleBone Black

MASTERING EMBEDDED LINUX PROGRAMMING BY CHRIS SIMMONDS DOWNLOAD EBOOK : MASTERING EMBEDDED LINUX PROGRAMMING BY CHRIS SIMMONDS PDF

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724

Parallella Linux - quickstart guide. Antmicro Ltd

Baltos ir Contact Online. More Pictures. Click on the thumbnails for the large picture

December 1, 2015 Jason Kridner

Release Notes for Linux Add-In 1.3.0

Developing Software for Small Devices Bradley T Hughes Trolltech AS

EAN-ARM-Application-Development

Yocto Project components

Patrick Doyle Principal Software Engineer, irobot 2017 Embedded Linux Conference, Portland OR

First Steps. esom/sk5 esom/3517 Embedded Linux Starter Kit

Linux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.

DSH-G300 Smart Hub. Manual

Embedded Systems Programming

Introduction to the TenByTen6410

Linux Distribution: Kernel Configuration

Introduction à Linux Embarqué Free Electrons

Heterogeneous multi-processing with Linux and the CMSIS-DSP library

U-Boot and Linux Kernel Debug using CCSv5

Technology in Action. Chapter Topics. Participation Question. Participation Question. Participation Question 8/8/11

Raspberry Pi Kernel Install. By: Daniel Rizko


Azure Sphere: Fitting Linux Security in 4 MiB of RAM. Ryan Fairfax Principal Software Engineering Lead Microsoft

Die Brummbeere Documentation

Bringing display and 3D to the C.H.I.P computer

MYD-SAMA5D3X Development Board

Quickstart. with F&S Development Machine Fedora 23. Version 1.2 ( )

Linux Files and the File System

NAND/MTD support under Linux

The blob bootloader. The blob bootloader. Thomas Petazzoni Free Electrons

Rootfs made easy with Buildroot

LINUXBUILD User's Manual

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

AT-501 Cortex-A5 System On Module Product Brief

1. Conventions in this tutorial Introduction Check and change configuration settings as needed Start Digi ESP...

Embedded lightweight unix

Embedded Linux system development

The Right Approach to Minimal Boot Times

using the Texas Instruments Zoom

Computer System Management - File Systems

Alekto LAN. Zoom in Picture

Contents. 1 Introduction Features Product Specifications Hardware Specification Software Specification...

Developing Environment for Intel Mainstone Board

ARM Powered SoCs OpenEmbedded: a framework for toolcha. generation and rootfs management

Debugging on Intel Platforms

Embedded Linux size reduction techniques

OP-TEE Using TrustZone to Protect Our Own Secrets

Evaluation of Real-time Performance in Embedded Linux. Hiraku Toyooka, Hitachi. LinuxCon Europe Hitachi, Ltd All rights reserved.

HC-3120 Linux-Ready Cortex-A8 Industrial 12 HMI Computing (Hardware) User Guide

Snappy Ubuntu Core Enabling secure devices with app stores

bitcurator-access-webtools Quick Start Guide Last updated: May 8th, 2018 Release(s): and later

Idea6410 Ubuntu User Manual V 0.19

MYD-IMX28X Development Board

"Charting the Course... Enterprise Linux System Administration Course Summary

μc/probe on the element14 BeagleBone Black

EMBEDDED SYSTEM FOR VIDEO AND SIGNAL PROCESSING

Transcription:

Embedded Linux system development training 5-day session Title Embedded Linux system development training Overview Bootloaders Kernel (cross) compiling and booting Block and flash filesystems C library and cross-compiling toolchains Lightweight building blocks for embedded systems Embedded system development tools Embedded application development and debugging Implementing real-time requirements in embedded Linux systems Practical labs with the ARM based SAMA5D3 Xplained board from Microchip Materials Check that the course contents correspond to your needs: http://bootlin.com/doc/training/embedded-linux. Duration Five days - 40 hours (8 hours per day). 50% of lectures, 50% of practical labs. Trainer One of the engineers listed on: http://bootlin.com/training/trainers/ Language Oral lectures: English, French or Polish. Materials: English. Audience People developing devices using the Linux kernel People supporting embedded Linux system developers. Prerequisites Knowledge and practice of UNIX or GNU/Linux commands People lacking experience on this topic should get trained by themselves, for example with our freely available on-line slides: http://bootlin.com/blog/command-line/. Reduced version of the Embedded Linux system development training (4 days long) with the following topics removed: Alternative version Flash file system Real time http://bootlin.com/doc/training/embedded-linux/embeddedlinux-4-days-agenda.pdf.

For on-site sessions only Everything is supplied by Bootlin in public sessions. Required equipment Materials Video projector PC computers with at least 4 GB of RAM, and Ubuntu Linux installed in a free partition of at least 30 GB. Using Linux in a virtual machine is not supported, because of issues connecting to real hardware. We need Ubuntu Desktop 16.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. Connection to the Internet (direct or through the company proxy). 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. Print and electronic copies of presentations and labs. Electronic copy of lab files. Hardware Using the Microchip SAMA5D3 Xplained board in all practical labs SAMA5D36 (Cortex A5) CPU from Microchip, which features: USB powered 256 MB DDR2 RAM 256 MB NAND flash 2 Ethernet ports (Gigabit + 100 Mbit) 2 USB 2.0 host ports 1 USB device port 1 MMC/SD slot 3.3 V serial port (like Beaglebone Black) Arduino R3-compatible header Misc: JTAG, buttons, LEDs Day 1 - Morning Lecture - Introduction to embedded Linux Advantages of Linux versus traditional embedded operating systems. Reasons for choosing Linux. Global picture: understanding the general architecture of an embedded Linux system.overview of the major components in a typical system. The rest of the course will study each of these components in detail.

Lecture - Embedded environment Linux development Operating system and tools to use on the development workstation for embedded Linux development. Desktop Linux usage tips. Lecture - Cross-compiling toolchain and C library What s inside a cross-compiling toolchain Choosing the target C library What s inside the C library Ready to use cross-compiling toolchains Building a cross-compiling toolchain with automated tools. Day 1 - Afternoon Lab - Cross compiling toolchain Configuring Crosstool-NG Executing it to build a custom uclibc toolchain. Lab - Bootloader and U-boot Using the Microchip SAMA5D3 Xplained board Set up serial communication with the board. Configure, compile and install the firststage bootloader and U-Boot on the Xplained board. Become familiar with U-Boot environment and commands. Set up TFTP communication with the board. Use TFTP U-Boot commands. Lecture - Bootloaders Available bootloaders Bootloader features Installing a bootloader Detailed study of U-Boot Lecture - Linux kernel Role and general architecture of the Linux kernel Features available in the Linux kernel, with a focus on features useful for embedded systems Kernel user interface Getting the sources Understanding Linux kernel versions. Using the patch command

Day 2 - Morning Lab - Kernel sources Downloading kernel sources Apply kernel patches Lecture Configuring and compiling a Linux kernel Kernel configuration. Using ready-made configuration files for specific architectures and boards. Kernel compilation. Generated files. Using kernel modules Lab - Kernel cross-compiling and booting Using the Microchip Xplained board Configuring the Linux kernel and cross-compiling it for the ARM board. Downloading your kernel on the board through U-boot s tftp client. Booting your kernel from RAM. Copying the kernel to flash and booting it from this location. Storing boot parameters in flash and automating kernel booting from flash. Day 2 - Afternoon Lecture Root filesystem in Linux Filesystems in Linux. Role and organization of the root filesystem. Location of the root filesystem: on storage, in memory, from the network. Device files, virtual filesystems. Contents of a typical root filesystem. Lecture - BusyBox Detailed overview. Detailed features. Configuration, compiling and deploying.

Lab Tiny root filesystem built from scratch with BusyBox Using the Microchip Xplained board Now build a basic root filesystem from scratch for your ARM system 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. 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 on the PC host. Setting up shared libraries on the target and compiling a sample executable. Day 3 - Morning Lecture - Block filesystems Filesystems for block devices. Usefulness of journaled filesystems. Read-only block filesystems. RAM filesystems. How to create each of these filesystems. Suggestions for embedded systems. Lab - Block filesystems Using the Xplained ARM board Creating partitions on your block storage Booting a system with a mix of filesystems: SquashFS for applications, ext3 for configuration and user data, and tmpfs for temporary system files.

Day 3 - Afternoon Lecture - Flash filesystems Lab Flash filesystems The Memory Technology Devices (MTD) Using the SAMAD3 Xplained ARM board filesystem. Defining partitions in U-Boot for your inter Filesystems for MTD storage: JFFS2, nal flash storage instead of using raw offsets. Yaffs2, UBIFS. Sharing these definitions with Linux. Kernel configuration options Creating a UBI image on your workstation, MTD storage partitions. flashing it from U-Boot and booting your sys Focus on today s best solution, UBI and tem on one of the UBI volumes with UBIFS. UBIFS: preparing, flashing and using UBI images. Day 4 - Morning Lecture Leveraging existing open-source components in your system Lecture Cross-compiling applications and libraries Reasons for leveraging existing components. Find existing free and open source software components. Choosing the components. The different free software licenses and their requirements. 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. System building: integration of the components. Configuring, cross-compiling and installing applications and libraries. Details about the build system used in most open-source components. Overview of the common issues found when using these components.

Day 4 - Afternoon Lab Cross-compiling applications and libraries If enough time left Building a system with audio libraries and a sound player application. Manual compilation and installation of several free software packages. Learning about common techniques and issues. Lecture - Embedded system building tools Review of existing system building tools. Buildroot example. Lab - System build with Buildroot Using the Microchip Xplained board Using Buildroot to rebuild the same system as in the previous lab. Seeing how easier it gets. Optional: add a package to Buildroot. Day 5 - Morning Lecture - Application development and debugging Programming languages and libraries available. Overview of the C library features for application development. Build system for your application, how to use existing libraries in your application. Source browsers and Integrated Development Environments (IDEs). Debuggers. Debugging remote applications with gdb and gdbserver. Post-mortem debugging with core files. Code checkers, memory checkers, profilers. Lab Application development and debugging On the Microchip Xplained board Develop and compile an application relying on the ncurses library Using strace, ltrace and gdbserver to debug a crappy application on the remote system. Do post-mortem analysis of a crashed application.

Day 5 - Afternoon Lecture - Linux and real-time Very useful for many kinds of devices, industrial or multimedia systems. Understanding the sources of latency in standard Linux. Soft real-time solutions for Linux: improvements included in the mainline Linux version. Understanding and using the latest RT preempt patches for mainline Linux. Real-time kernel debugging. Measuring and analyzing latency. Xenomai, a hard real-time solution for Linux: features, concepts, implementation and examples. Lab - Linux latency tests Tests performed on the Xplained ARM board. Latency tests on standard Linux, with preemption options. Latency tests using the PREEMPT_RT kernel patchset. Setting up Xenomai. Latency tests with Xenomai.