OpenEmbedded - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

OpenEmbedded

Description:

... the metadata for BitBake OpenEmbedded II Software framework to create Linux distributions for embedded systems This may include bootloader, Linux, ... – PowerPoint PPT presentation

Number of Views:3
Avg rating:3.0/5.0
Slides: 32
Provided by: CarlosE156
Category:

less

Transcript and Presenter's Notes

Title: OpenEmbedded


1
OpenEmbedded BitBake
  • Open Source Software
  • Carlos Ramirez Martinez-Eiroa
  • Professor Corby Schmitz

2
Index
  • Build Tools
  • Make
  • Ant
  • Maven
  • OpenZaurus
  • OpenEmbedded
  • BitBake

3
Evolution
  • Make Ant Maven
  • BuiltRoot BitBake

4
Build Tools
  • The process of building a computer program is
    usually managed by a build tool
  • Build Tool program that coordinates and
    controls other programs
  • The build utility needs to compile and link the
    various files, in the correct order

5
Make
  • Initial release 1977
  • Already seen in class

6
Ant I
  • Similar to make, but
  • Implemented using the Java language
  • Requires the Java platform
  • Is best suited to building Java projects
  • Ant uses XML to describe the build process and
    its dependencies - Make has its Makefile format

7
Ant II
  • Conceived by James Duncan Davidson while turning
    Apache Tomcat (from Sun) into open source
  • A proprietary version of Make was used to build
    it on the Solaris Operating Environment

8
Ant III
  • In the open source world there was no way of
    controlling which platform was used to build
    Tomcat
  • Ant was created as a simple, platform-independent
    tool to build Tomcat from directives in an XML
    "build file

9
Ant IV
  • In a Makefile the actions required to create a
    target are specified as shell commands which are
    specific to the current platform (usually Unix)
  • Ant provides a large amount of built-in
    functionality which can guarantee will behave
    (nearly) identically on all platforms

10
Ant V
  • January 2000, Ant was moved to a separate CVS
    module and was promoted to a project of its own,
    independent of Tomcat, and became Apache Ant

11
  • Maven uses a construct known as a Project Object
    Model (POM) to describe
  • The software project being built
  • Its dependencies on other external modules and
    components
  • The build order
  • A key feature of Maven is that it is
    network-ready - The core engine can dynamically
    download plug-ins from a repository

12
Towards OpenEmbedded
13
A Bit of History I
  • 2001 Sharp introducestheSL-5000 PDA running
    Linux
  • 2002 Chris Larson finds out that the SharpROM
    sucks and starts hacking on a build system for a
    customized Linux distribution called "OpenZaurus
  • 2002-2003 The OpenZaurus build system is getting
    stretched (beyond belief) by adding support for
    many more packages and target devices
  • January 2003 Brainstorming towards a new
    distribution and device independent build system

14
A Bit of History II
  • February 2003 Holger Schurig creates the
    OpenEmbedded repository and starts hacking on the
    first version
  • May 2003 Chris Larson adds major functionality
    to the OpenEmbedded core and starts converting
    packages from the OpenZaurus build system
  • December 2003 Michael Lauer releases
    OpenZaurus3.3.5, abandons the OpenZaurus build
    system, and converts100s of packages to
    OpenEmbedded
  • December 2004 OpenEmbedded is split up into the
    BitBake build system and the OpenEmbedded metadata

15
OpenZaurus
  • OpenEmbedded is the successor to the great
    OpenZaurus project
  • The OpenZaurus project was created as an
    alternative ROM image for the Sharp Zaurus
    Personal Mobile Tool

16
(ROM image)
  • (ROM image computer file which contains a copy
    of the data from a read-only memory chip
  • Software which is being developed for embedded
    computers is often written to ROM files for
    testing on a standard computer before it is
    written to a ROM chip for use in the embedded
    system)

17
OpenZaurus II
  • The project had pushed buildroot to its limits
  • Buildroot set of Makefiles and patches that
    makes it easy generate a cross-compilation
    toolchain and root filesystem for a target Linux
    system using the uClibc C library

18
OpenZaurus III
  • Buildroot supported the creation of ipk packages,
    feeds and images and had support for more than
    one machine
  • But gt impossible to use different patches, ?les
    for different architectures, machines or
    distributions
  • (ipk lightweight package management system
    designed specifically for use in Linux devices
    with limited storage)

19
OpenEmbedded
  • OpenEmbedded was created to overcome this
    shortcoming
  • On 7 December 2004 Chris Larson split the project
    into two parts BitBake, a generic task executor
    and OpenEmbedded, the metadata for BitBake

20
OpenEmbedded II
  • Software framework to create Linux distributions
    for embedded systems
  • This may include bootloader, Linux, and
    applications
  • Is a set of metadata used to cross-compile,
    package and install software packages
  • License GPL

21
Objectives
  • Be self-contained
  • Be able to use external toolchains or build them
  • Easily cross-compile software, build packages or
    create root-?lesystems
  • Easily add new features, machines, architectures,

22
BitBake I
  • OpenEmbedded built tool
  • Controls how to build things and the build
    dependencies
  • Collects and manages an open set of largely
    independent build descriptions (package recipes)
    and builds them in proper order

23
BitBake II
  • Used to compile different Linux kernels for a
    variety of PDAs
  • Easier to use (in theory) than manually using
    tools like patch and make
  • Programming language Python
  • License GNU General Public License (GPL), MIT/X
    Consortium License

24
Process of Making Images
Binary Packages
BitBake Recipes
Flash Image
Task Graph
25
BitBake File and Data Types
  • Three different file types
  • .conf configuration data
  • .bbclass (build) classes
  • .bb (.inc) package recipes
  • BitBake parses the build classes, config files,
    and recipes
  • For every task BitBake creates a shell script
    on-the-fly and executes it

26
Main Tasks
TASK DESCRIPTION FUNCTION
Fetch Downloads data from upstream do_fetch()
Unpack Unpacks data do_unpack()
Patch Applies patches do_patch()
Configure Configures the source tree do_configure()
Compile Compiles the source tree do_compile()
Stage Installs to the staging area do_stage()
Install Installs into the packaging are do_install()
Package Creates packages do_package()
27
BitBake Recipe
  • DESCRIPTION "Hello world program
  • PR "r0
  • SRC_URI "file//myhelloworld.c \
    file//README.txt
  • do_compile()
  • CC CFLAGS LDFLAGS WORKDIR/myhelloworl
    d.c -o myhelloworld
  • do_install()
  • install -m 0755 -d Dbindir
    Ddocdir/myhelloworld
  • install -m 0644 S/myhelloworld Dbindir
  • install -m 0644 WORKDIR/README.txt
    Ddocdir/myhelloworld

28
Summary I
  • OpenEmbedded A metadata repository containing
  • Build classes
  • Machine configurations
  • Distribution policies
  • Recipes
  • To create complete embedded Linux distributions
    from scratch

29
Summary II
  • BitBake A simple tool to execute tasks on
    metadata
  • Parser to handle metadata
  • Package graph to handle package interdependencies
  • Task graph to handle task interdependencies
  • On-the-fly shell script generator

30
Why all this?
  • SlugOS/BE is a replacement firmware image for the
    Linksys NSLU2
  • It is produced using OpenEmbedded

31
  • Questions?
Write a Comment
User Comments (0)
About PowerShow.com