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

Similar documents
D1Y - Embedded Linux with Yocto

D1S - Embedded Linux with Ac6 System Workbench

Embedded Linux system development training 5-day session

L2 - C language for Embedded MCUs

FA3 - i.mx51 Implementation + LTIB

Adding hardware support to Buildroot

EMBEDDED LINUX ON ARM9 Weekend Workshop

RT3 - FreeRTOS Real Time Programming

FPQ6 - MPC8313E implementation

Yocto Project and OpenEmbedded training 3-day session

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.

FPQ9 - MPC8360E implementation

Embedded Linux Primer, Second Edition

The Yocto Project. Chris Young S/W Specialist SILICA Europe. Harmonising Software Development across multiple Embedded ARM SOC targets

RM3 - Cortex-M4 / Cortex-M4F implementation

FCQ2 - P2020 QorIQ implementation

RM4 - Cortex-M7 implementation

Using Buildroot for real projects

RA3 - Cortex-A15 implementation

Buildroot: what s new?

VHX - Xilinx - FPGA Programming in VHDL

How I survived to a SoC with a terrible Linux BSP

How I survived to a SoC with a terrible Linux BSP

Yocto Project components

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

V1 - VHDL Language. FPGA Programming with VHDL and Simulation (through the training Xilinx, Lattice or Actel FPGA are targeted) Objectives

Buildroot: what s new?

Introduction to the Yocto Project. Developer s perspective

Digi Embedded Yocto 1.6. First Steps Guide

Poky Linux & OpenEmbedded based environment

DEVELOPMENT GUIDE VIA AMOS-825. Linux BSP v

Embedded Systems Programming

FPQ7 - MPC832XE implementation

Update on boot time reduction techniques

Booting Linux Fast & Fancy. Embedded Linux Conference Europe Cambridge, Robert Schwebel

Meeting the Yocto Project

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

DEVELOPMENT GUIDE AMOS-820. Linux BSP v

Yocto Overview. Dexuan Cui Intel Corporation

Weibo? Please use hashtag #FTF2011# Freescale on Kaixin Tag yourself in photos and upload your own!

Isar. Build Debian-Based Products with BitBake. Baurzhan Ismagulov. Embedded Linux Conference Europe Oct 11-13, 2016 Berlin, Germany

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

Rootfs made easy with Buildroot

Oxalis Getting Started

Android System Development Training 4-day session

User s Manual for the Boundary Devices Nitrogen R board

STG - STM32 + FreeRTOS + LwIP/EmWin

Cross-compilation with Buildroot

30-Mar What's New in SDK V Highlights

SCM-i.MX 6 Series Yocto Linux User's Guide

OP-TEE Using TrustZone to Protect Our Own Secrets

DEVELOPMENT GUIDE QSM-8Q60. Linux BSP v

Flash filesystem benchmarks

Deby - Reproducible and Maintainable Embedded Linux Environment with Poky

Embedded Linux Conference Europe Sascha Hauer

Introduction à Linux Embarqué Free Electrons

DEVELOPMENT GUIDE. ARTiGO A820. Linux BSP v

1-1 SDK with Zynq EPP

Dandified way to package management in Yocto Project

Building Tizen Development Environment

Embedded Linux Systems

Developing Environment for Intel Mainstone Board

Parallella Linux - quickstart guide. Antmicro Ltd

Yocto Project & Embedded Linux

Hands-on with the Sitara Linux SDK

LINUXBUILD User's Manual

MCAM335x Linux User's Guide

Building RT image with Yocto

YumaPro Yocto Linux Quickstart Guide

DEVELOPMENT GUIDE VAB-820. Linux BSP v

Zedboard Documentation

e2 factory the emlix Embedded Build Framework

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

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

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

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

DEVELOPMENT GUIDE VAB-820. Linux BSP v4.1.2

RZ/G Verified Linux Package V2.1.0-RT

PEEDI. Development tools Waidhausenstrasse 13/ Vienna Austria Tel: Fax: Web:

January 28 29, 2014San Jose. Engineering Workshop

