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.7 release of the Yocto Project. To be sure you have the latest version of the manual for this release, go to the Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files.

  • If you located this manual through a web search, the version of the manual might not be the one you want (e.g. the search might have returned a manual much older than the Yocto Project version with which you are working). You can see all Yocto Project major releases by visiting the Releases page. If you need a version of this manual for a different Yocto Project release, visit the Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus.

  • 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 May 2018
Released with the Yocto Project 2.5 Release.
Revision 2.6 November 2018
Released with the Yocto Project 2.6 Release.
Revision 2.7 TBD
Released with the Yocto Project 2.7 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. Installing 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. Applying Updates to an Installed 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.2. Makefile-Based Projects
5. Developing Applications Using Eclipse
5.1. Application Development Workflow Using Eclipse
5.2. Working Within Eclipse
5.2.1. Setting Up the Oxygen 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 Host's Setup
2.3. Changing the Extensible SDK Installer Title
2.4. Providing Updates to the Extensible SDK After Installation
2.5. Changing the Default SDK Installation Directory
2.6. Providing Additional Installable Extensible SDK Content
2.7. 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™ Neon
4.1. Setting Up the Neon Version of the Eclipse IDE
4.1.1. Installing the Neon Eclipse IDE
4.1.2. Configuring the Neon Eclipse IDE
4.1.3. Installing or Accessing the Neon Eclipse Yocto Plug-in
4.1.4. Configuring the Neon 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