23
The Yocto Project Harmonising Software Development across multiple Embedded ARM SOC targets 1 1 SILICA I The Engineers of Distribution Chris Young – S/W Specialist SILICA Europe

Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Embed Size (px)

Citation preview

Page 1: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

The Yocto ProjectHarmonising Software Development across multiple

Embedded ARM SOC targets

11

SILICA I The Engineers of Distribution

Chris Young – S/W Specialist

SILICA Europe

Embedded ARM SOC targets

Page 2: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

� When consolidation came up in the “mainstream” computer market at the beginning

of 1990, people started to look at an alternative to large commercial operating

systems:

� LINUX

� Linux was never a ready-to-use solution

� People had a problem, searched for a solution, but didn’t find one

Linux

The Open Source OS

2

SILICA I The Engineers of Distribution

� People had a problem, searched for a solution, but didn’t find one

� So people started to develop one themselves, often several people did this in parallel

and huge community formed around developing the Linux Kernel

� Linux Kernel is now one of the most reliable and best performing kernel options available

today

� Today it has shown its effectiveness in the Server, Mobile and Desktop markets

Page 3: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Linux

� PC developers use standard Linux distributions like Ubuntu or RedHat.

� Things are different for embedded

� Restricted hardware resources

• Mainstream distributions cannot be installed under 100MB without loosing major functionality

• Mainstream distributions execute tons of processes which can affect

Embedded Linux Distribution

3

SILICA I The Engineers of Distribution

• Mainstream distributions execute tons of processes which can affect performance and security of an embedded device

� Different hardware platforms

• Embedded developers need to customize Linux for running on their specific hardware

� This creates a need for a custom built distribution tailored for application specific

requirements

Page 4: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Embedded Linux

� DIY / Roll-Your-Own or modified traditional distro:

� Long Term Maintenance is difficult

� Changes to mainline kernel are difficult to track

� Not embedded friendly

� Licensing issues

� No commercial embedded support

Where do you start ?

4

SILICA I The Engineers of Distribution

� No commercial embedded support

� Commercial/Community Embedded Linux:

� Too many competing systems

� Incompatible distributions/build systems

� Developers spend lots of time porting or making build systems

� Leaves less time/money to develop interesting software features

Page 5: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Embedded Linux Build systems

� Linux Build systems

� Group of tools that allow you to automatically build a complete target embedded

Linux system ( bootloader, kernel and file system )

� They configure, compile and install all needed components :

� Configuring and building Linux Kernel and Bootloader

� Files system package architecture patching

Creating your target system image

5

SILICA I The Engineers of Distribution

� Files system package architecture patching

� Configuring, building and deployment of each file system package

� Resolving file system package dependencies

� Create file system architecture + configurations files + init scripts…

� Easy tools to develop a system : reproducible build ( bug fix, change, experiment)

Page 6: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

� LTIB (Linux Target Image Builder): complete and autonomous Linux auto-build

system developed by Freescale and based on RPM, menuconfig and Perl

� Ptxdist : standalone auto-build system based on Kconfig and a set of patches and

Makefiles developed by Pengutronix

Embedded Linux Build systems

Embedded Linux Build systems

6

SILICA I The Engineers of Distribution

� Buildroot: complete and autonomous Linux auto-build system based on Makefiles

and patches for generation of a cross- compiler tool chain as well as the creation of

a complete file system.

� OpenEmbedded : open source collaboration project that provides templates, tools

and methods to help you create custom Linux-based systems.

Page 7: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Yocto Project

� It's not an embedded Linux distribution - it creates a custom one for you

� The Yocto Project is an open source collaboration project that provides templates,

tools and methods to help you create custom Linux-based systems for embedded

products regardless of the hardware architecture.

� Based on OpenEmbedded

� Who is behind it?

What is it?

7

SILICA I The Engineers of Distribution

� Who is behind it?

� Linux Foundation

� Sponsored by many key semiconductor manufacturers

� SILICA is a Yocto Project Participant

� Provides a highly flexible, yet complex way to build a custom distribution

� Provides SDK tools (Eclipse plugin)

� Provides GUI tools to hide complexity to end user – HOB

� http://www.yoctoproject.org

Page 8: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

What the Yocto Project Provides

� The industry needed a common build system and core technology

� Bitbake and OpenEmbedded build system

� The benefit of doing this is:

� Long term maintainability

� Designed specifically for Embedded products

� Simple integration of major kernel updates

8

SILICA I The Engineers of Distribution

� Simple integration of major kernel updates

� Very active developer community

� Less time spent on things which don’t make money (build system, core Linux

components)

� More time spent on things which do make money (app development, product

development, etc)

Page 9: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

What is the Yocto Project™?

� Consists of several separate projects :

� Bitbake : Build engine - parses metadata and runs tasks

� OpenEmbedded Core : core metadata and build information

to build baseline embedded systems

� Poky : Yocto example distribution which integrates all the

required pieces and makes an official release

www.yoctoproject.org

9

SILICA I The Engineers of Distribution

� Hob : GUI tool to select packages to build and easily create

custom image

Page 10: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Yocto in a nutshell

Bitbake build process

10

SILICA I The Engineers of Distribution

Page 11: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Bitbake

� A make like build tool

� Started within the OpenEmbedded project, then was separated into a standalone

tool

� Processes build instructions (recipe files) to produce desired tool chain, package

or final board image

Baking your recipes

11

SILICA I The Engineers of Distribution