SCM EVK (SCM120

Building Debian-Based Products: Experiences in Collaboration

The Right Approach to Minimal Boot Times

LPC313x Linux Quick Start Guide Version 2.0

DS2 Products Auto-Update Tool BSP

What is new? Page 1. Peter Korsgaard, Maintainer ELCE 2013

Customizing the Yocto-Based Linux Distribution for Production

D-TACQ 2G Programmer's Guide

Xinu on Intel Galileo User Manual

Embedded Linux Training. Lab Book. Free Electrons

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

Linux. For BCT TM1 / HB5. User Guide. Document Reference: BCTTM1HB5 Linux User Guide. Document Issue: 1.2. Associated SDK release: 1.

Session Overview. Background Integration Mender libostree (aktualizr) SWUpdate resin.io

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

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

Getting Started with FreeRTOS BSP for i.mx 7Dual

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

Embest SOC8200 Single Board Computer

Alekto LAN. Zoom in Picture

Buildroot: a deep dive into the core

Transcription:

Training Embedded Linux: Building and installing an embedded and real-time Linux platform - Operating Systems: Linux D1 - Embedded Linux Building and installing an embedded and real-time Linux platform Objectives Understanding the architecture of the Linux system Create and use a cross-development toolchain Learn how to install Linux on your hardware and create a BSP Explore the Linux system architecture Booting Linux Initializing the system Install existing packages on the target Learn how to install Linux on flash chips Labs are conducted on target boards, that can be: Quad Cortex/A9-based "SabreLite" boards from NXP. Quad Cortex/A53-based "imx8q-evk" boards from NXP. We use a recent (4.x) linux kernel, as supported by the chip supplier. Some labs are conducted using the System Workbench for Linux IDE. Course environment Printed course material (in English) One Linux PC for two trainees. One target platform (quad Cortex-A9 i.mx6 Sabrelite or quad Cortex-A53 i.mx8-evk from Freescale) for two trainees Prerequisite Good C programming skills Knowledge of Linux user programming (see our D0 - Programmation Linux course) Preferably knowledge of Linux kernel and driver programming (see our D3 - Linux Drivers course) Plan FIRST DAY Linux History Linux overview

Version management The various licenses used by Linux (GPL, LGPL, etc) Linux distributions Linux architecture and modularity Boot loaders (UBoot, Redboot, barebox) Optimized libraries (eglibc, uclibc) Embedded GUIs Busybox Pre-compiled toolchains Toolchain generation tools Crosstool-ng Buildroot Manual toolchain compilation Exercice: Creating a toolchain with Crosstool-ng or Buildroot D1 - Embedded Linux 10/04/18 Linux tools for embedded systems Cross compiling toolchains SECOND DAY The U-Boot boot loader Introduction to U-Boot Booting the board through U-Boot Booting from NOR Booting from NAND Booting from emmc U-Boot environment variables User-defined variables Predefined variables Variables substitution The U-Boot minimal shell Writing scripts in variables Executing scripts Using variables in scripts: the set-script pattern U-Boot main commands Booting an OS Accessing flash chips Accessing file systems (NFS, FAT, EXTx, JFFS2 ) The full U-Boot shell Script structure Control flow instructions (if, for ) Exercice: Writing a script to configure the network and pass this configuration to the Linux kernel Exercice: Booting the board on NFS, using pre-existing images Exercice: Writing scripts to choose between boot from flash or from the network Building and installing U-Boot Porting U-Boot U-Boot source structure Adding a new board to U-Boot sources U-Boot drivers (RS232, network, flash, SD/MMC) The U-Boot BSP

U-Boot startup and board initialization Exercice: Creating a board support package in U-Boot and setup of initialization code Exercice: Looking at a first-load program D1 - Embedded Linux 10/04/18 The Linux Boot Linux kernel parameters The Linux startup sequence Various initialization systems (busybox init, system V init, systemd) Automatically starting an embedded system Exercice: Boot Linux automatically starting a user application THIRD DAY Creating the embedded Linux kernel Downloading stable source code Getting a tarball Using GIT Configuring the kernel Compiling the kernel and its modules Modules delivered in-tree Out-of-tree modules Installing the kernel and the modules Exercice: Configuring and compiling a target kernel for the target board The Linux BSP Linux BSP architecture Overall structure The ARM BSP The Linux build system Defining and initializing the board Programmatically (platform, i2c, spi, ) Using the Flattened Device Tree Exercice: Create a minimal BSP for the target board, editing the device tree. Creating a root file system Packages Various package build systems (autotools, CMake, ) Cross-compiling a package The all-in-one applications Busybox, the basic utilities Dropbear: encrypted communications (ssh) Manually building your root file system Device nodes, programs and libraries Configuration files (network, udev, ) Installing modules Looking for and installing the needed libraries Testing file system consistency and completeness Exercice: Configuring and compiling Busybox and Dropbear Exercice: Creating a minimal root file system using busybox and dropbear

D1 - Embedded Linux 10/04/18 FOURTH DAY Operation Toolchain configuration Package selection System configuration (serial port, filling /dev, ) Kernel and bootloader configuration Building File system image Customization Using a pre-built toolchain Adding a patch to an existing package Adding a new package Using a custom rootfs skeleton Exercice: Building a root file system using Buildroot Operation Architecture (OpenEmbedded Core, bitbake, layers) Recipes and classes Configuration files (local, machine and distribution) Building a recipe Customization Adding a package Customizing an existing package (.bbappend files) Adapting Yocto to a board (yocto-bsp create) Exercice: Building a root file system using Yocto Storage interfaces Block devices MTD Flash memories and Linux MTDs NOR flashes NAND flashes ONENAND flashes The various flash file system formats JFFS2, YAFFS2, UBIFS Read-only file system CRAMFS, SQUASHFS Standard Linux file systems Ext2/3/4, FAT, NFS Ramdisks and initrd Creating an initramfs Booting through an initramfs Choosing the right file system formats Flashing the file system Exercice: Building an initrd root file system Buildroot Yocto Embedded file systems

D1 - Embedded Linux 10/04/18 ANNEXES Xenomai real-time solutions for Linux xenomai real-time patch xenomai architecture co-kernel skins RTDM drivers install installing xenomai cross-compiling a xenomai application Exercice: installing Xenomai 3.x Exercice: measuring latencies Exercice: cross-compiling a xenomai application Cross-development Host machine setup Network services (DHCP, TFTP) File sharing (NFS) Cross-development tools (gcc, gdb, Makefiles) Using the Eclipse IDE for cross-development and debug Target setup Downloading the kernel using TFTP Booting on a remote root filesystem (diskless) Using gdbserver for remote application debug Using Qemu to emulate a board The GIT distributed source management system Installation and general use Creating and using a local repository Cloning a remote repository Accessing remote repositories through a proxy Working with branches Creation of a new branch Merging branches Team functions Creating configuring and managing a public repository Working with patches Renseignements pratiques Duration : 4 jours Cost : 2000 HT SARL au capital de 138600 - SIRET 449 597 103 00026 - RCS Nanterre - NAF 722C - Centre de Formation : 19, rue Pierre Curie - 92400 Courbevoie Siège social et administration : 21, rue Pierre Curie - 92400 Courbevoie - Tél. 01 41 16 80 10 - Fax. 01 41 16 07 78 Last site update: Thu Oct 4 09:31:45 2018 http://www.ac6-formation.com/