Cross-compilation with OpenEmbedded LinuxTag 2008 Robert Schuster OpenEmbedded.

Slides:



Advertisements
Similar presentations
OpenEmbedded & BitBake
Advertisements

Its not an embedded Linux distribution – It creates a custom one for you. Yu Ke Intel Corporation July, 2011 Developing Embedded Linux Devices Using the.
Linux Operating System Linux is a free open-source operating system based on Unix. Linux was originally created by Linus Torvalds with the assistance of.
© Leaf Solutions, LLC. All Rights Reserved What’s New in Everett Microsoft.Net V1.1.
VMWare to Hyper-V FOR SERVER What we looked at before migration  Performance – Hyper-V performs at near native speeds.  OS Compatibility – Hyper-V.
© Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Installing software on personal computer
Android 4: Creating Contents Kirk Scott 1. Outline 4.1 Planning Contents 4.2 GIMP and Free Sound Recorder 4.3 Using FlashCardMaker to Create an XML File.
Hyrax Installation and Customization Dan Holloway James Gallagher.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Module 1: Installing Windows XP Professional. Overview Manually Installing Windows XP Professional Automating a Windows XP Professional Installation Using.
Beagleboard and Friends Nathan Gough. Hardware – OMAP3  Based around Texas Instruments OMAP3530 “Applications Processor”  OMAP3 Platform:  Arm Cortex-A8.
Ashita Srivastava ISM High Five Corporations Chain of fast food restaurants Using Windows XP for clients and Windows Server 2008 Needs a robust.
Parts of a Computer Why Use Binary Numbers? Source Code - Assembly - Machine Code.
Linux Operations and Administration
Wave Relay System and General Project Details. Wave Relay System Provides seamless multi-hop connectivity Operates at layer 2 of networking stack Seamless.
Arago Project Creating an Open Integration and Distribution System William Mills
OpenEmbedded as used by the Angstrom distribution Koen Kooi Texas Instruments Ltd.
Lab 11 Department of Computer Science and Information Engineering National Taiwan University Lab11 - Porting 2014/12/9/ 26 1.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
March 11, 2008 USCMS Tier-2 Workshop Oh Dear God Alain made a PowerPoint presentation 1.
Samba – Good Just Keeps Getting Better The new and not so new features available in Samba, and how they benefit your organization. Copyright 2002 © Dustin.
Presentation Name / 1 Visual C++ Builds and External Dependencies NAME.
Maite Barroso - 10/05/01 - n° 1 WP4 PM9 Deliverable Presentation: Interim Installation System Configuration Management Prototype
Abdullah Alshalan Garrett Drown Group #4 CSE591 - Virtualization and Cloud Computing.
My NSLU2 (slug + urchin = slurchin?) Open Source Software Carlos Ramirez Martinez-Eiroa Professor: Corby Schmitz.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Embracing Embedded Environments for Development Success By : Mark Recoskie.
From VME/RTEMS to Industrial PC/LinuxRT: A Migration Story Mitch D’Ewart May EPICS Collaboration Meeting May 2015.
Embedded Linux By Gus Wirth. What makes it embedded? ● Rather nebulous, line has blurred over the years ● Limited purpose ● Small resources compared to.
Why OpenEmbedded proved a good foundation for MontaVista Cedric Hombourger Solutions & Services Architect.
Cross-compiling With Gentoo Mike Frysinger Gentoo Developer February 25, 2006
Linux Kernel Security (SELinux vs AppArmor vs Grsecurity)
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Videolösungen © DResearch 2009 The build framework for embedded Linux Thilo Fromm, März 2010.
Robert Schuster Sebastian Mancke Java-Linux-Mobile Plattform.
(C) 2009 Yann E. MORIN1 Embedded Linux Conference / Europe - October 2009 Building our own toolchains for our embedded projects: Why, and how.
1 Buildroot. Building embedded Linux systems. Buildroot Developer Day.
OpenMoko Shakthi Kannan October 2007
Computer Technology Project Distros Lars Noodén
FreeBSD ports & packages. FreeBSD ports & packages - overview Different UNIX distributions use differents package systems for distributing software Debian.
Computer Technology Project
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
CS5220 Advanced Topics in Web Programming Version Control with Git
What is F/LOSS? By Scot Henderson.
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Development Environment
Installation of the ALICE Software
Build Automation with Gradle
CELF Embedded BOF - Ottawa - July 2008
Open Source Software Development Environment
CCNA Routing and Switching Routing and Switching Essentials v6.0
CS5220 Advanced Topics in Web Programming Version Control with Git
Automated Update System
Project Topic 2: Migration to Java 9
Libreroot – Deblobbing Buildroot
Chapter 10: Device Discovery, Management, and Maintenance
CCNA Routing and Switching Routing and Switching Essentials v6.0
Microsoft Build /13/2018 2:24 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Embedded Linux Conference - April 2009
Chapter 10: Device Discovery, Management, and Maintenance
Analysis models and design models
JENKINS TIPS Ideas for making your life with Jenkins easier
Procedural Information Extraction from Text:
FreeBSD ports & packages
Git Introduction.
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Module 02 Operating Systems
Presentation transcript:

