# The Yocto Project Development Manual

WRITER NOTE: The goal of this manual is to provide an over-arching development guide for using the Yocto Project. The intent is to give the reader the “big picture” around development. Much of the information in the manual will be detailed in other manuals. For example, detailed information on Git, repositories and open-source in general can be found in many places. Another example is getting set up to use the Yocto Project, which our Yocto Project Quick Start covers. However, this manual needs to at least address it. One might ask “What becomes of the Poky Reference Manual?” This manual, over time, needs to develop into a pure reference manual where all procedural information eventually ends up in an appropriate guide. A good example of information perfect for the Poky Reference Manual is the appendix on variable definitions (glossary).

## Introduction

Welcome to the Yocto Project Development Guide! This guide provides a general view of the development process using the Yocto Project. This guide is just that – a guide. It helps you understand the bigger picture involving development using the Yocto Project.

## What this Manual Provides

The following list describes what you can get from this guide:

- Information that lets you get set up to develop using the Yocto Project.

- Information to help developers that are new to the open source environment and to the distributed revision control system Git, which the Yocto Project uses.

- An understanding of common end-to-end development models.

- Development case overviews for both system development and user-space applications.

- An overview and understanding of the emulation environment used with the Yocto Project (QEMU).

- A discussion of target-level analysis techniques, tools, tips, and tricks.

- Considerations for deploying your final product.

- An understanding of basic kernel architecture and concepts.

- Information that will help you migrate an existing project to the Yocto Project development environment.

- Many references to other sources of related information.

## What this Manual Does Not Provide

This manual will not give you the following:

- Step-by-step instructions if those instructions exist in other Yocto Project documentation. For example, The Application Development Toolkit (ADT) User’s Guide contains detailed instruction on how to obtain and configure the Eclipse Yocto Plug-in.

- Reference material. This type of material resides in an appropriate reference manual. For example, system variables are documented in the Poky Reference Manual.

- Detailed public information that is not specific to the Yocto Project. For example, exhaustive information on how to use Git is covered better through the Internet than in this manual.

## Other Information

Because this manual presents overview information for many different topics, you will need to supplement it with other information. The following list presents other sources of information you might find helpful:

- The Yocto Project Website: The home page for the Yocto Project provides lots of information on the project as well as links to software and documentation.

- The Yocto Project Quick Start: This short document lets you get started with the Yocto Project quickly and start building an image.

- The Yocto Project Reference Manual: This manual is a reference guide to the Yocto Project build component known as "Poky." The manual also contains a reference chapter on Board Support Package (BSP) layout.

- The Yocto Project Application Development Toolkit (ADT) User's Guide: This guide provides information that lets you get going with the ADT to develop projects using the Yocto Project.

- The Yocto Project Board Support Package (BSP) Developer's Guide: This guide defines the structure for BSP components. Having a commonly understood structure encourages standardization.

- The Yocto Project Kernel Architecture and Use Manual: This manual describes the architecture of the Yocto Project kernel and provides some work flow examples.

- Yocto Eclipse Plug-in: A step-by-step instructional video that demonstrates how an application developer uses Yocto Plug-in features within the Eclipse IDE.

- FAQ: A list of commonly asked questions and their answers.

- Release Notes: Features, updates and known issues for the current release of the Yocto Project.

- Bugzilla: The bug tracking application the Yocto Project uses. If you find problems with the Yocto Project, you should report them using this application.

- Yocto Project Mailing Lists: To subscribe to the Yocto Project mailing lists, click on the following URLs and follow the instructions:

  - for a Yocto Discussions mailing list.

  - for a Yocto Project Discussions mailing list.

  - for a mailing list to receive offical Yocto Project announcements for developments and as well as Yocto Project milestones.

- Internet Relay Chat (IRC): Two IRC channels on freenode are available for Yocto Project and Poky discussions: `#yocto` and `#poky`.

- OpenedHand: The company where the Yocto Project build system Poky was first developed. OpenedHand has since been acquired by Intel Corporation.

- Intel Corporation: The company who acquired OpenedHand in 2008 and continues development on the Yocto Project.

- OpenEmbedded: The upstream, generic, embedded distribution the Yocto Project build system (Poky) derives from and to which it contributes.

- Bitbake: The tool used to process Yocto Project metadata.

- BitBake User Manual: A comprehensive guide to the BitBake tool.

- Pimlico: A suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices.

- QEMU: An open source machine emulator and virtualizer.