Page 12: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Bitbake recipes / meta data

� Bitbake recipes specify how a particular package is built

� Bitbake recipe extension .bb

� Recipes can control the build of a simple user application right through to a

complete Toolchain or Linux System image

� Includes all the package dependencies, source code locations, configuration,

compilation, build and install instructions

12

SILICA I The Engineers of Distribution

compilation, build and install instructions

� Some Recipes can inherit attributes/methods from Bitbake classes (.bbclass)

� All predefined classes are under

� meta/classes

� Meta-data includes recipes, bitbake classes, configuration files

Page 13: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Yocto Layers

� Yocto meta-data is organized into layers,

so that configurations can be kept isolated

from each other

� Each layer contains ‘recipe files’ which

control how a particular feature is built.

� Each SOC variant will have it’s own vendor

13

SILICA I The Engineers of Distribution

� Each SOC variant will have it’s own vendor

layer to implement H/W specific features.

� Package recipes are organized in layer

sub-folders.

� Layers can have dependencies on other

layers.

Page 14: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Yocto Layers

� Layers are a way to manage extensions, and customizations to the system

� Layers can extend, add, replace or modify recipes

� Layers can add or replace bbclass files

� Layers can add or modify configuration settings

� Layers are added via BBLAYERS variable in build/conf/bblayers.conf

� Best Practice: Layers should be grouped by functionality

14

SILICA I The Engineers of Distribution

� Best Practice: Layers should be grouped by functionality

� Custom Toolchains (compilers, debuggers, profiling tools)

� Distribution specifications (i.e. meta-yocto)

� BSP/Machine settings (i.e. meta-yocto-bsp)

� Functional areas (selinux, networking, etc)

� Project specific changes

Page 15: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Yocto Project Development Environment

www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html

15

SILICA I The Engineers of Distribution

Page 16: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Yocto Summary

� The Yocto Project provides tools, templates and best practices for you to create

your embedded Linux OS

� The Poky project provides a set of reference distribution components in one place

to make it easy to get started

� It helps set up the embedded app developer

� Both device and app development models supported

16

SILICA I The Engineers of Distribution

� Both device and app development models supported

� Getting started is easy

� It’s not an embedded Linux distribution – it creates a custom one for you

Page 17: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

ArchiTech Boards and Software Solutions

1717

SILICA I The Engineers of Distribution

Introducing the ArchiTech Yocto SDK

Page 18: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

ArchiTech

� Choosing the right silicon device for a project – no longer all about the device itself

� Especially true for Embedded Processors

� What software will the device will run?

� What ecosystem is available to help you develop that S/W ?

� What support can I expect from my supplier?

...delivering so much more than just a development board

18

SILICA I The Engineers of Distribution

� SILICA Mission

� Take you from dev board to production – shortest time with the minimum of hassle

� ArchiTech range of dev boards and software solutions

� Partnered with leading semi vendors

� Industrial quality development boards

� Fully evaluate device feature set

� Accelerate your design cycle

Page 19: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

ArchiTech Development Boards

� Tibidabo

� Freescale i.MX 6Quad

� Hachiko

� Renesas RZ/A

� Pengwyn

Low cost, fully featured, Linux enabled development platforms

19

SILICA I The Engineers of Distribution

� Pengwyn

� TI Sitara

� MicroZed

� Xilinx Zynq

� ZedBoard

� Xilinx Zynq

Page 20: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

ArchiTech Yocto SDK

� All boards supported by ArchiTech Linux distribution – based on Yocto

Project

� SILICA an active participant in Yocto Project – along with major semi

vendors

� ArchiTech removes complexity – ArchiTech Yocto SDK

� VirtualBox virtual machine image – Linux development host

...delivering so much more than just a development board

20

SILICA I The Engineers of Distribution

� VirtualBox virtual machine image – Linux development host

� Pre-installed Yocto and SDK Tools

� Pre-configured with ArchiTech BSP for each board

� No requirement to set up a separate Linux Host

� Quickly and easily re-create boot loader, kernel and root file system

� Simple to reconfigure kernel and rootfs to your own requirements

Page 21: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

ArchiTech Yocto SDK

� Yocto HOB tool included

� GUI tool to configure build and manage package selection

� Eclipse and Qt Creator S/W Development IDE’s included

� Pre-configured – eliminates complicated setup

� Start application development immediately

...delivering so much more than just a development board

21

SILICA I The Engineers of Distribution

� Start application development immediately

� ArchiTech Linux distribution and BSPs ‘Open Source’ and freely available

� Take our BSP layer and make simple modifications for your own custom board

� ArchiTech SDK – one common development flow across all boards

� Learn only one tool – not vendor specific

Page 22: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

ArchiTech Yocto SDK

� Board BSPs developed in house at SILICA

� ArchiTech boards and Yocto SDK supported by SILICA

� Extensive team of Field Apps Engineers

� SILICA Software Specialists

� ArchiTech Support Forum

...delivering so much more than just a development board

22

SILICA I The Engineers of Distribution

� Get up to speed even quicker

� ArchiTech Yocto training classes all across Europe

� For more information go to www.architechboards.org

Page 23: Yocto Project - Harmonising Software Development across ... · The YoctoProject HarmonisingSoftware Development across multiple Embedded ARM SOC targets 11 SILICA I The Engineers

Any Questions?

� Thanks for listening...

� Contact

[email protected]

23

SILICA I The Engineers of Distribution

[email protected]