From a626a5c208e5f19728a5d897a4d1b3e36b7a316f Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Tue, 20 Sep 2011 13:02:34 -0700 Subject: [PATCH] documentation/dev-manual/dev-manual-model.xml: Edits and start of app section. General edits up through the BSP and Kernel overview sections. I also put in place holder text and began on the application development over section. (From yocto-docs rev: 9c1b681ff253b469bffc355f0a938643997d85d4) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/dev-manual/dev-manual-model.xml | 135 +++++++++++++++++- 1 file changed, 133 insertions(+), 2 deletions(-) diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 9ef09eab53..a63d590c78 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml @@ -475,10 +475,141 @@
- Place-Holder Section For Application Development + Application Development Workflow - Text needed here. + Application development involves creation of an application that you want to be able + to run on your target hardware, which is running a Linux Yocto image. + Much of this process involves standard application development practices that are + not covered in detail in this manual. + However, the Yocto Project provides an application development environment that + facilitates quick integration of your application into its run-time environment. + For example, you can employ cross-development toolchains designed for your target hardware + to compile and link your application. + You can deploy your application to the actual hardware or to the QEMU emulator for testing. + You can even develop, deploy, and test your application all from within the popular + Eclipse IDE. + + + + To help you understand how application development works in the Yocto Project, this section + provides an overview of the general development process. + If you want to see a detailed example of the process as it is used from within the Eclipse + IDE, see + + The Application Development Toolkit (ADT) User's Manual. + + + + This illustration and the following list summarizes the application development general workflow. + + + + + + + + + Set up your host development system to support + development using the Yocto Project: See + "The Linux Distributions" and + "The Packages" sections both + in the Yocto Project Quick Start for requirements. + Establish a local copy of the Yocto Project files on your + system: Having the Yocto Project files on your system gives you access to + the build process and tools you need. + For information on how to get these files, see the bulleted item + "Yocto Project Release" earlier in this manual. + + Set up the poky-extras Git + repository: This repository is the area for your configuration + fragments, new kernel recipes, and the kernel .bbappend + file used during the build. + It is good practice to set this repository up inside the local Yocto + Project files Git repository. + For information on how to get these files, see the bulleted item + "The poky-extras Git Repository" + earlier in this manual. + Establish a local copy of the Linux Yocto kernel files on your + system: In order to make modifications to the kernel you need two things: + a bare clone of the Linux Yocto kernel you are modifying and + a copy of that bare clone. + The bare clone is required by the build process and is the area to which you + push your kernel source changes (pulling does not work with bare clones). + The copy of the bare clone is a local Git repository that contains all the kernel's + source files. + You make your changes to the files in this copy of the bare clone. + For information on how to set these two items up, see the bulleted item + "Linux Yocto Kernel" + earlier in this manual. + Make changes to the kernel source code if + applicable: Modifying the kernel does not always mean directly + changing source files. + However, if you have to do this, you make the changes in the local + Git repository you set up to hold the source files (i.e. the copy of the + bare clone). + Once the changes are made, you need to use Git commands to commit the changes + and then push them to the bare clone. + Make kernel configuration changes + to your local kernel layer if applicable: + If your situation calls for changing the kernel's configuration, you can + use menuconfig + to enable and disable kernel configurations. + Using menuconfig allows you to interactively develop and test the + configuration changes you are making to the kernel. + When saved, changes using menuconfig update the kernel's + .config. + As an alternative method to changing the kernel's configuration, you can simply + edit the .config found in the Yocto Project build + directory at tmp/sysroots/<machine-name>/kernel + directly. + Add new kernel recipes if applicable: The standard + layer structure organizes recipe files inside the + meta-kernel-dev layer that is within the + poky-extras Git repository. + If you need to add new kernel recipes, you add them within this layer. + Also within this area, you will find the .bbappend + file that appends information to the kernel's recipe file used during the + build. + + Prepare for the build: Once you have made all the + changes to your kernel (configurations, source code changes, recipe additions, + or recipe changes), there remains a few things + you need to do in order for the Yocto Project build system to create your image. + If you have not done so, you need to get the build environment ready by sourcing + the environment setup script described earlier. + You also need to be sure two key configuration files + (local.conf and bblayers.conf) + are configured appropriately. + The entire process for building an image is overviewed in the + "Building an Image" section of the Yocto Project Quick Start. + You might want to reference this information. + Also, you should look at the detailed examples found in the appendices at + at the end of this manual. + Build the image: The Yocto Project + build system Poky uses the BitBake + tool to build images based on the type of image you want to create. + You can find more information on BitBake + here. + The build process supports several types of images to satisfy different needs. + See the appendix + "Reference: Images" in the + + Yocto Project Reference Manual for information on supported + images. + Make your configuration changes available + in the kernel layer: Up to this point, all the configuration changes to the + kernel have been done and tested iteratively. + Once they are tested and ready to go, you can move them into the kernel layer, + which allows you to distribute the layer. + If applicable, share your in-tree changes: + If the changes you made + are suited for all Linux Yocto users, you might want to push the changes to a + contribution area for the Linux Yocto Git repository. + Once the changes are pushed, you can request that they + be pulled into the master branch of the kernel tree. + Doing so makes them available to everyone using the kernel. +