OE-Bakery

From DorePublicWiki

(Redirected from OpenEmbeddedBakery)
Jump to: navigation, search

Contents

Purpose

The initial idea for developing OE-Bakery was to come up with a simple tool to make it easier to handle setup of OpenEmbedded development environments without layering Make on top of BitBake.

Design Goals

  • It should be possible to setup any OpenEmbedded development environment with a single command
  • It must be flexible enough to handle very complex environments
  • It must be simple enough to be attractive to use for very simple environments (like fx. standard openembedded.org stable/2009 development environment)
  • Build on top of current "best practices" of how to work with OpenEmbedded development environments
  • Re-use existing infrastructure (like BitBake and Git) as much as possible

The tool

The resulting OE-Bakery tool is a small Python command-line tool called 'oe'. It supports a number of commands in a style similar to git, allowing for

  • clone an existing OpenEmbedded development environment
  • initialize an OpenEmbedded development environment based on a configuration file
  • update the setup of an OpenEmbedded development environment
  • build BitBake recipes and their dependencies (from any directory in the OpenEmbedded development environment)
  • switching between multiple tmp directories

More features are planned, including

  • manage tarball stash server
  • pre-downloading of ingredients from tarball stash server
  • combined status for all Git repositories in the OpenEmbedded development environment

Getting Started

Enough talking. Let's try it!

Installation

To install OE-Bakery you can

If you are using Debian or Ubuntu, you most likely will want to use the Launchpad PPA method.

If you are using something else, it is up to you. Using easy_install is very easy (as the name suggests...), but you might want to consider the --prefix option, to avoid littering your /usr directory. If you don't have Python setuptools (provides easy_install), you can just download OE-Bakery and install with setup.py instead.

Installing on Ubuntu 9.10

To install OE-Bakery on Ubuntu 9.10, run the following commands:

sudo add-apt-repository ppa:esben-haabendal/oebakery
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 699DB381
sudo apt-get update
sudo apt-get install python-oe-bakery

Installing on Debian or older Ubuntu distributions

Create /etc/apt/sources.list.d/ppa-oebakery.list with

deb http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu jaunty main 
deb-src http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu jaunty main 

for Ubuntu 9.04 and Debian 5.0, or

deb http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu intrepid main 
deb-src http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu intrepid main 

for Ubuntu 8.10, or

deb http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu hardy main 
deb-src http://ppa.launchpad.net/esben-haabendal/oebakery/ubuntu hardy main

for Ubuntu 8.04 LTS.

Then run

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 699DB381
sudo apt-get update
sudo apt-get install python-oe-bakery

Installing with easy_install

Make sure you have setuptools installed. On Ubuntu:

sudo aptitude install python-setuptools

And then install OE-Bakery

sudo easy_install oe-bakery
Upgrading with easy_install

If using easy_install, upgrading to newest version of OE-Bakery is simply:

sudo easy_install -U oe-bakery

If easy_installed is not used, upgrading using tar.gz file is done by repeating the initial installation procedure as described above in "Installing using tar.gz file".

Installing from downloaded tarball

Download OE-Bakery distribution. Pick the newest version from http://dev.doredevelopment.dk/oe-bakery/

Unpack it, and change into the extracted directory, and run the installer:

sudo python setup.py install

Cloning a Bakery

To start working with the stable/2009 branch from OpenEmbedded, you can clone the OE-Bakery setup for this I have prepared:

oe clone git://dev.doredevelopment.dk/bakeries/stable-2009.git

FIXME: this has not been setup yet!!!

Building

from the directory created by the 'oe clone' command above, or any sub-directory underneat it:

oe bake bootstrap-image meta-toolchain

This will build target images and an external toolchain tarball.

The target images will be deployed in tmp/deploy/images

The toolchain tarball will be deployed in tmp/deploy/sdk

You can change the target machine, OpenEmbedded distribution and toolchain host machine you are building for in conf/local.conf

Personal tools