SW1 System Workbench for Linux

Building embedded Linux systems using System Workbench

Objectifs
  • Creating Embedded Linux platforms using System Workbench
  • Using and customizing System Workbench
Labs are conducted on target boards, that can be:
    Dual Cortex/A7 and M4F "STM32MP15-DISCO" boards from STMicroelectronics.
    Quad Cortex/A9-based "SabreLite" boards from NXP.
    Quad Cortex/A53 and M4F "imx8q-evk" boards from NXP.
We use the last “Ac6 System Workbench for Linux – Classic Edition" version, using a recent Linux kernel.
Course environment
  • Printed course material (in English)
  • One Linux PC for two trainees.
  • One target platform (i.MX6 Sabre from NXP) for two trainees
  • Ac6 System Workbench for Linux – Classic Edition
Prerequisite

Introduction to Ac6 System Workbench
  • Overview
    • Eclipse
    • Kernel and modules
    • Platforms and Root file-systems
  • The build system architecture
    • Building individual packages
    • Building platforms
    • Building Root file-systems
  • Developing with System Workbench
    • Creating an application
    • Building the application
    • Debugging
Exercise:  Building a root file system using a pre-defined platform template
Developing applications with System Workbench
  • Creating a Linux program
  • Creating a library
    • Static library
    • Shared library
  • Debugging on the target
    • Using an SSH connection
    • Debugging shared libraries
Exercise:  Create a small program, with a custom shared library, and debug it on the target
Creating a Linux Platform
  • Creating a platform project
    • Importing a pre-configured platform
    • Creating a platform from scratch
  • Configuring the platform
    • Source and installation directories
    • Link to a target Rootfs
    • Build configurations
Exercise:  Create and configure a minimum platform from scratch, using library packages
  • Populating the build environment
    • Import packages in the build environment
    • Build individual packages
    • Build the whole platform
Exercise:  Build the platform, manually building some packages
  • Adding packages to a platform
    • From a library
    • From an existing Eclipse project
Exercise:  Add the previously developed application to the platform
  • Creating a new package
    • Specifying the source
    • Patching the official sources
    • Adding package-specific resources
    • Adding package configuration directives
Exercise:  Add a new open-source package to the platform
Exercise:  Compiling and customizing the kernel
Compiling and customizing the kernel
  • Kernel projects
    • Creating a kernel project
    • Selecting the architecture and configuration
    • Customizing the configuration
    • Compiling the kernel
Exercise:  Configure and compile the kernel in the platform
  • Module projects
    • Creating a module project
    • Linking it to a kernel project
    • Creating and building modules
Exercise:  Add and configure an external module
Creating a Root File-System
  • Creating a rootfs project
    • Creating the rootfs structure
    • Add files to the base structure
  • Edit standard configuration files
    • File systems
    • Initialization
    • Starting applications
  • Creating and populating the root filesystem
    • Linking the file system to the platform
    • Installing platform components
    • Installing libraries
Exercise:  Create the root filesystem for the platform just built
Managing Package Libraries
  • Creating a Library
    • Adding packages from a platform
    • Creating packages in the Library
  • Importing a library
  • Exporting a library
Exercise:  Create a library with the kernel, module and application created