The Yocto Project Accelerating Embedded Product Development

The Yocto Project Accelerating Embedded Product Development

Introduction to the Yocto Project Accelerating Embedded Product Development Rudolf J Streif [ yoc-to ] The smallest unit of measure, equal to one septillionth (10-24). The Yocto Project Ecosystem What it is, who we are, and why you should care... 3/64 © 2015 The Yocto Project The Yocto Project is not an Embedded Linux Distribution. It creates a custom one for You! The Yocto Project is not Single Open Source Project. It is an Ecosystem. The Yocto Project combines the convenience of a ready-to-run Linux Distribution with the flexibility of a custom Linux operating system stack. 4/61 © 2015 The Yocto Project Embedded Linux – Why is it Challenging? • DIY/Roll-Your-Own or Modify Mainstream Distro • Long Term Maintenance is difficult • Upstream Changes are difficult to track • Not embedded friendly • Licensing issues • No commercial embedded support • Build System and Cross Toolchain Challenges • 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 and resources to develop value- adding software features 5/61 © 2015 The Yocto Project Embedded Linux Landscape (1) Android – http://source.android.com ● Great for systems with ARM-based SoCs and touch screens ● Build system and development tools Ångström Distribution – http://www.angstrom-distribution.org ● Community distribution with a growing list of supported development boards ● Yocto Project build environment ● Online builder Narcissus Buildroot – http://buildroot.uclibc.org ● GNU make-based build system ● uClibc target library ● BusyBox command line utility applications Baserock – http://wiki.baserock.org ● Targeted for embedded appliances ● Native Builds for x86, x86_64, ARMv7 6/61 © 2015 The Yocto Project Embedded Linux Landscape (2) OpenEmbedded – http://www.openembedded.org ● Created by merging OpenZaurus with contributions from Familiar Linux, OpenSIMPad ● Based on BitBake build engine OpenWrt – http://www.openwrt.org ● Debuted as open source OS for embedded devices routing network traffic ● Originally created from Linksys GPL sources for their WRT54G residential gateway ● Buildroot-based build environment ● Headless operation with web UI The Yocto Project – http://www.yoctoproject.org ● Details to follow Commercial Distributions ● Various solutions from different vendors for different applications ● Commercial support for toolchain and operating system stack 7/61 © 2015 The Yocto Project What is the Yocto Project? • Open source project with a strong community • A collection of embedded projects and tooling • Place for Industry to publish BSPs • Application Development Tools including Eclipse plug-ins and emulators • Key project is the reference distribution build environment (Poky) • Complete Build System for Linux OS • Releases every 6 months with latest (but stable) kernel (LTSI), toolchain, and package versions • Full documentation representative of a consistent system It’s not an embedded Linux distribution – it creates a custom one for you 8/61 © 20152013 The YoctoLinux Foundation.Project All rights reserved What the Yocto Project Provides • The industry needed a common build system and core technology • Bitbake and OpenEmbedded build system • The benefit of doing so is: • Designed for the long term • Designed for embedded • Transparent Upstream changes • Vibrant 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, …) © 2015 The Yocto Project Who is the Yocto Project? • Advisory Board and Technical Leadership • Organized under the Linux Foundation • Individual Developers • Embedded Hardware Companies • Semiconductor Manufacturers • Embedded Operating System Vendors • OpenEmbedded / LTSI Community Member Organizations Supporting Organizations http://www.yoctoproject.org/ecosystem 10/61 © 2015 The Yocto Project Why Should a Developer Care? (1) • Build a complete Linux system –from source– in about an hour (about 90 minutes with X) • Multiple cores (i.e. quad i7) • Lots of RAM (i.e. 16 GB of ram or more) • Fast disk (RAID, SSD, etc…) • Start with a validated collection of software (toolchain, kernel, user space) • Blueprints to get you started quickly and that you can customize for your own needs • We distinguish app developers from system developers and we support both • Access to a great collection of app developer tools (performance, debug, power analysis, Eclipse) 11/61 © 2015 The Yocto Project Why Should a Developer Care? (2) • Supports all major embedded architectures • x86, x86-64, ARM, PPC, MIPS • Coming soon, MIPS64 and ARM Arch 64 • Advanced kernel development tools • Layer model encourages modular development, reuse, and easy customizations • Compatibility program that is used to encourage interoperability and best practices 12/61 © 2015 The Yocto Project Yocto Project Provides Embedded Tools, Best Practices, and Reference Implementation Build System Upstream Components Poky Build Output Yocto Project Components Upstream Projects 13/61 © 2015 The Yocto Project The Yocto Project Family • Poky – Yocto Project Reference Build System • BitBake – Build Engine • Hob – Graphical User Interface for BitBake • OpenEmbedded Core – Shared Base Layer of Recipes and Classes • Application Development Toolkit (ADT) – Development environment for user-space applications to run on OS stacks built by Poky • Eclipse IDE Plugin – Integration of ADT into the Eclipse IDE • EGLIBC – Embedded variant of the GNU C Library • Matchbox – X Windows-based open source graphical UI for embedded devices • Autobuilder – Automation for Yocto Project build tests and QA • Build Appliance – Virtual machine image to try out the Yocto Project and Poky • Pseudo – System administrator simulation environment • Swabber – Host leakage detection tool 14/61 © 2015 The Yocto Project Yocto Project and OpenEmbedded OpenEmbedded ● Created by merging the work of the OpenZaurus project with contributions from other projects such as Familiar Linux and OpenSIMpad into a common code base ● Community project focusing on broad hardware and architectures ● Large library of recipes to cross-compile over 1000 packages ● Switched from flat meta-data architecture (OpenEmbedded Classic), to layered architecture based on OpenEmbedded Core layer, which is in common with the Yocto Project and the Angstrom Distribution Yocto Project ● Family of projects for developing Linux-based devices ● Self-contained build environment providing tools and blueprints for building Linux OS stacks ● Supported by silicon vendors, OSVs (also providing commercial support), open source projects for hardware and software, electronics companies ● Standardized components with compliance program ● Focused on tooling and maintenance with two major releases every 6 months 15/61 © 2015 The Yocto Project Why not just use OpenEmbedded? • OpenEmbedded is an Open Source Project providing a Build Framework for Embedded Linux Systems • Not a reference distribution • Designed to be the foundation for others • Cutting-edge technologies and software packages • The Yocto Project is focused on enabling Commercial Product Development • Provides a reference distribution policy and root file system blueprints • Co-maintains OpenEmbedded components and improves their quality • Provides additional tooling such as Autobuilder and QA Tests • Provides tools for application development such as ADT and Eclipse Plugin 16/61 © 2015 The Yocto Project The Yocto Project Ecosystem Product Showcase ● Hardware Platforms ● Distributions – Open Source and Commercial ● Projects – Open Source Project using the Yocto Project Participants ● Organizations who participate in the Yocto Project Compliance Program ● They also support the project through contributions and engineering resources Member Organizations ● Organizations who provide the administrative leadership of the Yocto Project ● Their support includes membership dues for infrastructure etc. and engineering resources ● Members of the Yocto Project Advisory Board Supporting Organizations ● Organizations who support the Yocto Project through contributions, product development, etc. 17/61 © 2015 The Yocto Project Yocto Project Branding and Compliance Program Goals ● Strengthen the Yocto Project through a consistent branding. ● Provide recognition to participating organizations. ● Reduce fragmentation in the embedded Linux market by encouraging collaborative development of a common set of tools, standards, and practices and ensure that these tools, standards, and practices are architecturally independent as much as possible. Yocto Project Participant ● Organizations and entities who use and support the Yocto Project publicly. ● Open to open source projects, non-profit organizations, small companies, and Yocto Project member organizations. Yocto Project Compatible ● Products, BSPs, OpenEmbedded-compatible layers and other open source software projects that are built and work with the Yocto Project. ● These products and components must be submitted by open source projects, non-profit entities, or Yocto Project member organizations. 18/61 © 2015 The Yocto Project The Yocto Project Community 19/61 © 2015 The Yocto Project Getting Started All you need to know to get your feet wet and a little beyond... 20/64 © 2015 The Yocto Project Quick Start 1. Go to http://yoctoproject.org click “Documentation” and read the Quick Start guide 2. Set up your Linux build system with

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    64 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us