Cross-compilation with OpenEmbedded LinuxTag 2008 Robert Schuster OpenEmbedded

Scope & limitation of this talk ● nurture your interest ;-) ● make purpose clear ● scratch surface on how things work Limitation: ● OE's flexibility makes it impossible to present all aspects

... but we have a manual!

OpenEmbedded in one sentence OE is a build environment that provides the necessary metadata to automate the tasks in the generation of a cross-compiled GNU/ Linux distribution.

Usage scenarios ● standalone GNU/Linux distribution (e.g. Angstrom, OpenMoko, Poky,...) ● build compatible packages for an existing non-OE- built distribution (e.g. for Maemo, OpenWRT or a pre-installed 'vendor-Linux'

Parties involved ● bitbake task executor – similar to 'make', processes OE metadata ● OE metadata – build recipes, machine and distribution configurations ● your personal configuration file – selects machine and distribution

How it works ● run bitbake with a target (e.g. 'bitbake nano') ● bitbake parses metadata and personal configuration ● results in dependency graph of tasks ● bitbake works through all the tasks* * fetch sources, unpack, apply patches, compile, copy to staging dir, create package/image

All this is not entirely new! ● buildroot (OpenWRT/FreeWRT) ● Scratchbox (Maemo) ● T2 SDE ● emdebian ● Fedora Embedded

Adaptability makes OE unique

A short story about OpenEmbedded adaptability

Imagine you have* an embedded device... * or are designing one.

... and for whatever good reason you want a GNU/Linux-based system on it.

You also know that GNU/Linux means choice!

The important point is that you have to define the software set that fits your device best.

When it comes to defining this software set OpenEmbedded really shines. PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" PREFERRED_PROVIDER_virtual/libc = "uclibc" PREFERRED_VERSION_uclibc ?= "0.9.29" PREFERRED_VERSION_busybox = "1.9.2"...

If you don't want to start from zero inherit from an existing distribution: # Distribution Openmoko Linux Distribution Configuration for the Openmoko Platform # require conf/distro/include/preferred-om-2008-versions.inc require conf/distro/include/angstrom-2007-for-openmoko.inc

Strengths ● Reproducable builds: – set up build environment for different team members ● Features: – create standalone toolchains – define different root file system images (e.g. for development & production)

Strengths ● Builds from source – no binary blobs "If it isn't source, it isn't software." (ad from Cygnus Support, ~1990)

Weaknesses ● steep learning curve – having an experienced mentor helps considerably ●.dev branch (think CVS HEAD) is prone to break – use.stable branch instead :-) ● VCS operations are really slow – transition to git is around the corner ● 'bitbake' is not as fast as pure 'make'

Device software build with OE ● Angstrom (OE's default distro) ● OpenMoko (Mobile phone stack) ● Poky (prototyping) ● Unslung/Ucslugc (distros for Linksys NSLU2) ● many customer projects Buyable: ● iRex Iliad (Ereader)

Chances ● grok OpenEmbedded today ● gain ability to target many different devices (~150) ● make use of other OE contributors' work – e.g. someone puts in Java support for their own needs; then your distro can use it, too

Bitbake recipe anatomy I DESCRIPTION = "Routing protocol daemon for multi-hop ad-hoc mesh networks." SECTION = "console/network" PRIORITY = "optional" LICENSE = "GPL" HOMEPAGE = " Basic package information:

Bitbake recipe anatomy II RDEPENDS = "kernel-module-tun" SRC_URI = "\ batman/stable/sources/batman-0.3.tar.gz \ file://makefile-fix.patch;patch=1 \ " Runtime dependencies, source location, patches to apply: The source is downloaded, the patch is part of OE. Fetcher also supports cvs, svn, git, hg, bzr.

Bitbake recipe anatomy III S = "${WORKDIR}/batman-${PV}" do_compile() { oe_runmake } Source location after unpacking, compilation step: Provides -j option (set in your personal configuration).

Bitbake recipe anatomy IV do_stage() { : } do_install() { install -d ${D}${bindir} install -m 0755 batmand ${D}${bindir} } Staging and installation: Do nothing. No one compiles against this package Copies what should end up in the binary package.