From 4c5157f7dcfecab3b4e4483cd122e0ae74b377ee Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Wed, 9 Mar 2016 13:30:27 -0800 Subject: [PATCH] ref-manual: Resolving a conflict (From yocto-docs rev: b364516928d04da38ef3188f07f190ffac64762b) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/Makefile | 8 +- .../dev-manual/dev-manual-common-tasks.xml | 10 +- documentation/dev-manual/dev-manual-intro.xml | 17 +- documentation/dev-manual/dev-manual-model.xml | 1168 +---------------- .../dev-manual/dev-manual-newbie.xml | 10 +- documentation/dev-manual/dev-manual-qemu.xml | 7 +- documentation/dev-manual/dev-manual-start.xml | 8 +- .../dev-manual/figures/app-dev-flow.png | Bin 53301 -> 0 bytes .../mega-manual/figures/app-dev-flow.png | Bin 52670 -> 0 bytes documentation/ref-manual/introduction.xml | 16 +- documentation/ref-manual/ref-classes.xml | 9 +- documentation/ref-manual/ref-features.xml | 4 +- documentation/ref-manual/ref-structure.xml | 4 +- documentation/ref-manual/ref-variables.xml | 13 +- .../ref-manual/technical-details.xml | 7 +- documentation/ref-manual/usingpoky.xml | 12 +- documentation/sdk-manual/sdk-intro.xml | 58 + documentation/sdk-manual/sdk-using.xml | 1053 ++++++++++++++- .../yocto-project-qs/yocto-project-qs.xml | 22 +- 19 files changed, 1187 insertions(+), 1239 deletions(-) delete mode 100644 documentation/dev-manual/figures/app-dev-flow.png delete mode 100644 documentation/mega-manual/figures/app-dev-flow.png diff --git a/documentation/Makefile b/documentation/Makefile index d201f98f4f..ec6566713a 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -128,7 +128,7 @@ TARFILES = dev-style.css dev-manual.html \ figures/wip.png else TARFILES = dev-style.css dev-manual.html \ - figures/app-dev-flow.png figures/bsp-dev-flow.png \ + figures/bsp-dev-flow.png \ figures/dev-title.png figures/git-workflow.png \ figures/index-downloads.png figures/kernel-dev-flow.png \ figures/kernel-overview-1.png figures/kernel-overview-2-generic.png \ @@ -202,7 +202,7 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \ figures/buildhistory-web.png \ figures/adt-title.png figures/sdk-title.png figures/bsp-title.png \ figures/kernel-dev-title.png figures/kernel-architecture-overview.png \ - figures/app-dev-flow.png figures/bsp-dev-flow.png \ + figures/bsp-dev-flow.png \ figures/dev-title.png \ figures/git-workflow.png figures/index-downloads.png \ figures/kernel-dev-flow.png \ @@ -249,7 +249,7 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \ figures/compatible-layers.png figures/import-layer.png figures/new-project.png \ figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \ figures/sdk-devtool-add-flow.png figures/sdk-installed-extensible-sdk-directory.png \ - figures/sdk-devtool-modify-flow.png + figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png endif MANUALS = $(DOC)/$(DOC).html @@ -293,7 +293,7 @@ ALLPREQ = html eclipse tarball TARFILES = sdk-manual.html sdk-style.css figures/sdk-title.png \ figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \ figures/sdk-installed-extensible-sdk-directory.png figures/sdk-devtool-add-flow.png \ - figures/sdk-devtool-modify-flow.png \ + figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \ eclipse MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse FIGURES = figures diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 36c69396cf..199728d2b8 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml @@ -9160,11 +9160,8 @@ Before you can initiate a remote debugging session, you need to be sure you have set up the cross-development environment, toolchain, and sysroot. - The "Preparing for Application Development" - chapter of the Yocto Project Application Developer's Guide + The Yocto Project Software Development Kit (SDK) Developer's Guide describes this process. - Be sure you have read that chapter and have set up - your environment. @@ -9273,9 +9270,8 @@ location is at /opt/poky/&DISTRO; and begins with the string "environment-setup". For more information, see the - "Setting Up the Cross-Development Environment" - section in the Yocto Project Application Developer's - Guide. + Yocto Project Software Development Kit (SDK) Developer's + Guide. diff --git a/documentation/dev-manual/dev-manual-intro.xml b/documentation/dev-manual/dev-manual-intro.xml index 5affa86ea3..21b85a5333 100644 --- a/documentation/dev-manual/dev-manual-intro.xml +++ b/documentation/dev-manual/dev-manual-intro.xml @@ -86,10 +86,9 @@ Step-by-step instructions when those instructions exist in other Yocto Project documentation: - For example, the Yocto Project Application Developer's Guide contains detailed - instructions on how to run the - ADT Installer, - which is used to set up a cross-development environment. + For example, the Yocto Project Software Development Kit (SDK) Developer's Guide contains detailed + instructions on how to install an SDK, which is used to + develop applications for target hardware. Reference material: This type of material resides in an appropriate reference manual. For example, system variables are documented in the @@ -126,10 +125,12 @@ The build system is sometimes referred to as "Poky". - Yocto Project Application Developer's Guide: - This guide provides information that lets you get going with the Application - Development Toolkit (ADT) and stand-alone cross-development toolchains to - develop projects using the Yocto Project. + Yocto Project Software Development Kit (SDK) Developer's Guide: + This guide provides information that lets you get going + with the standard or extensible SDK. + An SDK, with its cross-development toolchains, allows you + to develop projects inside or outside of the Yocto Project + environment. Yocto Project Board Support Package (BSP) Developer's Guide: diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 489547dae6..4fb1e61559 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml @@ -27,11 +27,10 @@ that you intend to run on target hardware. For information on how to set up your host development system for user-space application development, see the - Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. For a simple example of user-space application development using the Eclipse IDE, see the - "Application - Development Workflow" section. + "Developing Applications Using Eclipse" section. Temporary Source Code Modification: Direct modification of temporary source code is a convenient @@ -529,1161 +528,18 @@ -
- Application Development Workflow +
+ Application Development Workflow Using an SDK - Application development involves creating an application that you want - to run on your target hardware, which is running a kernel image created using the - OpenEmbedded build system. - The Yocto Project provides an - Application Development Toolkit (ADT) - and stand-alone - cross-development toolchains - that facilitate quick development and integration of your application into its runtime environment. - Using the ADT and toolchains, you can compile and link your application. - You can then deploy your application to the actual hardware or to the QEMU emulator for testing. - If you are familiar with the popular Eclipse IDE, - you can use an Eclipse Yocto Plug-in to - allow you to develop, deploy, and test your application all from within Eclipse. + Standard and extensible Software Development Kits (SDK) make it easy + to develop applications inside or outside of the Yocto Project + development environment. + Tools exist to help the application developer during any phase + of development. + For information on how to install and use an SDK, see the + Yocto Project Software Development Kit (SDK) Developer's Guide. - - - While we strongly suggest using the ADT to develop your application, this option might not - be best for you. - If this is the case, you can still use pieces of the Yocto Project for your development process. - However, because the process can vary greatly, this manual does not provide detail on the process. - - -
- Workflow Using the ADT and <trademark class='trade'>Eclipse</trademark> - - - To help you understand how application development works using the ADT, this section - provides an overview of the general development process and a detailed example of the process - as it is used from within the Eclipse IDE. - - - - The following illustration and list summarize the application development general workflow. - - - - - - - - - Prepare the host system for the Yocto Project: - See - "Supported Linux Distributions" - and - "Required Packages for the Host Development System" sections both - in the Yocto Project Reference Manual for requirements. - In particular, be sure your host system has the - xterm package installed. - - Secure the Yocto Project kernel target image: - You must have a target kernel image that has been built using the OpenEmbedded - build system. - Depending on whether the Yocto Project has a pre-built image that matches your target - architecture and where you are going to run the image while you develop your application - (QEMU or real hardware), the area from which you get the image differs. - - Download the image from - machines - if your target architecture is supported and you are going to develop - and test your application on actual hardware. - Download the image from - - machines/qemu if your target architecture is supported - and you are going to develop and test your application using the QEMU - emulator. - Build your image if you cannot find a pre-built image that matches - your target architecture. - If your target architecture is similar to a supported architecture, you can - modify the kernel image before you build it. - See the - "Patching the Kernel" - section for an example. - - For information on pre-built kernel image naming schemes for images - that can run on the QEMU emulator, see the - "Downloading the Pre-Built Linux Kernel" - section in the Yocto Project Application Developer's Guide. - Install the ADT: - The ADT provides a target-specific cross-development toolchain, the root filesystem, - the QEMU emulator, and other tools that can help you develop your application. - While it is possible to get these pieces separately, the ADT Installer provides an - easy, inclusive method. - You can get these pieces by running an ADT installer script, which is configurable. - For information on how to install the ADT, see the - "Using the ADT Installer" - section - in the Yocto Project Application Developer's Guide. - If applicable, secure the target root filesystem - and the Cross-development toolchain: - If you choose not to install the ADT using the ADT Installer, - you need to find and download the appropriate root filesystem and - the cross-development toolchain. - You can find the tarballs for the root filesystem in the same area used - for the kernel image. - Depending on the type of image you are running, the root filesystem you need differs. - For example, if you are developing an application that runs on an image that - supports Sato, you need to get a root filesystem that supports Sato. - You can find the cross-development toolchains at - toolchains. - Be sure to get the correct toolchain for your development host and your - target architecture. - See the "Using a Cross-Toolchain Tarball" - section in the Yocto Project Application Developer's Guide for information - and the - "Installing the Toolchain" - in the Yocto Project Application Developer's Guide for information on finding and installing - the correct toolchain based on your host development system and your target - architecture. - - Create and build your application: - At this point, you need to have source files for your application. - Once you have the files, you can use the Eclipse IDE to import them and build the - project. - If you are not using Eclipse, you need to use the cross-development tools you have - installed to create the image. - Deploy the image with the application: - If you are using the Eclipse IDE, you can deploy your image to the hardware or to - QEMU through the project's preferences. - If you are not using the Eclipse IDE, then you need to deploy the application - to the hardware using other methods. - Or, if you are using QEMU, you need to use that tool and - load your image in for testing. - See the - "Using the Quick EMUlator (QEMU)" - chapter for information on using QEMU. - - Test and debug the application: - Once your application is deployed, you need to test it. - Within the Eclipse IDE, you can use the debugging environment along with the - set of user-space tools installed along with the ADT to debug your application. - Of course, the same user-space tools are available separately if you choose - not to use the Eclipse IDE. - - -
- -
- Working Within Eclipse - - - The Eclipse IDE is a popular development environment and it fully - supports development using the Yocto Project. - - This release of the Yocto Project supports both the Luna - and Kepler versions of the Eclipse IDE. - Thus, the following information provides setup information for - both versions. - - - - - When you install and configure the Eclipse Yocto Project Plug-in - into the Eclipse IDE, you maximize your Yocto Project experience. - Installing and configuring the Plug-in results in an environment - that has extensions specifically designed to let you more easily - develop software. - These extensions allow for cross-compilation, deployment, and - execution of your output into a QEMU emulation session as well as - actual target hardware. - You can also perform cross-debugging and profiling. - The environment also supports a suite of tools that allows you - to perform remote profiling, tracing, collection of power data, - collection of latency data, and collection of performance data. - - - - This section describes how to install and configure the Eclipse IDE - Yocto Plug-in and how to use it to develop your application. - - -
- Setting Up the Eclipse IDE - - - To develop within the Eclipse IDE, you need to do the following: - - Install the optimal version of the Eclipse - IDE. - Configure the Eclipse IDE. - - Install the Eclipse Yocto Plug-in. - - Configure the Eclipse Yocto Plug-in. - - - - Do not install Eclipse from your distribution's package - repository. - Be sure to install Eclipse from the official Eclipse - download site as directed in the next section. - - - -
- Installing the Eclipse IDE - - - It is recommended that you have the Luna SR2 (4.4.2) - version of the Eclipse IDE installed on your development - system. - However, if you currently have the Kepler 4.3.2 version - installed and you do not want to upgrade the IDE, you can - configure Kepler to work with the Yocto Project. - - - - If you do not have the Luna SR2 (4.4.2) Eclipse IDE - installed, you can find the tarball at - . - From that site, choose the appropriate download from the - "Eclipse IDE for C/C++ Developers". - This version contains the Eclipse Platform, the Java - Development Tools (JDT), and the Plug-in Development - Environment. - - - - Once you have downloaded the tarball, extract it into a - clean directory. - For example, the following commands unpack and install the - downloaded Eclipse IDE tarball into a clean directory - using the default name eclipse: - - $ cd ~ - $ tar -xzvf ~/Downloads/eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz - - -
- -
- Configuring the Eclipse IDE - - - This section presents the steps needed to configure the - Eclipse IDE. - - - - Before installing and configuring the Eclipse Yocto Plug-in, - you need to configure the Eclipse IDE. - Follow these general steps: - - Start the Eclipse IDE. - Make sure you are in your Workbench and - select "Install New Software" from the "Help" - pull-down menu. - Select - Luna - &ECLIPSE_LUNA_URL; - from the "Work with:" pull-down menu. - - For Kepler, select - Kepler - &ECLIPSE_KEPLER_URL; - - - Expand the box next to "Linux Tools" - and select the - Linux Tools LTTng Tracer Control, - Linux Tools LTTng Userspace Analysis, - and - LTTng Kernel Analysis boxes. - If these selections do not appear in the list, - that means the items are already installed. - - For Kepler, select - LTTng - Linux Tracing Toolkit - box. - - - Expand the box next to "Mobile and - Device Development" and select the following boxes. - Again, if any of the following items are not - available for selection, that means the items are - already installed: - - C/C++ Remote Launch (Requires RSE Remote System Explorer) - Remote System Explorer End-user Runtime - Remote System Explorer User Actions - Target Management Terminal (Core SDK) - TCF Remote System Explorer add-in - TCF Target Explorer - - Expand the box next to "Programming - Languages" and select the - C/C++ Autotools Support - and C/C++ Development Tools - boxes. - For Luna, these items do not appear on the list - as they are already installed. - - Complete the installation and restart - the Eclipse IDE. - - -
- -
- Installing or Accessing the Eclipse Yocto Plug-in - - - You can install the Eclipse Yocto Plug-in into the Eclipse - IDE one of two ways: use the Yocto Project's Eclipse - Update site to install the pre-built plug-in or build and - install the plug-in from the latest source code. - - -
- Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site - - - To install the Eclipse Yocto Plug-in from the update - site, follow these steps: - - Start up the Eclipse IDE. - - In Eclipse, select "Install New - Software" from the "Help" menu. - - Click "Add..." in the "Work with:" - area. - Enter - &ECLIPSE_DL_PLUGIN_URL;/luna - in the URL field and provide a meaningful name - in the "Name" field. - - If you are using Kepler, use - &ECLIPSE_DL_PLUGIN_URL;/kepler - in the URL field. - - Click "OK" to have the entry added - to the "Work with:" drop-down list. - - Select the entry for the plug-in - from the "Work with:" drop-down list. - - Check the boxes next to - Yocto Project ADT Plug-in, - Yocto Project Bitbake Commander Plug-in, - and - Yocto Project Documentation plug-in. - - Complete the remaining software - installation steps and then restart the Eclipse - IDE to finish the installation of the plug-in. - - You can click "OK" when prompted about - installing software that contains unsigned - content. - - - - -
- -
- Installing the Plug-in Using the Latest Source Code - - - To install the Eclipse Yocto Plug-in from the latest - source code, follow these steps: - - Be sure your development system - is not using OpenJDK to build the plug-in - by doing the following: - - Use the Oracle JDK. - If you don't have that, go to - - and download the latest appropriate - Java SE Development Kit tarball for - your development system and - extract it into your home directory. - - In the shell you are going - to do your work, export the location of - the Oracle Java. - The previous step creates a new folder - for the extracted software. - You need to use the following - export command - and provide the specific location: - - export PATH=~/extracted_jdk_location/bin:$PATH - - - - - In the same shell, create a Git - repository with: - - $ cd ~ - $ git clone git://git.yoctoproject.org/eclipse-poky - - - Be sure to checkout the correct - tag. - For example, if you are using Luna, do the - following: - - $ git checkout luna/yocto-&DISTRO; - - This puts you in a detached HEAD state, which - is fine since you are only going to be building - and not developing. - - If you are building kepler, checkout the - kepler/yocto-&DISTRO; - branch. - - - Change to the - scripts - directory within the Git repository: - - $ cd scripts - - - Set up the local build environment - by running the setup script: - - $ ./setup.sh - - - When the script finishes execution, - it prompts you with instructions on how to run - the build.sh script, which - is also in the scripts - directory of the Git repository created - earlier. - - Run the build.sh - script as directed. - Be sure to provide the tag name, documentation - branch, and a release name. - Here is an example that uses the - luna/yocto-&DISTRO; tag, the - master documentation - branch, and - &DISTRO_NAME; for the - release name: - - $ ECLIPSE_HOME=/home/scottrif/eclipse-poky/scripts/eclipse ./build.sh luna/yocto-&DISTRO; master &DISTRO_NAME; 2>&1 | tee -a build.log - - After running the script, the file - org.yocto.sdk-release-date-archive.zip - is in the current directory. - - If necessary, start the Eclipse IDE - and be sure you are in the Workbench. - - Select "Install New Software" from - the "Help" pull-down menu. - - Click "Add". - Provide anything you want in the - "Name" field. - - Click "Archive" and browse to the - ZIP file you built in step eight. - This ZIP file should not be "unzipped", and must - be the *archive.zip file - created by running the - build.sh script. - - Click the "OK" button. - - Check the boxes that appear in - the installation window to install the - Yocto Project ADT Plug-in, - Yocto Project Bitbake Commander Plug-in, - and the - Yocto Project Documentation plug-in. - - Finish the installation by clicking - through the appropriate buttons. - You can click "OK" when prompted about - installing software that contains unsigned - content. - - Restart the Eclipse IDE if - necessary. - - - - - - At this point you should be able to configure the - Eclipse Yocto Plug-in as described in the - "Configuring the Eclipse Yocto Plug-in" - section. -
-
- -
- Configuring the Eclipse Yocto Plug-in - - - Configuring the Eclipse Yocto Plug-in involves setting the - Cross Compiler options and the Target options. - The configurations you choose become the default settings - for all projects. - You do have opportunities to change them later when - you configure the project (see the following section). - - - - To start, you need to do the following from within the - Eclipse IDE: - - Choose "Preferences" from the - "Window" menu to display the Preferences Dialog. - - Click "Yocto Project ADT" to display - the configuration screen. - - - - -
- Configuring the Cross-Compiler Options - - - To configure the Cross Compiler Options, you must select - the type of toolchain, point to the toolchain, specify - the sysroot location, and select the target - architecture. - - Selecting the Toolchain Type: - Choose between - Standalone pre-built toolchain - and - Build system derived toolchain - for Cross Compiler Options. - - - Standalone Pre-built Toolchain: - Select this mode when you are using - a stand-alone cross-toolchain. - For example, suppose you are an - application developer and do not - need to build a target image. - Instead, you just want to use an - architecture-specific toolchain on - an existing kernel and target root - filesystem. - - Build System Derived Toolchain: - Select this mode if the - cross-toolchain has been installed - and built as part of the - Build Directory. - When you select - Build system derived toolchain, - you are using the toolchain bundled - inside the Build Directory. - - - - Point to the Toolchain: - If you are using a stand-alone pre-built - toolchain, you should be pointing to where it is - installed. - If you used the ADT Installer script and - accepted the default installation directory, the - toolchain will be installed in the - &YOCTO_ADTPATH_DIR; - directory. - Sections "Configuring and Running the ADT Installer Script" - and - "Using a Cross-Toolchain Tarball" - in the Yocto Project Application Developer's - Guide describe how to install a stand-alone - cross-toolchain. - If you are using a system-derived - toolchain, the path you provide for the - Toolchain Root Location - field is the - Build Directory. - See the - "Using BitBake and the Build Directory" - section in the Yocto Project Application - Developer's Guide for information on how to - install the toolchain into the Build - Directory. - Specify the Sysroot Location: - This location is where the root filesystem for - the target hardware resides. - If you used the ADT Installer script and - accepted the default installation directory, - then the location in your home directory - in a folder named - test-yocto/target_arch. - Additionally, when you use the ADT Installer - script, the - /opt/poky/&DISTRO;/sysroots - location is used for the QEMU - user-space tools and the NFS boot process. - - If you used either of the other two - methods to install the toolchain or did not - accept the ADT Installer script's default - installation directory, then the location of - the sysroot filesystem depends on where you - separately extracted and installed the - filesystem. - For information on how to install the - toolchain and on how to extract and install the - sysroot filesystem, see the - "Installing the ADT and Toolchains" - section in the Yocto Project Application - Developer's Guide. - - Select the Target Architecture: - The target architecture is the type of hardware - you are going to use or emulate. - Use the pull-down - Target Architecture menu - to make your selection. - The pull-down menu should have the supported - architectures. - If the architecture you need is not listed in - the menu, you will need to build the image. - See the - "Building Images" - section of the Yocto Project Quick Start for - more information. - - -
- -
- Configuring the Target Options - - - You can choose to emulate hardware using the QEMU - emulator, or you can choose to run your image on actual - hardware. - - QEMU: - Select this option if you will be using the - QEMU emulator. - If you are using the emulator, you also need to - locate the kernel and specify any custom - options. - If you selected - Build system derived toolchain, - the target kernel you built will be located in - the Build Directory in - tmp/deploy/images/machine - directory. - If you selected - Standalone pre-built toolchain, - the pre-built image you downloaded is located - in the directory you specified when you - downloaded the image. - Most custom options are for advanced QEMU - users to further customize their QEMU instance. - These options are specified between paired - angled brackets. - Some options must be specified outside the - brackets. - In particular, the options - serial, - nographic, and - kvm must all be outside the - brackets. - Use the man qemu command - to get help on all the options and their use. - The following is an example: - - serial ‘<-m 256 -full-screen>’ - - - Regardless of the mode, Sysroot is already - defined as part of the Cross-Compiler Options - configuration in the - Sysroot Location: field. - - External HW: - Select this option if you will be using actual - hardware. - - - - - Click the "OK" to save your plug-in configurations. - -
-
-
- -
- Creating the Project - - - You can create two types of projects: Autotools-based, or - Makefile-based. - This section describes how to create Autotools-based projects - from within the Eclipse IDE. - For information on creating Makefile-based projects in a - terminal window, see the section - "Using the Command Line" - in the Yocto Project Application Developer's Guide. - - Do not use special characters in project names - (e.g. spaces, underscores, etc.). Doing so can - cause configuration to fail. - - - - - To create a project based on a Yocto template and then display - the source code, follow these steps: - - Select "Project" from the "File -> New" menu. - - Double click CC++. - - Double click C Project - to create the project. - Expand Yocto Project ADT Autotools Project. - - Select Hello World ANSI C Autotools Project. - This is an Autotools-based project based on a Yocto - template. - Put a name in the Project name: - field. - Do not use hyphens as part of the name. - - Click "Next". - Add information in the - Author and - Copyright notice fields. - - Be sure the License - field is correct. - Click "Finish". - If the "open perspective" prompt appears, - click "Yes" so that you in the C/C++ perspective. - - The left-hand navigation pane shows your - project. - You can display your source by double clicking the - project's source file. - - -
- -
- Configuring the Cross-Toolchains - - - The earlier section, - "Configuring the Eclipse Yocto Plug-in", - sets up the default project configurations. - You can override these settings for a given project by following - these steps: - - Select "Change Yocto Project Settings" from - the "Project" menu. - This selection brings up the Yocto Project Settings - Dialog and allows you to make changes specific to an - individual project. - By default, the Cross Compiler Options and Target - Options for a project are inherited from settings you - provided using the Preferences Dialog as described - earlier in the - "Configuring the Eclipse Yocto Plug-in" section. - The Yocto Project Settings Dialog allows you to override - those default settings for a given project. - - Make your configurations for the project - and click "OK". - - Right-click in the navigation pane and - select "Reconfigure Project" from the pop-up menu. - This selection reconfigures the project by running - autogen.sh in the workspace for - your project. - The script also runs libtoolize, - aclocal, - autoconf, - autoheader, - automake --a, and - ./configure. - Click on the "Console" tab beneath your source code to - see the results of reconfiguring your project. - - - -
- -
- Building the Project - - - To build the project select "Build Project" from the - "Project" menu. - The console should update and you can note the cross-compiler - you are using. - - When building "Yocto Project ADT Autotools" projects, the Eclipse - IDE might display error messages for Functions/Symbols/Types - that cannot be "resolved", even when the related include file - is listed at the project navigator and when the project is - able to build. - For these cases only, it is recommended to add a new linked - folder to the appropriate sysroot. - Use these steps to add the linked folder: - - - Select the project. - - - Select "Folder" from the - File > New menu. - - - In the "New Folder" Dialog, select "Link to alternate - location (linked folder)". - - - Click "Browse" to navigate to the include folder inside - the same sysroot location selected in the Yocto Project - configuration preferences. - - - Click "OK". - - - Click "Finish" to save the linked folder. - - - - -
- -
- Starting QEMU in User-Space NFS Mode - - - To start the QEMU emulator from within Eclipse, follow these - steps: - - See the - "Using the Quick EMUlator (QEMU)" - chapter for more information on using QEMU. - - - Expose and select "External Tools" from - the "Run" menu. - Your image should appear as a selectable menu item. - - Select your image from the menu to launch - the emulator in a new window. - - If needed, enter your host root password in - the shell window at the prompt. - This sets up a Tap 0 connection - needed for running in user-space NFS mode. - - Wait for QEMU to launch. - Once QEMU launches, you can begin operating - within that environment. - One useful task at this point would be to determine the - IP Address for the user-space NFS by using the - ifconfig command. - - - -
- -
- Deploying and Debugging the Application - - - Once the QEMU emulator is running the image, you can deploy - your application using the Eclipse IDE and then use - the emulator to perform debugging. - Follow these steps to deploy the application. - - Select "Debug Configurations..." from the - "Run" menu. - In the left area, expand - C/C++Remote Application. - - Locate your project and select it to bring - up a new tabbed view in the Debug Configurations Dialog. - - Enter the absolute path into which you want - to deploy the application. - Use the "Remote Absolute File Path for - C/C++Application:" field. - For example, enter - /usr/bin/programname. - - Click on the "Debugger" tab to see the - cross-tool debugger you are using. - Click on the "Main" tab. - Create a new connection to the QEMU instance - by clicking on "new". - Select TCF, which means - Target Communication Framework. - Click "Next". - Clear out the "host name" field and enter - the IP Address determined earlier. - Click "Finish" to close the - New Connections Dialog. - Use the drop-down menu now in the - "Connection" field and pick the IP Address you entered. - - Click "Debug" to bring up a login screen - and login. - Accept the debug perspective. - - - -
- -
- Running User-Space Tools - - - As mentioned earlier in the manual, several tools exist that - enhance your development experience. - These tools are aids in developing and debugging applications - and images. - You can run these user-space tools from within the Eclipse - IDE through the "YoctoProjectTools" menu. - - - - Once you pick a tool, you need to configure it for the remote - target. - Every tool needs to have the connection configured. - You must select an existing TCF-based RSE connection to the - remote target. - If one does not exist, click "New" to create one. - - - - Here are some specifics about the remote tools: - - OProfile: - Selecting this tool causes the - oprofile-server on the remote - target to launch on the local host machine. - The oprofile-viewer must be - installed on the local host machine and the - oprofile-server must be installed - on the remote target, respectively, in order to use. - You must compile and install the - oprofile-viewer from the source - code on your local host machine. - Furthermore, in order to convert the target's sample - format data into a form that the host can use, you must - have OProfile version 0.9.4 or greater installed on the - host. - You can locate both the viewer and server from - . - You can also find more information on setting up and - using this tool in the - "oprofile" - section of the Yocto Project Profiling and Tracing - Manual. - The oprofile-server is - installed by default on the - core-image-sato-sdk image. - - Lttng2.0 trace import: - Selecting this tool transfers the remote target's - Lttng tracing data back to the - local host machine and uses the Lttng Eclipse plug-in - to graphically display the output. - For information on how to use Lttng to trace an - application, - see - and the - "LTTng (Linux Trace Toolkit, next generation)" - section, which is in the Yocto Project Profiling and - Tracing Manual. - Do not use - Lttng-user space (legacy) tool. - This tool no longer has any upstream support. - - Before you use the - Lttng2.0 trace import tool, - you need to setup the Lttng Eclipse plug-in and create a - Tracing project. - Do the following: - - Select "Open Perspective" from the - "Window" menu and then select "Other..." to - bring up a menu of other perspectives. - Choose "Tracing". - - Click "OK" to change the Eclipse - perspective into the Tracing perspective. - - Create a new Tracing project by - selecting "Project" from the "File -> New" menu. - - Choose "Tracing Project" from the - "Tracing" menu and click "Next". - - Provide a name for your tracing - project and click "Finish". - - Generate your tracing data on the - remote target. - Select "Lttng2.0 trace import" - from the "Yocto Project Tools" menu to - start the data import process. - Specify your remote connection name. - - For the Ust directory path, specify - the location of your remote tracing data. - Make sure the location ends with - ust (e.g. - /usr/mysession/ust). - - Click "OK" to complete the import - process. - The data is now in the local tracing project - you created. - Right click on the data and then use - the menu to Select "Generic CTF Trace" from the - "Trace Type... -> Common Trace Format" menu to - map the tracing type. - Right click the mouse and select - "Open" to bring up the Eclipse Lttng Trace - Viewer so you view the tracing data. - - - PowerTOP: - Selecting this tool runs PowerTOP on the remote target - machine and displays the results in a new view called - PowerTOP. - The "Time to gather data(sec):" field is the time - passed in seconds before data is gathered from the - remote target for analysis. - The "show pids in wakeups list:" field corresponds - to the -p argument passed to - PowerTOP. - LatencyTOP and Perf: - LatencyTOP identifies system latency, while - Perf monitors the system's performance counter - registers. - Selecting either of these tools causes an RSE terminal - view to appear from which you can run the tools. - Both tools refresh the entire screen to display results - while they run. - For more information on setting up and using - perf, see the - "perf" - section in the Yocto Project Profiling and Tracing - Manual. - - SystemTap: - Systemtap is a tool that lets you create and reuse - scripts to examine the activities of a live Linux - system. - You can easily extract, filter, and summarize data - that helps you diagnose complex performance or - functional problems. - For more information on setting up and using - SystemTap, see the - SystemTap Documentation. - - yocto-bsp: - The yocto-bsp tool lets you - quickly set up a Board Support Package (BSP) layer. - The tool requires a Metadata location, build location, - BSP name, BSP output location, and a kernel - architecture. - For more information on the - yocto-bsp tool outside of Eclipse, - see the - "Creating a new BSP Layer Using the yocto-bsp Script" - section in the Yocto Project Board Support Package - (BSP) Developer's Guide. - - - -
-
- -
- Workflow Using Stand-Alone Cross-Development Toolchains - - - If you want to develop an application without prior installation - of the ADT, you still can employ the - Cross Development Toolchain, - the QEMU emulator, and a number of supported target image files. - You just need to follow these general steps: - - Install the cross-development - toolchain for your target hardware: - For information on how to install the toolchain, see the - "Using a Cross-Toolchain Tarball" - section in the Yocto Project Application Developer's - Guide. - Download the Target Image: - The Yocto Project supports several target architectures - and has many pre-built kernel images and root filesystem - images. - If you are going to develop your application on - hardware, go to the - machines - download area and choose a target machine area - from which to download the kernel image and root filesystem. - This download area could have several files in it that - support development using actual hardware. - For example, the area might contain - .hddimg files that combine the - kernel image with the filesystem, boot loaders, and - so forth. - Be sure to get the files you need for your particular - development process. - If you are going to develop your application and - then run and test it using the QEMU emulator, go to the - machines/qemu - download area. - From this area, go down into the directory for your - target architecture (e.g. qemux86_64 - for an Intel-based - 64-bit architecture). - Download kernel, root filesystem, and any other files you - need for your process. - In order to use the root filesystem in QEMU, you - need to extract it. - See the - "Extracting the Root Filesystem" - section for information on how to extract the root - filesystem. - Develop and Test your - Application: At this point, you have the tools - to develop your application. - If you need to separately install and use the QEMU - emulator, you can go to - QEMU Home Page - to download and learn about the emulator. - You can see the - "Using the Quick EMUlator (QEMU)" - chapter for information on using QEMU within the Yocto - Project. - - -
@@ -1713,7 +569,7 @@ describes this workflow. If you want more information that showcases the workflow, click here - for an excellent presentation by Trevor Woerner that + for a presentation by Trevor Woerner that, while somewhat dated, provides detailed background information and a complete working tutorial. diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml index 70fa96975d..e81ec15f75 100644 --- a/documentation/dev-manual/dev-manual-newbie.xml +++ b/documentation/dev-manual/dev-manual-newbie.xml @@ -106,12 +106,9 @@ isolated applications. When possible, use the Yocto Project plug-in for the Eclipse IDE - and other pieces of Application Development - Technology (ADT). + and SDK development practices. For more information, see the - "Application - Development Workflow" section as well as the - Yocto Project Application Developer's Guide. + "Yocto Project Software Development Kit (SDK) Developer's Guide". Keep your cross-development toolchains updated. @@ -650,8 +647,7 @@ section in the Yocto Project Reference Manual. You can also find more information on using the relocatable toolchain in the - Yocto Project - Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. Image: An image is an artifact of the BitBake build process given diff --git a/documentation/dev-manual/dev-manual-qemu.xml b/documentation/dev-manual/dev-manual-qemu.xml index 903028f5cf..66ecf2d13f 100644 --- a/documentation/dev-manual/dev-manual-qemu.xml +++ b/documentation/dev-manual/dev-manual-qemu.xml @@ -47,11 +47,10 @@ QEMU is made available with the Yocto Project a number of ways. - The easiest and recommended method for getting QEMU is to run the - ADT installer. For more information on how to make sure you have + One method is to install a Software Development Kit (SDK). + For more information on how to make sure you have QEMU available, see the - "The QEMU Emulator" - section in the Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide.
diff --git a/documentation/dev-manual/dev-manual-start.xml b/documentation/dev-manual/dev-manual-start.xml index 9f349adcdd..a9a0c797b4 100644 --- a/documentation/dev-manual/dev-manual-start.xml +++ b/documentation/dev-manual/dev-manual-start.xml @@ -279,8 +279,9 @@ applications using the Eclipse Integrated Development Environment (IDE), you will need this plug-in. See the - "Setting up the Eclipse IDE" - section for more information. + "Setting up the Eclipse IDE" + section in the Yocto Project Software Development Kit (SDK) + Developer's Guide for more information.
@@ -366,8 +367,7 @@ by sourcing an environment setup script. Finally, you start the QEMU emulator. You can find details on all these steps in the - "Example Using Pre-Built Binaries and QEMU" - section of the Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. You can learn more about using QEMU with the Yocto Project in the "Using the Quick EMUlator (QEMU)" section. diff --git a/documentation/dev-manual/figures/app-dev-flow.png b/documentation/dev-manual/figures/app-dev-flow.png deleted file mode 100644 index ec93374ee7e1f5a33afb9c56eccda15fdc385e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53301 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 diff --git a/documentation/ref-manual/introduction.xml b/documentation/ref-manual/introduction.xml index e82f8340fb..ecabaaa421 100644 --- a/documentation/ref-manual/introduction.xml +++ b/documentation/ref-manual/introduction.xml @@ -245,9 +245,9 @@ $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
- ADT Installer Extras: + SDK Installer Extras: Packages needed if you are going to be using the - Application Development Toolkit (ADT) Installer: + the standard or extensible SDK: $ sudo apt-get install autoconf automake libtool libglib2.0-dev libarchive-dev @@ -289,9 +289,9 @@ $ sudo dnf install make docbook-style-dsssl docbook-style-xsl \ docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc - ADT Installer Extras: + SDK Installer Extras: Packages needed if you are going to be using the - Application Development Toolkit (ADT) Installer: + standard or extensible SDK: $ sudo dnf install autoconf automake libtool glib2-devel libarchive-devel @@ -332,9 +332,9 @@ $ sudo zypper install make fop xsltproc dblatex xmlto - ADT Installer Extras: + SDK Installer Extras: Packages needed if you are going to be using the - Application Development Toolkit (ADT) Installer: + standard or extensible SDK: $ sudo zypper install autoconf automake libtool glib2-devel libarchive-devel @@ -387,9 +387,9 @@ $ sudo yum install make docbook-style-dsssl docbook-style-xsl \ docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc - ADT Installer Extras: + SDK Installer Extras: Packages needed if you are going to be using the - Application Development Toolkit (ADT) Installer: + standard or extensible SDK: $ sudo yum install autoconf automake libtool glib2-devel libarchive-devel diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml index bf4e5a949b..96258949a0 100644 --- a/documentation/ref-manual/ref-classes.xml +++ b/documentation/ref-manual/ref-classes.xml @@ -2638,8 +2638,8 @@ toolchain using the do_populate_sdk task, see the - "Optionally Building a Toolchain Installer" - section in the Yocto Project Application Developer's Guide. + "Optionally Building a Toolchain Installer" + section in the Yocto Project Software Development Kit (SDK) Developer's Guide. @@ -2718,8 +2718,9 @@ cross-development toolchain using the do_populate_sdk task, see the - "Optionally Building a Toolchain Installer" - section in the Yocto Project Application Developer's Guide. + "Optionally Building a Toolchain Installer" + section in the Yocto Project Software Development Kit (SDK) Developer's + Guide. diff --git a/documentation/ref-manual/ref-features.xml b/documentation/ref-manual/ref-features.xml index 1499853608..56e1185681 100644 --- a/documentation/ref-manual/ref-features.xml +++ b/documentation/ref-manual/ref-features.xml @@ -333,9 +333,7 @@ oprofile, exmap, and LTTng. For general information on user-space tools, see the - "User-Space Tools" - section in the Yocto Project Application Developer's - Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. tools-sdk: Installs a full SDK that runs on the device. diff --git a/documentation/ref-manual/ref-structure.xml b/documentation/ref-manual/ref-structure.xml index 578b381e09..8be054ba08 100644 --- a/documentation/ref-manual/ref-structure.xml +++ b/documentation/ref-manual/ref-structure.xml @@ -766,8 +766,8 @@ toolchain installer scripts, which when executed, install the sysroot that matches your target hardware. You can find out more about these installers in the - "Optionally Building a Toolchain Installer" - section in the Yocto Project Application Developer's Guide. + "Optionally Building a Toolchain Installer" + section in the Yocto Project Software Development Kit (SDK) Developer's Guide. diff --git a/documentation/ref-manual/ref-variables.xml b/documentation/ref-manual/ref-variables.xml index 376cd9a9ee..ad87a63312 100644 --- a/documentation/ref-manual/ref-variables.xml +++ b/documentation/ref-manual/ref-variables.xml @@ -11140,14 +11140,13 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3" SDKMACHINE - SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items." + SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK items." - The machine for which the Application Development Toolkit - (ADT) or SDK is built. - In other words, the SDK or ADT is built such that it + The machine for which the SDK is built. + In other words, the SDK is built such that it runs on the target you specify with the SDKMACHINE value. The value points to a corresponding @@ -13577,8 +13576,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3" section. For information on setting up a cross-development environment, see the - "Installing the ADT and Toolchains" - section in the Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. @@ -13629,8 +13627,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3" section. For information on setting up a cross-development environment, see the - "Installing the ADT and Toolchains" - section in the Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. diff --git a/documentation/ref-manual/technical-details.xml b/documentation/ref-manual/technical-details.xml index 2098818d04..d99ff188ad 100644 --- a/documentation/ref-manual/technical-details.xml +++ b/documentation/ref-manual/technical-details.xml @@ -187,7 +187,7 @@ This section provides some technical background on how cross-development toolchains are created and used. For more information on toolchains, you can also see the - Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. @@ -371,8 +371,9 @@ For information on advantages gained when building a cross-development toolchain installer, see the - "Optionally Building a Toolchain Installer" - section in the Yocto Project Application Developer's Guide. + "Optionally Building a Toolchain Installer" + section in the Yocto Project Software Development Kit (SDK) Developer's + Guide. diff --git a/documentation/ref-manual/usingpoky.xml b/documentation/ref-manual/usingpoky.xml index d1a0a29eff..09ecaafda5 100644 --- a/documentation/ref-manual/usingpoky.xml +++ b/documentation/ref-manual/usingpoky.xml @@ -113,8 +113,7 @@ tmp/deploy/images. For information on how to run pre-built images such as qemux86 and qemuarm, see the - "Example Using Pre-Built Binaries and QEMU" - section in the Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. For information about how to install these images, see the documentation for your particular board or machine. @@ -150,10 +149,11 @@ For discussions on debugging, see the - "Debugging With the GNU Project Debugger (GDB) Remotely" - and - "Working within Eclipse" - sections in the Yocto Project Development Manual. + "Debugging With the GNU Project Debugger (GDB) Remotely" section + in the Yocto Project Developer's Manual + and the + "Working within Eclipse" + section in the Yocto Project Software Development Kit (SDK) Developer's Guide. diff --git a/documentation/sdk-manual/sdk-intro.xml b/documentation/sdk-manual/sdk-intro.xml index 5b12fcff64..ccc71c8cf4 100644 --- a/documentation/sdk-manual/sdk-intro.xml +++ b/documentation/sdk-manual/sdk-intro.xml @@ -14,6 +14,9 @@ This manual provides information that lets you use both the standard Yocto Project SDK and an extensible SDK to develop applications and images using the Yocto Project. + Additionally, the manual also provides information on how to use + the popular Eclipse IDE as part + of your application development workflow. @@ -63,6 +66,61 @@ Yocto Project to produce the modified image. + + You just need to follow these general steps: + + Install the SDK for your target hardware: + For information on how to install the SDK, see the + "Installing the SDK" + section. + Download the Target Image: + The Yocto Project supports several target architectures + and has many pre-built kernel images and root filesystem + images. + If you are going to develop your application on + hardware, go to the + machines + download area and choose a target machine area + from which to download the kernel image and root filesystem. + This download area could have several files in it that + support development using actual hardware. + For example, the area might contain + .hddimg files that combine the + kernel image with the filesystem, boot loaders, and + so forth. + Be sure to get the files you need for your particular + development process. + If you are going to develop your application and + then run and test it using the QEMU emulator, go to the + machines/qemu + download area. + From this area, go down into the directory for your + target architecture (e.g. qemux86_64 + for an Intel-based + 64-bit architecture). + Download kernel, root filesystem, and any other files you + need for your process. + In order to use the root filesystem in QEMU, you + need to extract it. + See the + "Extracting the Root Filesystem" + section for information on how to extract the root + filesystem. + Develop and Test your + Application: At this point, you have the tools + to develop your application. + If you need to separately install and use the QEMU + emulator, you can go to + QEMU Home Page + to download and learn about the emulator. + You can see the + "Using the Quick EMUlator (QEMU)" + chapter in the Yocto Project Development Manual + for information on using QEMU within the Yocto + Project. + + + The remainder of this manual describes how to use both the standard SDK and the extensible SDK. diff --git a/documentation/sdk-manual/sdk-using.xml b/documentation/sdk-manual/sdk-using.xml index f2acaa7fc4..1403632db1 100644 --- a/documentation/sdk-manual/sdk-using.xml +++ b/documentation/sdk-manual/sdk-using.xml @@ -273,7 +273,7 @@ Source the cross-toolchain environment setup file: Installation of the cross-toolchain creates a cross-toolchain - environment setup script in the directory that the ADT + environment setup script in the directory that the SDK was installed. Before you can use the tools to develop your project, you must source this setup script. @@ -281,7 +281,7 @@ the machine architecture, which is followed by the string "poky-linux". Here is an example that sources a script from the - default ADT installation directory that uses the + default SDK installation directory that uses the 32-bit Intel x86 Architecture and the &DISTRO_NAME; Yocto Project release: @@ -439,15 +439,1050 @@ -
- Using the SDK to <replaceable>item 1</replaceable> +
+ Devloping Applications Using <trademark class='trade'>Eclipse</trademark> - - Describe the specific task you are going to accomplish with the SDK. - Provide a diagram showing the rough flow of the task. - Provide specific steps using a real example that works through the - task. + + If you are familiar with the popular Eclipse IDE, you can use an + Eclipse Yocto Plug-in to allow you to develop, deploy, and test your + application all from within Eclipse. + This section describes general workflow using the SDK and Eclipse + and how to configure and set up Eclipse. + +
+ + Workflow Using <trademark class='trade'>Eclipse</trademark> + + + The following figure and supporting list summarize the application + development general workflow that employs both the SDK Eclipse. + + + + + + + + + Prepare the host system for the Yocto Project: + See + "Supported Linux Distributions" + and + "Required Packages for the Host Development System" sections both + in the Yocto Project Reference Manual for requirements. + In particular, be sure your host system has the + xterm package installed. + + Secure the Yocto Project kernel target image: + You must have a target kernel image that has been built using the OpenEmbedded + build system. + Depending on whether the Yocto Project has a pre-built image that matches your target + architecture and where you are going to run the image while you develop your application + (QEMU or real hardware), the area from which you get the image differs. + + Download the image from + machines + if your target architecture is supported and you are going to develop + and test your application on actual hardware. + Download the image from + + machines/qemu if your target architecture is supported + and you are going to develop and test your application using the QEMU + emulator. + Build your image if you cannot find a pre-built image that matches + your target architecture. + If your target architecture is similar to a supported architecture, you can + modify the kernel image before you build it. + See the + "Patching the Kernel" + section in the Yocto Project Development + manual for an example. + + For information on pre-built kernel image naming schemes for images + that can run on the QEMU emulator, see the + Yocto Project Software Development Kit (SDK) Developer's Guide. + + Install the SDK: + The SDK provides a target-specific cross-development toolchain, the root filesystem, + the QEMU emulator, and other tools that can help you develop your application. + For information on how to install the SDK, see the + "Installing the SDK" + section. + + Secure the target root filesystem + and the Cross-development toolchain: + You need to find and download the appropriate root filesystem and + the cross-development toolchain. + You can find the tarballs for the root filesystem in the same area used + for the kernel image. + Depending on the type of image you are running, the root filesystem you need differs. + For example, if you are developing an application that runs on an image that + supports Sato, you need to get a root filesystem that supports Sato. + You can find the cross-development toolchains at + toolchains. + Be sure to get the correct toolchain for your development host and your + target architecture. + See the "Locating Pre-Built SDK Installers" + section for information and the + "Installing the SDK" + section for installation information. + + Create and build your application: + At this point, you need to have source files for your application. + Once you have the files, you can use the Eclipse IDE to import them and build the + project. + If you are not using Eclipse, you need to use the cross-development tools you have + installed to create the image. + Deploy the image with the application: + If you are using the Eclipse IDE, you can deploy your image to the hardware or to + QEMU through the project's preferences. + If you are not using the Eclipse IDE, then you need to deploy the application + to the hardware using other methods. + Or, if you are using QEMU, you need to use that tool and + load your image in for testing. + See the + "Using the Quick EMUlator (QEMU)" + chapter in the Yocto Project Development Manual + for information on using QEMU. + + Test and debug the application: + Once your application is deployed, you need to test it. + Within the Eclipse IDE, you can use the debugging environment along with the + set of installed user-space tools to debug your application. + Of course, the same user-space tools are available separately if you choose + not to use the Eclipse IDE. + + +
+ +
+ Working Within Eclipse + + + The Eclipse IDE is a popular development environment and it fully + supports development using the Yocto Project. + + This release of the Yocto Project supports both the Luna + and Kepler versions of the Eclipse IDE. + Thus, the following information provides setup information for + both versions. + + + + + When you install and configure the Eclipse Yocto Project Plug-in + into the Eclipse IDE, you maximize your Yocto Project experience. + Installing and configuring the Plug-in results in an environment + that has extensions specifically designed to let you more easily + develop software. + These extensions allow for cross-compilation, deployment, and + execution of your output into a QEMU emulation session as well as + actual target hardware. + You can also perform cross-debugging and profiling. + The environment also supports a suite of tools that allows you + to perform remote profiling, tracing, collection of power data, + collection of latency data, and collection of performance data. + + + + This section describes how to install and configure the Eclipse IDE + Yocto Plug-in and how to use it to develop your application. + + +
+ Setting Up the Eclipse IDE + + + To develop within the Eclipse IDE, you need to do the following: + + Install the optimal version of the Eclipse + IDE. + Configure the Eclipse IDE. + + Install the Eclipse Yocto Plug-in. + + Configure the Eclipse Yocto Plug-in. + + + + Do not install Eclipse from your distribution's package + repository. + Be sure to install Eclipse from the official Eclipse + download site as directed in the next section. + + + +
+ Installing the Eclipse IDE + + + It is recommended that you have the Luna SR2 (4.4.2) + version of the Eclipse IDE installed on your development + system. + However, if you currently have the Kepler 4.3.2 version + installed and you do not want to upgrade the IDE, you can + configure Kepler to work with the Yocto Project. + + + + If you do not have the Luna SR2 (4.4.2) Eclipse IDE + installed, you can find the tarball at + . + From that site, choose the appropriate download from the + "Eclipse IDE for C/C++ Developers". + This version contains the Eclipse Platform, the Java + Development Tools (JDT), and the Plug-in Development + Environment. + + + + Once you have downloaded the tarball, extract it into a + clean directory. + For example, the following commands unpack and install the + downloaded Eclipse IDE tarball into a clean directory + using the default name eclipse: + + $ cd ~ + $ tar -xzvf ~/Downloads/eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz + + +
+ +
+ Configuring the Eclipse IDE + + + This section presents the steps needed to configure the + Eclipse IDE. + + + + Before installing and configuring the Eclipse Yocto Plug-in, + you need to configure the Eclipse IDE. + Follow these general steps: + + Start the Eclipse IDE. + Make sure you are in your Workbench and + select "Install New Software" from the "Help" + pull-down menu. + Select + Luna - &ECLIPSE_LUNA_URL; + from the "Work with:" pull-down menu. + + For Kepler, select + Kepler - &ECLIPSE_KEPLER_URL; + + + Expand the box next to "Linux Tools" + and select the + Linux Tools LTTng Tracer Control, + Linux Tools LTTng Userspace Analysis, + and + LTTng Kernel Analysis boxes. + If these selections do not appear in the list, + that means the items are already installed. + + For Kepler, select + LTTng - Linux Tracing Toolkit + box. + + + Expand the box next to "Mobile and + Device Development" and select the following boxes. + Again, if any of the following items are not + available for selection, that means the items are + already installed: + + C/C++ Remote Launch (Requires RSE Remote System Explorer) + Remote System Explorer End-user Runtime + Remote System Explorer User Actions + Target Management Terminal (Core SDK) + TCF Remote System Explorer add-in + TCF Target Explorer + + Expand the box next to "Programming + Languages" and select the + C/C++ Autotools Support + and C/C++ Development Tools + boxes. + For Luna, these items do not appear on the list + as they are already installed. + + Complete the installation and restart + the Eclipse IDE. + + +
+ +
+ Installing or Accessing the Eclipse Yocto Plug-in + + + You can install the Eclipse Yocto Plug-in into the Eclipse + IDE one of two ways: use the Yocto Project's Eclipse + Update site to install the pre-built plug-in or build and + install the plug-in from the latest source code. + + +
+ Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site + + + To install the Eclipse Yocto Plug-in from the update + site, follow these steps: + + Start up the Eclipse IDE. + + In Eclipse, select "Install New + Software" from the "Help" menu. + + Click "Add..." in the "Work with:" + area. + Enter + &ECLIPSE_DL_PLUGIN_URL;/luna + in the URL field and provide a meaningful name + in the "Name" field. + + If you are using Kepler, use + &ECLIPSE_DL_PLUGIN_URL;/kepler + in the URL field. + + Click "OK" to have the entry added + to the "Work with:" drop-down list. + + Select the entry for the plug-in + from the "Work with:" drop-down list. + + Check the boxes next to + Yocto Project ADT Plug-in, + Yocto Project Bitbake Commander Plug-in, + and + Yocto Project Documentation plug-in. + + Complete the remaining software + installation steps and then restart the Eclipse + IDE to finish the installation of the plug-in. + + You can click "OK" when prompted about + installing software that contains unsigned + content. + + + + +
+ +
+ Installing the Plug-in Using the Latest Source Code + + + To install the Eclipse Yocto Plug-in from the latest + source code, follow these steps: + + Be sure your development system + is not using OpenJDK to build the plug-in + by doing the following: + + Use the Oracle JDK. + If you don't have that, go to + + and download the latest appropriate + Java SE Development Kit tarball for + your development system and + extract it into your home directory. + + In the shell you are going + to do your work, export the location of + the Oracle Java. + The previous step creates a new folder + for the extracted software. + You need to use the following + export command + and provide the specific location: + + export PATH=~/extracted_jdk_location/bin:$PATH + + + + + In the same shell, create a Git + repository with: + + $ cd ~ + $ git clone git://git.yoctoproject.org/eclipse-poky + + + Be sure to checkout the correct + tag. + For example, if you are using Luna, do the + following: + + $ git checkout luna/yocto-&DISTRO; + + This puts you in a detached HEAD state, which + is fine since you are only going to be building + and not developing. + + If you are building kepler, checkout the + kepler/yocto-&DISTRO; + branch. + + + Change to the + scripts + directory within the Git repository: + + $ cd scripts + + + Set up the local build environment + by running the setup script: + + $ ./setup.sh + + + When the script finishes execution, + it prompts you with instructions on how to run + the build.sh script, which + is also in the scripts + directory of the Git repository created + earlier. + + Run the build.sh + script as directed. + Be sure to provide the tag name, documentation + branch, and a release name. + Here is an example that uses the + luna/yocto-&DISTRO; tag, the + master documentation + branch, and + &DISTRO_NAME; for the + release name: + + $ ECLIPSE_HOME=/home/scottrif/eclipse-poky/scripts/eclipse ./build.sh luna/yocto-&DISTRO; master &DISTRO_NAME; 2>&1 | tee -a build.log + + After running the script, the file + org.yocto.sdk-release-date-archive.zip + is in the current directory. + + If necessary, start the Eclipse IDE + and be sure you are in the Workbench. + + Select "Install New Software" from + the "Help" pull-down menu. + + Click "Add". + Provide anything you want in the + "Name" field. + + Click "Archive" and browse to the + ZIP file you built in step eight. + This ZIP file should not be "unzipped", and must + be the *archive.zip file + created by running the + build.sh script. + + Click the "OK" button. + + Check the boxes that appear in + the installation window to install the + Yocto Project ADT Plug-in, + Yocto Project Bitbake Commander Plug-in, + and the + Yocto Project Documentation plug-in. + + Finish the installation by clicking + through the appropriate buttons. + You can click "OK" when prompted about + installing software that contains unsigned + content. + + Restart the Eclipse IDE if + necessary. + + + + + + At this point you should be able to configure the + Eclipse Yocto Plug-in as described in the + "Configuring the Eclipse Yocto Plug-in" + section. +
+
+ +
+ Configuring the Eclipse Yocto Plug-in + + + Configuring the Eclipse Yocto Plug-in involves setting the + Cross Compiler options and the Target options. + The configurations you choose become the default settings + for all projects. + You do have opportunities to change them later when + you configure the project (see the following section). + + + + To start, you need to do the following from within the + Eclipse IDE: + + Choose "Preferences" from the + "Window" menu to display the Preferences Dialog. + + Click "Yocto Project ADT" to display + the configuration screen. + + + + +
+ Configuring the Cross-Compiler Options + + + To configure the Cross Compiler Options, you must select + the type of toolchain, point to the toolchain, specify + the sysroot location, and select the target + architecture. + + Selecting the Toolchain Type: + Choose between + Standalone pre-built toolchain + and + Build system derived toolchain + for Cross Compiler Options. + + + Standalone Pre-built Toolchain: + Select this mode when you are using + a stand-alone cross-toolchain. + For example, suppose you are an + application developer and do not + need to build a target image. + Instead, you just want to use an + architecture-specific toolchain on + an existing kernel and target root + filesystem. + + Build System Derived Toolchain: + Select this mode if the + cross-toolchain has been installed + and built as part of the + Build Directory. + When you select + Build system derived toolchain, + you are using the toolchain bundled + inside the Build Directory. + + + + Point to the Toolchain: + If you are using a stand-alone pre-built + toolchain, you should be pointing to where it is + installed. + See the + "Installing the SDK" + section for information about how the SDK is + installed. + If you are using a system-derived + toolchain, the path you provide for the + Toolchain Root Location + field is the + Build Directory. + See the + "Optionally Building a Toolchain Installer" + section. + Specify the Sysroot Location: + This location is where the root filesystem for + the target hardware resides. + + The location of + the sysroot filesystem depends on where you + separately extracted and installed the + filesystem. + For information on how to install the + toolchain and on how to extract and install the + sysroot filesystem, see the + "Optionally Building a Toolchain Installer" + section. + + Select the Target Architecture: + The target architecture is the type of hardware + you are going to use or emulate. + Use the pull-down + Target Architecture menu + to make your selection. + The pull-down menu should have the supported + architectures. + If the architecture you need is not listed in + the menu, you will need to build the image. + See the + "Building Images" + section of the Yocto Project Quick Start for + more information. + + +
+ +
+ Configuring the Target Options + + + You can choose to emulate hardware using the QEMU + emulator, or you can choose to run your image on actual + hardware. + + QEMU: + Select this option if you will be using the + QEMU emulator. + If you are using the emulator, you also need to + locate the kernel and specify any custom + options. + If you selected + Build system derived toolchain, + the target kernel you built will be located in + the Build Directory in + tmp/deploy/images/machine + directory. + If you selected + Standalone pre-built toolchain, + the pre-built image you downloaded is located + in the directory you specified when you + downloaded the image. + Most custom options are for advanced QEMU + users to further customize their QEMU instance. + These options are specified between paired + angled brackets. + Some options must be specified outside the + brackets. + In particular, the options + serial, + nographic, and + kvm must all be outside the + brackets. + Use the man qemu command + to get help on all the options and their use. + The following is an example: + + serial ‘<-m 256 -full-screen>’ + + + Regardless of the mode, Sysroot is already + defined as part of the Cross-Compiler Options + configuration in the + Sysroot Location: field. + + External HW: + Select this option if you will be using actual + hardware. + + + + + Click the "OK" to save your plug-in configurations. + +
+
+
+ +
+ Creating the Project + + + You can create two types of projects: Autotools-based, or + Makefile-based. + This section describes how to create Autotools-based projects + from within the Eclipse IDE. + For information on creating Makefile-based projects in a + terminal window, see the + "Makefile-Based Projects" + section. + + Do not use special characters in project names + (e.g. spaces, underscores, etc.). Doing so can + cause configuration to fail. + + + + + To create a project based on a Yocto template and then display + the source code, follow these steps: + + Select "Project" from the "File -> New" menu. + + Double click CC++. + + Double click C Project + to create the project. + Expand Yocto Project ADT Autotools Project. + + Select Hello World ANSI C Autotools Project. + This is an Autotools-based project based on a Yocto + template. + Put a name in the Project name: + field. + Do not use hyphens as part of the name. + + Click "Next". + Add information in the + Author and + Copyright notice fields. + + Be sure the License + field is correct. + Click "Finish". + If the "open perspective" prompt appears, + click "Yes" so that you in the C/C++ perspective. + + The left-hand navigation pane shows your + project. + You can display your source by double clicking the + project's source file. + + +
+ +
+ Configuring the Cross-Toolchains + + + The earlier section, + "Configuring the Eclipse Yocto Plug-in", + sets up the default project configurations. + You can override these settings for a given project by following + these steps: + + Select "Change Yocto Project Settings" from + the "Project" menu. + This selection brings up the Yocto Project Settings + Dialog and allows you to make changes specific to an + individual project. + By default, the Cross Compiler Options and Target + Options for a project are inherited from settings you + provided using the Preferences Dialog as described + earlier in the + "Configuring the Eclipse Yocto Plug-in" section. + The Yocto Project Settings Dialog allows you to override + those default settings for a given project. + + Make your configurations for the project + and click "OK". + + Right-click in the navigation pane and + select "Reconfigure Project" from the pop-up menu. + This selection reconfigures the project by running + autogen.sh in the workspace for + your project. + The script also runs libtoolize, + aclocal, + autoconf, + autoheader, + automake --a, and + ./configure. + Click on the "Console" tab beneath your source code to + see the results of reconfiguring your project. + + + +
+ +
+ Building the Project + + + To build the project select "Build Project" from the + "Project" menu. + The console should update and you can note the cross-compiler + you are using. + + When building "Yocto Project ADT Autotools" projects, the Eclipse + IDE might display error messages for Functions/Symbols/Types + that cannot be "resolved", even when the related include file + is listed at the project navigator and when the project is + able to build. + For these cases only, it is recommended to add a new linked + folder to the appropriate sysroot. + Use these steps to add the linked folder: + + + Select the project. + + + Select "Folder" from the + File > New menu. + + + In the "New Folder" Dialog, select "Link to alternate + location (linked folder)". + + + Click "Browse" to navigate to the include folder inside + the same sysroot location selected in the Yocto Project + configuration preferences. + + + Click "OK". + + + Click "Finish" to save the linked folder. + + + + +
+ +
+ Starting QEMU in User-Space NFS Mode + + + To start the QEMU emulator from within Eclipse, follow these + steps: + + See the + "Using the Quick EMUlator (QEMU)" + chapter in the Yocto Project Development Manual + for more information on using QEMU. + + + Expose and select "External Tools" from + the "Run" menu. + Your image should appear as a selectable menu item. + + Select your image from the menu to launch + the emulator in a new window. + + If needed, enter your host root password in + the shell window at the prompt. + This sets up a Tap 0 connection + needed for running in user-space NFS mode. + + Wait for QEMU to launch. + Once QEMU launches, you can begin operating + within that environment. + One useful task at this point would be to determine the + IP Address for the user-space NFS by using the + ifconfig command. + + + +
+ +
+ Deploying and Debugging the Application + + + Once the QEMU emulator is running the image, you can deploy + your application using the Eclipse IDE and then use + the emulator to perform debugging. + Follow these steps to deploy the application. + + Select "Debug Configurations..." from the + "Run" menu. + In the left area, expand + C/C++Remote Application. + + Locate your project and select it to bring + up a new tabbed view in the Debug Configurations Dialog. + + Enter the absolute path into which you want + to deploy the application. + Use the "Remote Absolute File Path for + C/C++Application:" field. + For example, enter + /usr/bin/programname. + + Click on the "Debugger" tab to see the + cross-tool debugger you are using. + Click on the "Main" tab. + Create a new connection to the QEMU instance + by clicking on "new". + Select TCF, which means + Target Communication Framework. + Click "Next". + Clear out the "host name" field and enter + the IP Address determined earlier. + Click "Finish" to close the + New Connections Dialog. + Use the drop-down menu now in the + "Connection" field and pick the IP Address you entered. + + Click "Debug" to bring up a login screen + and login. + Accept the debug perspective. + + + +
+ +
+ Running User-Space Tools + + + As mentioned earlier in the manual, several tools exist that + enhance your development experience. + These tools are aids in developing and debugging applications + and images. + You can run these user-space tools from within the Eclipse + IDE through the "YoctoProjectTools" menu. + + + + Once you pick a tool, you need to configure it for the remote + target. + Every tool needs to have the connection configured. + You must select an existing TCF-based RSE connection to the + remote target. + If one does not exist, click "New" to create one. + + + + Here are some specifics about the remote tools: + + OProfile: + Selecting this tool causes the + oprofile-server on the remote + target to launch on the local host machine. + The oprofile-viewer must be + installed on the local host machine and the + oprofile-server must be installed + on the remote target, respectively, in order to use. + You must compile and install the + oprofile-viewer from the source + code on your local host machine. + Furthermore, in order to convert the target's sample + format data into a form that the host can use, you must + have OProfile version 0.9.4 or greater installed on the + host. + You can locate both the viewer and server from + . + You can also find more information on setting up and + using this tool in the + "oprofile" + section of the Yocto Project Profiling and Tracing + Manual. + The oprofile-server is + installed by default on the + core-image-sato-sdk image. + + Lttng2.0 trace import: + Selecting this tool transfers the remote target's + Lttng tracing data back to the + local host machine and uses the Lttng Eclipse plug-in + to graphically display the output. + For information on how to use Lttng to trace an + application, + see + and the + "LTTng (Linux Trace Toolkit, next generation)" + section, which is in the Yocto Project Profiling and + Tracing Manual. + Do not use + Lttng-user space (legacy) tool. + This tool no longer has any upstream support. + + Before you use the + Lttng2.0 trace import tool, + you need to setup the Lttng Eclipse plug-in and create a + Tracing project. + Do the following: + + Select "Open Perspective" from the + "Window" menu and then select "Other..." to + bring up a menu of other perspectives. + Choose "Tracing". + + Click "OK" to change the Eclipse + perspective into the Tracing perspective. + + Create a new Tracing project by + selecting "Project" from the "File -> New" menu. + + Choose "Tracing Project" from the + "Tracing" menu and click "Next". + + Provide a name for your tracing + project and click "Finish". + + Generate your tracing data on the + remote target. + Select "Lttng2.0 trace import" + from the "Yocto Project Tools" menu to + start the data import process. + Specify your remote connection name. + + For the Ust directory path, specify + the location of your remote tracing data. + Make sure the location ends with + ust (e.g. + /usr/mysession/ust). + + Click "OK" to complete the import + process. + The data is now in the local tracing project + you created. + Right click on the data and then use + the menu to Select "Generic CTF Trace" from the + "Trace Type... -> Common Trace Format" menu to + map the tracing type. + Right click the mouse and select + "Open" to bring up the Eclipse Lttng Trace + Viewer so you view the tracing data. + + + PowerTOP: + Selecting this tool runs PowerTOP on the remote target + machine and displays the results in a new view called + PowerTOP. + The "Time to gather data(sec):" field is the time + passed in seconds before data is gathered from the + remote target for analysis. + The "show pids in wakeups list:" field corresponds + to the -p argument passed to + PowerTOP. + LatencyTOP and Perf: + LatencyTOP identifies system latency, while + Perf monitors the system's performance counter + registers. + Selecting either of these tools causes an RSE terminal + view to appear from which you can run the tools. + Both tools refresh the entire screen to display results + while they run. + For more information on setting up and using + perf, see the + "perf" + section in the Yocto Project Profiling and Tracing + Manual. + + SystemTap: + Systemtap is a tool that lets you create and reuse + scripts to examine the activities of a live Linux + system. + You can easily extract, filter, and summarize data + that helps you diagnose complex performance or + functional problems. + For more information on setting up and using + SystemTap, see the + SystemTap Documentation. + + yocto-bsp: + The yocto-bsp tool lets you + quickly set up a Board Support Package (BSP) layer. + The tool requires a Metadata location, build location, + BSP name, BSP output location, and a kernel + architecture. + For more information on the + yocto-bsp tool outside of Eclipse, + see the + "Creating a new BSP Layer Using the yocto-bsp Script" + section in the Yocto Project Board Support Package + (BSP) Developer's Guide. + + + +
+
diff --git a/documentation/yocto-project-qs/yocto-project-qs.xml b/documentation/yocto-project-qs/yocto-project-qs.xml index 0d6e15292a..5aabb43af4 100644 --- a/documentation/yocto-project-qs/yocto-project-qs.xml +++ b/documentation/yocto-project-qs/yocto-project-qs.xml @@ -758,11 +758,9 @@ Project. The manual contains conceptual and procedural information that covers - common development models, - introduces - the Yocto Project open source development environment, - and describes the - workflow using Eclipse™. + common development models + and introduces + the Yocto Project open source development environment. The manual also contains several targeted sections that cover specific common tasks @@ -770,10 +768,22 @@ images, writing new recipes, working with libraries, and configuring and patching the kernel. + Look Through the Yocto Project Software Development Kit (SDK) Developer's Guide: + The + Yocto Project Software Development Kit (SDK) Developer's Guide + describes how to use both the standard SDK and the + extensible SDK. + This manual also provides an example workflow that uses + the popular Eclipse + development environment. + See the + "Workflow using Eclipse™" + section. + Learn About Application Development: If your primary interests lie in developing applications, you can reference the - Yocto Project Application Developer's Guide. + Yocto Project Software Development Kit (SDK) Developer's Guide. Learn About Board Support Packages (BSPs): If you want to learn about BSPs, see the