Yocto Project Software Development Kit (SDK) Developer's Guide

Scott Rifenbark

Scotty's Documentation Services, LLC

Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales as published by Creative Commons.

Note

For the latest version of this manual associated with this Yocto Project release, see the Yocto Project Software Development Kit (SDK) Developer's Guide from the Yocto Project website.
Revision History
Revision 2.1 April 2016
Released with the Yocto Project 2.1 Release.
Revision 2.2 October 2016
Released with the Yocto Project 2.2 Release.
Revision 2.3 Proposed for April 2017
Released with the Yocto Project 2.3 Release.

Table of Contents

1. Introduction
1.1. Introduction
1.1.1. The Cross-Development Toolchain
1.1.2. Sysroots
1.1.3. The QEMU Emulator
1.1.4. Eclipse Yocto Plug-in
1.1.5. Performance Enhancing Tools
1.2. SDK Development Model
2. Using the Extensible SDK
2.1. Why use the Extensible SDK and What is in It?
2.2. Setting Up to Use the Extensible SDK
2.3. Running the Extensible SDK Environment Setup Script
2.4. Using devtool in Your SDK Workflow
2.4.1. Use devtool add to Add an Application
2.4.2. Use devtool modify to Modify the Source of an Existing Component
2.4.3. Use devtool upgrade to Create a Version of the Recipe that Supports a Newer Version of the Software
2.5. A Closer Look at devtool add
2.5.1. Name and Version
2.5.2. Dependency Detection and Mapping
2.5.3. License Detection
2.5.4. Adding Makefile-Only Software
2.5.5. Adding Native Tools
2.5.6. Adding Node.js Modules
2.6. Working With Recipes
2.6.1. Finding Logs and Work Files
2.6.2. Setting Configure Arguments
2.6.3. Sharing Files Between Recipes
2.6.4. Packaging
2.7. Restoring the Target Device to its Original State
2.8. Installing Additional Items Into the Extensible SDK
2.9. Updating the Extensible SDK
2.10. Creating a Derivative SDK With Additional Components
3. Using the Standard SDK
3.1. Why use the Standard SDK and What is in It?
3.2. Installing the SDK
3.3. Running the SDK Environment Setup Script
4. Using the SDK Toolchain Directly
4.1. Autotools-Based Projects
4.1.1. Creating and Running a Project Based on GNU Autotools
4.1.2. Passing Host Options
4.2. Makefile-Based Projects
4.3. Developing Applications Using Eclipse
4.3.1. Workflow Using Eclipse
4.3.2. Working Within Eclipse
1. Obtaining the SDK
1.1. Locating Pre-Built SDK Installers
1.2. Building an SDK Installer
1.3. Extracting the Root Filesystem
1.4. Installed Standard SDK Directory Structure
1.5. Installed Extensible SDK Directory Structure
2. Customizing the Extensible SDK
2.1. Configuring the Extensible SDK
2.2. Adjusting the Extensible SDK to Suit Your Build System Setup
2.3. Changing the Appearance of the Extensible SDK
2.4. Providing Updates After Installing the Extensible SDK
2.5. Providing Additional Installable Extensible SDK Content
2.6. Minimizing the Size of the Extensible SDK Installer Download
3. Customizing the Standard SDK
3.1. Adding Individual Packages to the Standard SDK
3.2. Adding API Documentation to the Standard SDK
4. Using Eclipse Mars
4.1. Setting Up the Mars Version of the Eclipse IDE
4.1.1. Installing the Mars Eclipse IDE
4.1.2. Configuring the Mars Eclipse IDE
4.1.3. Installing or Accessing the Mars Eclipse Yocto Plug-in
4.1.4. Configuring the Mars Eclipse Yocto Plug-in
4.2. Creating the Project
4.3. Configuring the Cross-Toolchains
4.4. Building the Project
4.5. Starting QEMU in User-Space NFS Mode
4.6. Deploying and Debugging the Application
4.7. Using Linuxtools