Upload
lamthuan
View
226
Download
0
Embed Size (px)
Citation preview
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
� 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
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
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
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)
� 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.
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
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)
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
Yocto in a nutshell
Bitbake build process
10
SILICA I The Engineers of Distribution
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
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
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.
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
Yocto Project Development Environment
www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html
15
SILICA I The Engineers of Distribution
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
ArchiTech Boards and Software Solutions
1717
SILICA I The Engineers of Distribution
Introducing the ArchiTech Yocto SDK
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
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
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
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
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
Any Questions?
� Thanks for listening...
� Contact
23
SILICA I The Engineers of Distribution