Changes

How to get the Poky Linux distribution

9,400 bytes removed, 13:55, 26 July 2013
== #REDIRECT:[[How to get use the Poky Yocto Project to develop Embedded Linux distribution ==]]
[http://www.pokylinux.org/about Poky] is an open source platform build tool. It is a complete software development environment for = How to get the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Yocto Linux, the X Window System and GNOME Mobile based application frameworks for both x86 and ARM based platforms. Key features include:distribution =
*Full, fast, cross device filesystem creation with '''It's not an embedded Linux Kernel 2.6.x, GCC, GNU C library, Busybox, networking and much more.*Highly configurable and extendable with full documentation, granular feature control, packaging, and wide machine coverage.*Developer friendly with QEMU device virtulisation, SDK generation, Anjuta IDE, OProfile and GDB integration.*Complete GNOME Mobile platform with the X Window System, Matchbox, GTK+ 2.12, D-Bus, GStreamer and distribution – it creates a custom one for you''Sato' reference implementation.*Support for bleeding edge OpenGL user interfaces with the Clutter toolkit.*A supported, stable and proven base for real world products built on Linux and open source software.
=== Overview Much of How-To ===This this How-To is meant extracted from different sources. If you would like to be a starting point for people to learn build and run Poky images for IGEP v2 devices as quickly read some of the original articles or resources, please visit them and easily as possible.thank the authors:
This How-To works with the '''Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine''' but most of the contents are valid also for other GNU/Linux distributions. We do not issue any guarantee that this will work on other distributions. This How-To will start out by a '''Poky Platform Setup Environment''' introducing you to the Poky environment and the way you can build an Poky-based image. Next, we will cover the '''Poky images supported'''. Lastly, we will learn how to '''Installing and Using the Result on a NFS-mounted root filesystem'''. === Requirements ===*'''Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine''' === Feedback and Contributing ===At any point, if you see a mistake you can contribute to this How-To. ==== How to get involved (http://pokylinux.org/support/) ==== There are many ways to get involved with the Poky The Yocto project. Poky has a friendly community providing informal support and discussion. '''Mailing list''' To subscribe send mail to; poky+subscribe <at> openedhand <dot> com And follow simple instructions in subsequent reply. Archives are available here. '''Bugs''' Problems with Poky should be reported in the bug tracker: http://bugzilla.o-hand.com/ '''IRC''' Chat with the Poky development team and community in #poky on freenode. === References ===Much of this How-To is extracted from different sources. If you would like to read some of the original articles or resources, please visit them and thank the authors: *The Poky website ( http://www.pokylinuxyoctoproject.org/ )*The Poky Handbook Yocto project documentation ( http://www.pokylinux.org/doc/poky-handbook.html )*Using the Anjuta Poky SDK plugin ( http://pokylinuxyoctoproject.org/blog/index.php/2010/03/using-the-anjuta-poky-sdk-plugin documentation )
*The Openembedded website ( http://www.openembedded.org/ )
=== Poky Platform Setup Environment === Poky is derivative of the Open Embedded. In order to function properly, the Virtual Machine need some adaptations of the development system. The first thing we need to do is set Bash as default sh shell, execute<pre>$ sudo dpkg-reconfigure dash</pre>and answer no when asked whether you want to install dash as /bin/sh. So, now, "/bin/sh" file links to "/bin/bash" (not to "/bin/dash"). An other change we need to perform is to change some default settings of the kernel. Edit the /etc/sysctl.conf file as root with your preferred editor and set the vm.mmpap_min_addr to 0<pre>$ sudo nano /etc/sysctl.confvm.mmap_min_addr = 0</pre>then, run this command<pre>$ sudo sysctl -p</pre> Install extra packages necessary for bitbake to function.<pre>$ sudo apt-get update$ sudo aptitude install subversion cvs git-core \ build-essential help2man diffstat texi2html texinfo \ libncurses5-dev gawk python-dev python-psyco python-pysqlite2 \ scrollkeeper gnome-doc-utils gettext automake mercurial libx11-dev \ libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev</pre> ==== Poky version 3.2 codename Purple (stable branch) ====Poky version 3.2 ( stable branch) is available from a GIT repository located at git://git.igep.es/pub/scm/poky.git. The first thing you will do is clone the Poky project. <pre>$ git clone git://git.igep.es/pub/scm/poky.gitInitialized empty Git repository in /home/eballetbo/Software/staging/poky/.git/remote: Counting objects: 52944, done.remote: Compressing objects: 100% (16209/16209), done.remote: Total 52944 (delta 34820), reused 52910 (delta 34806)Receiving objects: 100% (52944/52944), 35.52 MiB | 249 KiB/s, done.Resolving deltas: 100% (34820/34820), done.</pre>Then, switch to stable branch (Purple v3.2)<pre>$ cd poky$ git checkout origin/release/purple -b release/purplewarning: You appear to be on a branch yet to be born.warning: Forcing checkout of origin/release/purple.Branch release/purple set up to track remote branch refs/remotes/origin/release/purple.Switched to a new branch "release/purple"</pre>After that, you need to link an user board configuration (local.conf). The configuration file who defines various configuration variables which govern what Poky platform does.<pre>$ ln -s ../../meta-contrib/build/conf/local.conf.igep0020 build/conf/local.conf</pre> At this point the Poky build environment needs to be set up, you will do this with the poky-init-build-env script. Sourcing this file in a shell makes changes to PATH and sets other core bitbake variables based on the current working directory. ==== Poky (development branch) ====The 'master' is where the development work takes place and you should use this if you're after to work with the latest cutting edge developments. It is possible trunk can suffer temporary periods of instability while new features are developed and if this is undesirable we recommend using one Overview of the release branches.  Poky (development branch) is available from a GIT repository located at git://git.pokylinux.org/poky.git. The first thing you will do is clone the Poky project. <pre>$ git clone git://git.pokylinux.org/poky.git</pre> After that, you need to create an user configuration (local.conf). The configuration file who defines various configuration variables which govern what Poky platform does. <pre>$ mkdir -p build/conf</pre>And create with your preferred editor the build/conf/local.conf file, the result will be like this: <pre># Where to cache the files Poky downloadsDL_DIR ?= "${OEROOT}/sources"BBFILES += "\ ${OEROOT}/meta/packages/*/*.bb \ ${OEROOT}/meta-moblin/packages/*/*.bb" BBFILE_COLLECTIONS = "normal moblin"BBFILE_PATTERN_normal = "^${OEROOT}/meta/"BBFILE_PATTERN_moblin = "^${OEROOT}/metaHow-moblin/" BBFILE_PRIORITY_normal To = "5"BBFILE_PRIORITY_moblin = "5"
# Uncomment and set This How-To is meant to allow bitbake be a starting point for people to execute multiple tasks at once.# For a quadcore, BB_NUMBER_THREADS = "4", PARALLEL_MAKE = "learn build and run Yocto-j 4" would# be appropriatebased images for IGEP Technology devices as quickly and easily as possible.# BB_NUMBER_THREADS = "4"# Also, make can be passed flags so it run parallel threads e.g.:# PARALLEL_MAKE = "-j 4"
# The machine to targetMACHINE ?= "igep0020b"= About the Yocto Project™ ==
TARGET_FPU_arm ?= "hard"The [http://www.yoctoproject.org Yocto Project™] is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. It was founded in 2010 as a collaboration among many hardware manufacturers, open-source operating systems vendors, and electronics companies to bring some order to the chaos of embedded Linux development.
# Other supported machines#MACHINE ?= "qemux86"#MACHINE ?= "qemuarm"#MACHINE ?Why use the Yocto Project™ = "c7x0"#MACHINE ?= "akita"#MACHINE ?= "spitz"#MACHINE ?= "nokia770"#MACHINE ?= "nokia800"#MACHINE ?= "fic-gta01"#MACHINE ?= "bootcdx86"#MACHINE ?= "cm-x270"#MACHINE ?= "em-x270"#MACHINE ?= "htcuniversal"#MACHINE ?= "mx31ads"#MACHINE ?= "mx31litekit"#MACHINE ?= "mx31phy"#MACHINE ?= "netbook"#MACHINE ?= "zylonite"
DISTRO ?= "poky"# For bleeding edge / experimental / unstable package versions# DISTRO ?= "pokyBecause it's a complete embedded Linux development environment with tools, metadata, and documentation -bleeding"everything you need. The free tools are easy to get started with, powerful to work with (including emulation environments, debuggers, an Application Toolkit Generator, etc.) and they allow projects to be carried forward over time without causing you to lose optimizations and investments made during the project’s prototype phase. The Yocto Project fosters community adoption of this open source technology allowing its users to focus on their specific product features and development
# Poky has various extra metadata collections (openmoko, extras).# To enable these, uncomment all (or some of) the following lines:# BBFILES = "\# ${OEROOT}/meta/packages/*/*.bb \# ${OEROOT}/meta-extras/packages/*/*.bb \# ${OEROOT}/meta-openmoko/packages/*/*.bb \# ${OEROOT}/meta-moblin/packages/*/*.bb \# "# BBFILE_COLLECTIONS = "normal extras openmoko moblin"# BBFILE_PATTERN_normal Build Platform Setup Environment = "^${OEROOT}/meta/"# BBFILE_PATTERN_extras = "^${OEROOT}/meta-extras/"# BBFILE_PATTERN_openmoko = "^${OEROOT}/meta-openmoko/"# BBFILE_PATTERN_moblin = "^${OEROOT}/meta-moblin/"# BBFILE_PRIORITY_normal = "5"# BBFILE_PRIORITY_extras = "5"# BBFILE_PRIORITY_openmoko = "5"# BBFILE_PRIORITY_moblin = "5"
BBMASK = ""In order to build an image with BSP support for a given release, you need to download the corresponding BSP repository. At this time latest stable branch for IGEP devices is denzil.
# EXTRA_IMAGE_FEATURES allows extra packages to be added to the generated images # (Some of these are automatically added to certain image types)# "dbg-pkgs" - add -dbg packages for all installed packages# (adds symbol information for debugging/profiling)# "dev-pkgs" - add -dev packages for all installed packages# (useful if you want to develop against libs in the image)# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)# "tools-debug" - add debugging tools (gdb, strace)# "tools-profile" - add profiling tools (oprofile, exmap, lttng valgrind (x86 only))# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)# "debug-tweaks" $ git clone - make an image for suitable of development# e.g. ssh root access has a blank password# There are other application targets too, see metab denzil git:/classes/poky-imagegit.isee.bbclass # and metabiz/packagespub/tasksscm/task-poky.bb for more details.git
EXTRA_IMAGE_FEATURES = "tools-debug tools-profile tools-testapps debug-tweaks"Enter to the poky directory,
# The default IMAGE_FEATURES above are too large for the mx31phy and # c700/c750 machines which have limited space. The code below limits# the default features for those machines.EXTRA_IMAGE_FEATURES_c7x0 = "tools-testapps debug-tweaks"EXTRA_IMAGE_FEATURES_mx31phy = "debug-tweaks"EXTRA_IMAGE_FEATURES_mx31ads = "tools-testapps debug-tweaks" $ cd poky
# A list of packaging systems used in generated images# The first package type listed will be used for rootfs generation# include 'package_deb' for debs# include 'package_ipk' for ipks#PACKAGE_CLASSES ?= "package_deb package_ipk"PACKAGE_CLASSES ?= "package_ipk"and clone the meta-isee layer.
# POKYMODE controls the characteristics of the generated packages $ git clone -b denzil git:/images by# telling poky which type of toolchain to use/git.## Options include several different EABI combinations and a compatibility # mode for the OABI mode poky previously usedisee. ## The default is "eabi"# Use "oabi" for machines with kernels < 2.6.18 on ARM for example.# Use "externalbiz/pub/scm/meta-MODE" to use the precompiled external toolchains where MODE# is the type of external toolchain to use eisee.g. eabi.# POKYMODE = "external-eabi"git
# Uncomment this to specify where BitBake should create its temporary files.# Note that a full build of everything in OpenEmbedded will take GigaBytes of hard# disk space, so make sure to free enough space. The default TMPDIR is# <build directory>/tmpTMPDIR = " ${OEROOT}/source oe-init-build/tmp-${MACHINE}"env
Having done that, and assuming you downloaded the BSP contents at the top-level of your yocto build tree, you can build a igep image by adding the location of the 'meta-igep' layer to 'bblayers.conf'
# Uncomment this if you are using the Openedhand provided qemu deb - see README# ASSUME_PROVIDED += "qemu-native"Add below line into .../poky/build/conf/bblayers.conf:
# Comment this out if you don't have a 3.x gcc version available and wish# &lt;path to&gt;/poky to build one for you. The 3.x gcc is required to build qemu-native.# ASSUME_PROVIDED += "gcc3/meta-native"isee \
# Uncomment these two if you want BitBake To enable the isee layer, add the 'igep00x0 MACHINE' to .../poky/build images useful for debugging/conf/local.# DEBUG_BUILD = "1"# INHIBIT_PACKAGE_STRIP = "1"conf:
# Uncomment these to build a package such that you can use gprof to profile it.# NOTE: This will only work with 'linux' targets, not# 'linux-uclibc', as uClibc doesn't provide the necessary# object files. Also, don't build glibc itself with these# flags, or it'll fail to build.## PROFILE_OPTIMIZATION MACHINE&nbsp;?= "-pg"# SELECTED_OPTIMIZATION = "${PROFILE_OPTIMIZATION}"# LDFLAGS =+ "-pgigep00x0"
# Uncomment this if you want BitBake You should then be able to emit debugging output# BBDEBUG = "yes"# Uncomment this if you want BitBake to emit the log if build a build fails.BBINCLUDELOGS = "yes"image as such:
# Specifies a location to search for pre $ bitbake demo-generated tarballs when fetching# a cvs:// or svn:// URI. Uncomment this, if you do not want to pull directly# from CVS or SubversionSRC_TARBALL_STASH = "http://pokylinux.org/sources/"image-sato
# Set this if At the end of a successful build, you should have an image that you wish to make pkgconfig libraries could use for boot device from your system available # for native builds. Combined with extra ASSUME_PROVIDEDs this can allow # native builds of applications like oprofileuiflash or a micro-native (unsupported feature)SD card.#EXTRA_NATIVE_PKGCONFIG_PATH = ":/usr/lib/pkgconfig"#ASSUME_PROVIDED += "gtk+-native libglade-native"
ENABLE_BINARY_LOCALE_GENERATION = "1"= Extending the available packages with others layers ==
# The architecture You can append more layers to your environment in order to build SDK items formore packages, by setting this in following wxample you can build SDK# packages for architectures other than 'll download the host i.e. building i586 packages# on an x86_64 hostmeta-openembedded layer.# Supported values are i586 and x86_64SDKMACHINE="i586"</pre>In your poky directory
At this point the Poky build environment needs to be set up, you will do this with the poky $ git clone -init-build-env scriptb denzil git://git. Sourcing this file in a shell makes changes to PATH and sets other core bitbake variables based on the current working directoryopenembedded.org/meta-openembedded
=== Poky images supported ===As discussed above Add the Poky layer into build environment needs to be set up using the following command/conf/bblayers.conf:
<pre>$ source &lt;path to&gt;/poky/meta-initopenembedded/meta-build-env</pre>Once the Poky build environment is set up, a target can now be built using:oe \
<pre>$ bitbake <target></pre>The target is the name of the recipe Now you want to can build. Common targets are any of the images (in meta/new packages/images/) or the name of a recipe added, for a specific piece of software like busybox. For more details about the images have a look to the [httpexample://www.pokylinux.org/doc/poky-handbook.html Poky Handbook]
For example, you will build the Sato image using the following command: $ bitbake postgresql
<pre>$ bitbake poky-== Create your own Linux image-sato</pre>After a long time the complete file system images are placed here,==
<pre> tmp-igep0020/deploy/images/</pre>and any resulting .ipk packages emitted by Poky are placed here.TODO
<pre> tmp-igep0020/deploy/ipk/</pre>== Yocto 1.2 'denzil' documentation ==
==== Images supported for stable branch (Purple 3.2) ===='''Official documentation'''
Refer * [http://www.yoctoproject.org/docs/1.2/yocto-project-qs/yocto-project-qs.html Yocto Project Quick Start]: This short document lets you get started with the Yocto Project quickly and start building an image.* [http://www.yoctoproject.org/docs/1.2/adt-manual/adt-manual.html The Yocto Project Application Development Toolkit (ADT) User's Guide]: This manual provides information that lets you get going with the ADT to develop projects using the Yocto Project.* [http://www.pokylinuxyoctoproject.org/docdocs/1.2/bsp-guide/pokybsp-handbookguide.html#refThe Yocto Project Board Support Package (BSP) Developer's Guide]: This brief document defines a structure for BSP components. Having a commonly understood layout encourages standardization.* [http://www.yoctoproject.org/docs/1.2/dev-manual/dev-images manual.html The Yocto Project Development Manual]: This Manual provides an overview of the development process for standard imagesand user-space applications.* [http://www.yoctoproject.org/docs/1.2/poky-ref-manual/poky-ref-manual.html The Yocto Project Reference Manual]: This manual is the complete reference guide to the Yocto Project, including the Poky reference system which contains a worki
Refer to [[Ubuntu804IGEPv20SDKVirtualMachine|Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine]] to how to install and use poky images on a NFS-mounted root filesystem.= See also =
--- That's all folks ---*[[How to get the Angstrom distribution]] *[[How to get the Ubuntu distribution]] *[[How to get the Linaro distribution]] *[[How to get the Android distribution]] *[[How to get the Meego distribution]]
[[Category:Software distributionsSoftware_distributions|Poky]]
0
edits