& based environment Marcin Juszkiewicz marcin@juszkiewicz.com.pl http://marcin.juszkiewicz.com.pl ST-Ericsson Community Workshop 2009
Some information about me Bought Sharp Zaurus SL-5500 in February 2003 Joined team in 2003 OpenZaurus distribution maintainer in 2005-2006 Created own company for & Poky consulting in 2006 Became developer in 2007 Worked on porting Poky for NDK-15 in 2007 Bug Linux developer since 2008
Introduction Getting Poky Requirements Building Poky What is? Poky is build system which can be used to build single binaries, toolchains, root filesystems etc. When it comes to software Poky s metadata contains thousands of recipes for applications, libraries, fonts etc. Target rootfs can contain minimal system but also much bigger ones with SDK integrated for building software on device itself are available.
Introduction Getting Poky Requirements Building Poky Building applications, toolchains, SDKs, root filesystems Handling of cross-compilation Building all required tools and libraries before compilation of target package Independency from host distribution or architecture Generation of target packages with inter-packages dependencies Big granulation of packages (documentations, i18n goes to separate packages)
Introduction Getting Poky Requirements Building Poky continues Simple format of package recipes and machine configs Ability to define own tasks inside of recipe. Building with device/architecture/distro defined overrides Optimizations for sub-architectures Soft-float support for ARM cpus without FPU
Introduction Getting Poky Requirements Building Poky Getting Poky Fetch: git clone git://git.pokylinux.org/poky Add ST-Ericsson overlay
Introduction Getting Poky Requirements Building Poky Requirements Fast computer with Linux (Debian or Ubuntu preferred) Few gigabytes of storage to make build Serial port (real or USB adapter) Network connection to NHK-15
Introduction Getting Poky Requirements Building Poky Building Poky First setup everything: bash$ source poky-init-build-env Run build: bitbake oh-image-nomadik Wait few hours Install kernel and image on NHK-15 (both are present in tmp/deploy/images/ directory)
Introduction Getting Poky Requirements Building Poky oh-image-nomadik - default NHK-15 demo image poky-image-sato - default Poky X11 image poky-image-sdk - X11 image with on-board SDK virtual/kernel - kernel for device meta-toolchain - toolchain for your host
What is What is Getting Building Why OE instead of Set of metadata which describe how to build software Fully open (MIT license) solution of all problems with cross-compilation System created and maintained by passionates Project independent from any commercial company Project which allows to create single apps, whole root filesystems by one command. Tool which generates root filesystems in many formats Answer for distributions which use 200MB for "base" system
About author What is Getting Building Why OE instead of OE was created in 2002 as a tool to build next version of OpenZaurus. It had to replace hacked buildroot. OpenZaurus 3.5.1 was released in September 2003. Big success. Other distributions joined: Familiar, NSLU2 team, JLime. 2009: Palm Pre was released with OE generated system, Garmin released devices with based system MontaVista uses OE as base for new version of MV Linux
About author What is Getting Building Why OE instead of Building applications, toolchains, SDKs, root filesystems, whole distributions Handling of cross-compilation Allows to use glibc, eglibc, uclibc, dietlibc, different gcc & binutils combos Building all required tools and libraries before compilation of target package Independency from host distribution or architecture Simple format of package recipes and machine configs Ability to define own tasks inside of recipe.
continues About author What is Getting Building Why OE instead of Generation of target packages with inter-packages dependencies Big granulation of packages (documentations, i18n goes to separate packages) Building with device/architecture/distro defined overrides Possibility of cooperation of many projects in one metadata Handling of many architectures: ARM, PowerPC, SH, x86, x86-64, MIPS Optimizations for sub-architectures (omap3 gets NEON, VFP, EP93xx gets Maverick support) Soft-float support for ARM and PowerPC cpus without FPU
continues again What is Getting Building Why OE instead of Many environments available: text console, OPIE, GPE, GNOME, XFCE... Many GUI toolkits available: Qt, Qt/Embedded, Gtk+, Tk, Fltk... Many server daemons available Lot of development tools available
Getting What is Getting Building Why OE instead of Fetch: git clone git://git.openembedded.org There are few branches of OE: org.openembedded.dev - development, fast moving version stable/2009 - stable version with small amount of changes
Building What is Getting Building Why OE instead of First setup everything Run build: bitbake x11-image Wait few hours Install kernel and image on NHK-15 (both are present in tmp/deploy/ directory)
About author What is Getting Building Why OE instead of micro-base-image - minimal console image (BusyBox + SSH server) console-image - text console image x11-image - default X11 image with GPE beagleboard-demo-image - big X11 + E17 image with many applications preinstalled virtual/kernel - kernel for device meta-toolchain - toolchain for your host
About author What is Getting Building Why OE instead of NHK-15 board support exists on my HDD Images works with ST kernel Waiting for official mainline kernel to be usable Waiting for permission to publish some of Nomadik patches
Why OE instead of What is Getting Building Why OE instead of Bigger set of software available Other X11 environments available Non-X11 systems are available No need to build software - there are repositories with packages