yocto project - oscon 7-17-2012

Download Yocto Project - OSCON 7-17-2012

Post on 18-Jan-2015

2.951 views

Category:

Technology

3 download

Embed Size (px)

DESCRIPTION

Slides from Yocto Project presentation at OSCON, 7-17-2012

TRANSCRIPT

  • 1. Professional Tools for Embedded LinuxJeff Osier-Mixon, Intel CorporationYocto Project Community ManagerOSCON | 7/19/2012 2012 The Linux Foundation. All rights reserved.

2. [ yoc-to ]The smallest unit of measure,equal to one septillionth (10-24). Agenda: Introduction Development Process Getting Started Q&A 3. Introduction 4. Introducing the Yocto ProjectOverall goalsProject componentsGovernanceRelationshipsYocto Project presentation @ OSCON 20124 2012 The Linux Foundation. All rights reserved 5. Introducing the Yocto Project Overall GoalsUnify the embedded Linux development experience by providing consistent, interoperable tools, metadata, & processes on all popular architectures (ARM, Intel, MIPS, PowerPC)Respond to the needs of embedded systems developersProvide upstream resources for commercial providersEncourage community involvementMaintain community relationshipsTest thoroughly & provide nightly build structureRelease on 6-month cadenceYocto Project presentation @ OSCON 20125 2012 The Linux Foundation. All rights reserved 6. Introducing the Yocto Project Overview[video: https://vimeo.com/24743626]Yocto Project presentation @ OSCON 20126 2012 The Linux Foundation. All rights reserved 7. Introducing the Yocto Project Project ComponentsBuild system Poky reference systemBitBake (build tool)OpenEmbedded Core (core metadata)Core BSPs & layersCreates reference distribution Development tools Application Development Toolkit & Eclipse IDE Hob graphical interface Related build tools Cross-prelink, pseudo, swabber, autobuilderEmbedded Library: EGLIBCBuild ApplianceReference projectsYocto Project presentation @ OSCON 20127 2012 The Linux Foundation. All rights reserved 8. Introducing the Yocto Project Governance Open source umbrella project Organized under the Linux Foundation Split governance model Technical Leadership Team Advisory Board made up of participating organizationsYocto Project presentation @ OSCON 20128 2012 The Linux Foundation. All rights reservedAll logos are trademarks of their respective owners. 9. Introducing the Yocto Project Governance: RolesTechnical Team Advisory Board Voting MembersChief ArchitectAdvocacy Subgroup Maintainers/LeadersFinance SubgroupShared MaintainershipsInfrastructure SubgroupProject & Team ManagementSystems Administrator Documentation, Build, QAContributorsYocto Project presentation @ OSCON 20129 2012 The Linux Foundation. All rights reserved 10. Introducing the Yocto Project Governance: RelationshipsThe Linux FoundationParent organizationUpstream ProjectsMutually beneficialOpenEmbedded ProjectIts complicatedThe WorldIts awesome Yocto Project presentation @ OSCON 201210 2012 The Linux Foundation. All rights reserved 11. Introducing the Yocto Project Governance: Relationships upstream projectsTechnical Team Advisory BoardVoting MembersChief Architect Advocacy Subgroup Maintainers/Leaders Finance Subgroup Shared MaintainershipsInfrastructure Subgroup Project & Team Management Systems Administrator Documentation, Build, QA Contributors Yocto Project presentation @ OSCON 201211 2012 The Linux Foundation. All rights reserved All logos are trademarks of their respective owners. 12. Development 13. Development Process Build system components Workflow diagram Adjustment points Yocto Project presentation @ OSCON 201213 2012 The Linux Foundation. All rights reserved 14. Development Process Build System Components BitBake: build engine, follows metadata instructions Metadata: instructions for BitBake (recipes, classes, config files) OpenEmbedded Core: core set of metadata for OE-based systems Poky: a reference build system for the Yocto Project: includesBitBake & OpenEmbedded Core, produces reference distro Package: software component in a package format Image: final build output, often a kernel and root filesystem Recipe: instructions on how to build a package Layer: set of related recipes intended to fit alongside other layers Cross-development tools or cross-compiler: tools that providebinary output for a different architecture from the one they run on Toolchain: compiler, debugger, binary utilites, etc. designed towork together for a specific architecture BSP: board support package, contains hardware-specific drivers andother components for a specific architecture, board, or chipset Yocto Project presentation @ OSCON 201214 2012 The Linux Foundation. All rights reserved 15. Development Process Build System Components: BitBake Build engine, originally derived from Portage Relatively simple, highly configurable Operates on metadata Sequentially steps through tasks Maintainership shared with OpenEmbedded Yocto Project presentation @ OSCON 201215 2012 The Linux Foundation. All rights reserved 16. Development Process Build System Components: Layers openembedded-core Core classes and image recipes QEMU-emulated machine definitions Maintainership shared with OpenEmbedded linux-yocto Stable kernel at release time; moving to LTSI kernel BSP layers meta-intel: Intel processors and SoCs meta-ti: Texas Instruments boards meta-freescale: Freescale iMx development boards Feature layers meta-ivi meta-rt Many more (see git.yoctoproject.org) Yocto Project presentation @ OSCON 201216 2012 The Linux Foundation. All rights reserved 17. Development Process Build System Components: Poky Reference build system a representation of the Yocto Project Includes BitBake, openembedded-core Can build multiple image types core-image-minimal core-image-base core-image-sato Yocto Project presentation @ OSCON 201217 2012 The Linux Foundation. All rights reserved 18. Development Process Workflow Diagram Yocto Project presentation @ OSCON 201218 2012 The Linux Foundation. All rights reserved 19. Development Process Adjustment Points During development Configuration During build Yocto Project presentation @ OSCON 201219 2012 The Linux Foundation. All rights reserved 20. Getting Started 21. Getting Started Download Configure your environment Configure the image Build & rebuild A look at Hob Yocto Project presentation @ OSCON 201221 2012 The Linux Foundation. All rights reserved 22. Getting Started Download Tarball (packaged release):$ wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.2/poky-denzil-7.0.tar.bz2$ tar xjf poky-denzil-7.0.tar.bz2 Git (tip of master branch):$ git clone git://git.yoctoproject.org/poky.git Virtual machine:$ wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.2/tools/Build_Appliance.zip Yocto Project presentation @ OSCON 201222 2012 The Linux Foundation. All rights reserved 23. Getting Started Configure Your Environment Install required packages (Ubuntu shown): $ sudo apt-get install sed wget subversion git-core coreutilsunzip texi2html texinfo libsdl1.2-dev docbook-utils fop gawkpython-pysqlite2 diffstat make gcc build-essential xsltprocg++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-devautoconf automake groff libtool xterm libxml-parser-perl Set up environment variables: $ cd poky-denzil-7.0 $ ./oe-init-build-env ### Shell environment set up for builds. ###You can now run bitbake Common targets are: core-image-minimal core-image-sato meta-toolchain . . .23 24. Getting Started Configure the Image # This file is your local configuration file and is where all local user settings # are placed. The comments in this file give some guide to the options a new user ... # Parallelism Options # # These two options control how much parallelism BitBake should use. The first # option determines how many tasks bitbake should run in parallel: # BB_NUMBER_THREADS = "8" # # The second option controls how many processes make should run in parallel when # running compile tasks: # PARALLEL_MAKE = "-j 8" ... # This sets the default machine to be qemux86 if no other machine is selected: MACHINE ??= "qemux86" Yocto Project presentation @ OSCON 201224 2012 The Linux Foundation. All rights reserved 25. Getting Started Build & Rebuild Pseudo is not present but is required, building this first before the main build Parsing recipes: 100% |############################################################################################## ################################################################################| Time: 00:00:53 Parsing of 835 .bb files complete (0 cached, 835 parsed). 1135 targets, 19 skipped, 0 masked, 0 errors. Build Configuration: BB_VERSION= "1.15.2" TARGET_ARCH = "i586" TARGET_OS= "linux" MACHINE= "qemux86" DISTRO= "poky" DISTRO_VERSION = "1.2+snapshot-20120719" TUNE_FEATURES = "m32 i586" TARGET_FPU = "" meta meta-yocto= "master:99203edda6f0b09d817454d656c100b7a8806b18" NOTE: Resolving any missing task queue dependencies NOTE: Preparing runqueue NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks NOTE: Running task 1 of 63 (ID: 11, /Mondo/poky/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_fetch) Yocto Project presentation @ OSCON 201225 2012 The Linux Foundation. All rights reserved 26. Getting Started Build & Rebuild NOTE: Running task 1 of 63 (ID: 11, /Mondo/poky/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_fetch) NOTE: package quilt-native-0.60-r0: task do_fetch: Started NOTE: package quilt-native-0.60-r0: task do_fetch: Succeeded NOTE: Running task 2 of 63 (ID: 7, /Mondo/poky/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_unpack) NOTE: package quilt-native-0.60-r0: task do_unpack: Started NOTE: package quilt-native-0.60-r0: task do_unpack: Succeeded NOTE: Running task 3 of 63 (ID: 8, /Mondo/poky/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_patch) NOTE: package quilt-native-0.60-r0: task do_patch: Started NOTE: package quilt-native-0.60-r0: task do_patch: Succeeded NOTE: Running task 4 of 63 (ID: 12, /Mondo/poky/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_configure) NOTE: package quilt-native-0.60-r0: task do_configure: Started NOTE:

View more >