Yocto Project Application Development and the Extensible Software Development Kit (eSDK)

Scott Rifenbark

Scotty's Documentation Services, INC

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.

Manual Notes

  • This version of the Yocto Project Application Development and the Extensible Software Development Kit (eSDK) manual is for the 2.5 release of the Yocto Project. To be sure you have the latest version of the manual for this release, use the manual from the Yocto Project documentation page.

  • For manuals associated with other releases of the Yocto Project, go to the Yocto Project documentation page and use the drop-down "Active Releases" button and choose the manual associated with the desired Yocto Project.

  • To report any inaccuracies or problems with this manual, send an email to the Yocto Project discussion group at yocto@yoctoproject.com or log into the freenode #yocto channel.

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 May 2017
Released with the Yocto Project 2.3 Release.
Revision 2.4 October 2017
Released with the Yocto Project 2.4 Release.
Revision 2.5 April 2018
Released with the Yocto Project 2.5 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
5. Developing Applications Using Eclipse
5.1. Workflow Using Eclipse
5.2. Working Within Eclipse
5.2.1. Setting Up the Neon Version of the Eclipse IDE
5.2.2. Creating the Project
5.2.3. Configuring the Cross-Toolchains
5.2.4. Building the Project
5.2.5. Starting QEMU in User-Space NFS Mode
5.2.6. Deploying and Debugging the Application
5.2.7. Using Linuxtools
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