Skip to content

General

Krytskiy Andrey edited this page Oct 8, 2016 · 13 revisions

Poky folders structure

poky                         - root of git repository
  bitbake                    - bitbake executable files (python utils)
  build                      - build results (auto created when run `source oe-init-build-env`)
  documentation              - don`t used
  scripts                    - Poky utils (e.g. oe-init-build-env)
  meta                       - Layer from OpenEmbedded (OE)
  meta-poky                  - (WTF) Layer from OpenEmbedded for Poky
  meta-selftest              - Layer for self test (used by scripts/oe-selftest)
  meta-skeleton              - This directory contains template recipes for BSP and kernel development
  meta-yocto                 - (WTF) This directory contains the configuration for the Poky reference distribution
  meta-yocto-bsp             - Yocto Project reference hardware Board Support Packages

Terms

  • BitBake - The task executor and scheduler used by the OpenEmbedded build system to build images
  • Image - An artifact of the BitBake build process. Images are the binary output that run on specific hardware or QEMU.
  • Layer - A collection of recipes representing the core, a BSP, or an application stack
  • Metadata - The files that BitBake parses when building an image. In general, Metadata includes recipes, classes, and configuration files
  • Recipe - A set of instructions for building packages
  • Classes - Files that provide for logic encapsulation and inheritance so that commonly used patterns can be defined once and then easily used in multiple recipes. Class files are used to abstract common functionality and share it amongst multiple recipe (.bb) files
  • Package - In the context of the Yocto Project, this term refers to a recipe's packaged output produced by BitBake
  • Task - A unit of execution for BitBake.
  • Append Files - Recipes used to append Metadata to other recipes are called BitBake append files. BitBake append files use the .bbappend file type suffix, while the corresponding recipes to which Metadata is being appended use the .bb file type suffix. A .bbappend file allows your layer to make additions or changes to the content of another layer's recipe without having to copy the other recipe into your layer
  • Source Directory - This term refers to the directory structure created as a result of creating a local copy of the poky Git repository git://git.yoctoproject.org/poky or expanding a released poky tarball. Recommended name is 'Poky'
  • Build Directory - This term refers to the area used by the OpenEmbedded build system for builds. The area is created when you source the setup environment script that is found in the Source Directory (i.e. oe-init-build-env or oe-init-build-env-memres). The TOPDIR variable points to the Build Directory

Images types

  • core-image-base - A console-only image that fully supports the target device hardware.
  • core-image-core - An X11 image with simple applications such as terminal, editor, and file manager.
  • core-image-minimal - A small image just capable of allowing a device to boot.
  • core-image-minimal-dev - A core-image-minimal image suitable for development work.
  • core-image-minimal-initramfs - A core-image-minimal image that has the Minimal RAM-based Initial Root Filesystem (initramfs) as part of the kernel, which allows the system to find the first “init” program more efficiently.
  • core-image-minimal-mtdutils - A core-image-minimal image that has support for the Minimal MTD Utilities, which let the user interact with the MTD subsystem in the kernel to perform operations on flash devices.
  • core-image-basic - A foundational basic image without support for X that can be reasonably used for customization.
  • core-image-lsb - A core-image-basic image suitable for implementations that conform to Linux Standard Base (LSB).
  • core-image-lsb-dev - A core-image-lsb image that is suitable for development work.
  • core-image-lsb-sdk - A core-image-lsb that includes everything in meta-toolchain but also includes development headers and libraries to form a complete standalone SDK. See the External Development Using the Poky SDK section for more information.
  • core-image-clutter - An image with support for the Open GL-based toolkit Clutter, which enables development of rich and animated graphical user interfaces.
  • core-image-sato - An image with Sato support, a mobile environment and visual style that works well with mobile devices. The image supports X11 with a Sato theme and Pimlico applications and also contains terminal, editor, and file manager.
  • core-image-sato-dev - A core-image-sato image suitable for development that also includes a native toolchain and libraries needed to build applications on the device itself. The image also includes testing and profiling tools as well as debug symbols. This image was formerly core-image-sdk.
  • core-image-sato-sdk - A core-image-sato image that includes everything in meta-toolchain. The image also includes development headers and libraries to form a complete standalone SDK. See the External Development Using the Poky SDK section for more information.

Machine variables

  • acpi - This indicates that the hardware has ACPI (x86/x86_64 only)
  • alsa - This indicates that the hardware has ALSA audio drivers
  • apm - This indicates that the hardware uses APM (or APM emulation)
  • bluetooth - This indicates that the hardware has integrated Bluetooth
  • ext2 -This indicates that the hardware has HDD or microdrive
  • irda - This indicates that the hardware has an IrDA support
  • keyboard - This indicates that the hardware has a keyboard
  • pci - This indicates that the hardware has a PCI bus
  • pcmcia - This indicates that the hardware has PCMCIA or CompactFlash sockets
  • screen - This indicates that the hardware has a screen
  • serial - This indicates that the hardware has serial support (usually RS232)
  • touchscreen - This indicates that the hardware has a touchscreen
  • usbgadget - This indicates that the hardware is compatible with USB gadget devices
  • usbhost - This indicates that the hardware is compatible with the USB host
  • wifi - This indicates that the hardware has integrated Wi-Fi

Distro variables

  • alsa - This includes ALSA support (OSS compatibility kernel modules installed, if available)
  • bluetooth - This includes Bluetooth support (integrated BT only)
  • cramfs - This includes CramFS support
  • ext2 - This includes tools to support devices with internal HDD/microdrives to store files (instead of flash-only devices).
  • ipsec - This includes IPSec support.
  • ipv6 - This includes IPv6 support.
  • irda - This includes IrDA support.
  • keyboard - This includes keyboard support (for example, keymaps will be loaded during boot).
  • nfs - This includes NFS client support (to mount NFS exports on devices).
  • opengl - This includes the Open Graphics Library, a cross-language, multiplatform application programming interface used for rendering two- and three-dimensional graphics.
  • pci - This includes PCI bus support.
  • pcmcia - This includes the PCMCIA/CompactFlash support.
  • ppp - This includes PPP dialup support.
  • smbfs - This includes SMB networks client support (to mount Samba/Microsoft Windows shares on devices).
  • systemd - This includes support for the init manager, a full replacement of init with parallel starting of services, reduced shell overhead, and other features. This initmanager is used by many distributions.
  • usbgadget - This includes USB gadget device support (for USB networking/serial/storage).
  • usbhost - This includes USB host support (allows the connection of an external keyboard, mouse, storage, network, and so on)
  • wayland - This includes the Wayland display server protocol and the library that supports it.
  • wifi - This includes Wi-Fi support (integrated only)

Variables scope

  • Variables defined in configuration files are global to every recipe. The parsing order of the main configuration files is shown as follows
    • build/conf/local.conf
    • /conf/machines/.conf
    • /conf/distro/.conf
  • Variables defined within recipe files are local to the specific recipe only during the execution of its tasks
Clone this wiki locally