# The Yocto Project Development Manual

## Introduction

Welcome to the Yocto Project Development Manual! This manual gives you an idea of how to use the Yocto Project to develop embedded Linux images and user-space applications to run on targeted devices. Reading this manual gives you an overview of image, kernel, and user-space application development using the Yocto Project. Because much of the information in this manual is general, it contains many references to other sources where you can find more detail. For example, detailed information on Git, repositories and open source in general can be found in many places. Another example is how to get set up to use the Yocto Project, which our Yocto Project Quick Start covers.

The Yocto Project Development Manual, however, does provide detailed examples on how to create a Board Support Package (BSP), change the kernel source code, and re-configure the kernel. You can find this information in the appendices of the manual.

## 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 who 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 and tasks.

- 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).

- An understanding of basic kernel architecture and concepts.

- 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 Yocto Project 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.

- Hob: A graphical user interface for BitBake. Hob's primary goal is to enable a user to perform common tasks more easily.

- Build Appliance: Allows you to build and boot a custom embedded Linux image with the Yocto Project using a non-Linux development system.

- 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 Project Discussions mailing list.

  - for a Yocto Project Discussions mailing list about the Poky build system.

  - 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 that 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.