From 4c5157f7dcfecab3b4e4483cd122e0ae74b377ee Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Wed, 9 Mar 2016 13:30:27 -0800 Subject: 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 +------------------- documentation/dev-manual/dev-manual-newbie.xml | 10 +- documentation/dev-manual/dev-manual-qemu.xml | 7 +- documentation/dev-manual/dev-manual-start.xml | 8 +- documentation/dev-manual/figures/app-dev-flow.png | Bin 53301 -> 0 bytes documentation/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 +- documentation/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. - - - - 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. + 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. - -
- 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 ec93374ee7..0000000000 Binary files a/documentation/dev-manual/figures/app-dev-flow.png and /dev/null differ diff --git a/documentation/mega-manual/figures/app-dev-flow.png b/documentation/mega-manual/figures/app-dev-flow.png deleted file mode 100644 index 4927b93d67..0000000000 Binary files a/documentation/mega-manual/figures/app-dev-flow.png and /dev/null differ 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 -- cgit 1.2.3-korg