summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-model.xml
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2011-09-20 13:02:34 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-09-25 17:57:23 +0100
commita626a5c208e5f19728a5d897a4d1b3e36b7a316f (patch)
treef4662281394b3d9aa1f99512cfe34543f8348c29 /documentation/dev-manual/dev-manual-model.xml
parentcb333ad6f3d78233d784b55192c573962c0710ef (diff)
downloadpoky-a626a5c208e5f19728a5d897a4d1b3e36b7a316f.tar.gz
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 <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual/dev-manual-model.xml')
-rw-r--r--documentation/dev-manual/dev-manual-model.xml135
1 files 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 @@
475</section> 475</section>
476 476
477<section id='place-holder-section-two'> 477<section id='place-holder-section-two'>
478 <title>Place-Holder Section For Application Development</title> 478 <title>Application Development Workflow</title>
479 479
480 <para> 480 <para>
481 Text needed here. 481 Application development involves creation of an application that you want to be able
482 to run on your target hardware, which is running a Linux Yocto image.
483 Much of this process involves standard application development practices that are
484 not covered in detail in this manual.
485 However, the Yocto Project provides an application development environment that
486 facilitates quick integration of your application into its run-time environment.
487 For example, you can employ cross-development toolchains designed for your target hardware
488 to compile and link your application.
489 You can deploy your application to the actual hardware or to the QEMU emulator for testing.
490 You can even develop, deploy, and test your application all from within the popular
491 Eclipse IDE.
492 </para>
493
494 <para>
495 To help you understand how application development works in the Yocto Project, this section
496 provides an overview of the general development process.
497 If you want to see a detailed example of the process as it is used from within the Eclipse
498 IDE, see
499 <ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>
500 The Application Development Toolkit (ADT) User's Manual</ulink>.
501 </para>
502
503 <para>
504 This illustration and the following list summarizes the application development general workflow.
505 </para>
506
507 <para>
508 <imagedata fileref="figures/app-dev-flow.png" width="7in" depth="7in" align="center" scalefit="1" />
509 </para>
510
511 <para>
512 <orderedlist>
513 <listitem><para><emphasis>Set up your host development system to support
514 development using the Yocto Project</emphasis>: See
515 "<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'>The Linux Distributions</ulink>" and
516 "<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>" sections both
517 in the Yocto Project Quick Start for requirements.</para></listitem>
518 <listitem><para><emphasis>Establish a local copy of the Yocto Project files on your
519 system</emphasis>: Having the Yocto Project files on your system gives you access to
520 the build process and tools you need.
521 For information on how to get these files, see the bulleted item
522 "<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual.
523 </para></listitem>
524 <listitem><para><emphasis>Set up the <filename>poky-extras</filename> Git
525 repository</emphasis>: This repository is the area for your configuration
526 fragments, new kernel recipes, and the kernel <filename>.bbappend</filename>
527 file used during the build.
528 It is good practice to set this repository up inside the local Yocto
529 Project files Git repository.
530 For information on how to get these files, see the bulleted item
531 "<link linkend='poky-extras-repo'>The <filename>poky-extras</filename> Git Repository</link>"
532 earlier in this manual.</para></listitem>
533 <listitem><para><emphasis>Establish a local copy of the Linux Yocto kernel files on your
534 system</emphasis>: In order to make modifications to the kernel you need two things:
535 a bare clone of the Linux Yocto kernel you are modifying and
536 a copy of that bare clone.
537 The bare clone is required by the build process and is the area to which you
538 push your kernel source changes (pulling does not work with bare clones).
539 The copy of the bare clone is a local Git repository that contains all the kernel's
540 source files.
541 You make your changes to the files in this copy of the bare clone.
542 For information on how to set these two items up, see the bulleted item
543 "<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
544 earlier in this manual.</para></listitem>
545 <listitem><para><emphasis>Make changes to the kernel source code if
546 applicable</emphasis>: Modifying the kernel does not always mean directly
547 changing source files.
548 However, if you have to do this, you make the changes in the local
549 Git repository you set up to hold the source files (i.e. the copy of the
550 bare clone).
551 Once the changes are made, you need to use Git commands to commit the changes
552 and then push them to the bare clone.</para></listitem>
553 <listitem><para><emphasis>Make kernel configuration changes
554 to your local kernel layer if applicable</emphasis>:
555 If your situation calls for changing the kernel's configuration, you can
556 use <filename>menuconfig</filename>
557 to enable and disable kernel configurations.
558 Using <filename>menuconfig</filename> allows you to interactively develop and test the
559 configuration changes you are making to the kernel.
560 When saved, changes using <filename>menuconfig</filename> update the kernel's
561 <filename>.config</filename>.
562 As an alternative method to changing the kernel's configuration, you can simply
563 edit the <filename>.config</filename> found in the Yocto Project build
564 directory at <filename>tmp/sysroots/&lt;machine-name&gt;/kernel</filename>
565 directly.</para></listitem>
566 <listitem><para><emphasis>Add new kernel recipes if applicable</emphasis>: The standard
567 layer structure organizes recipe files inside the
568 <filename>meta-kernel-dev</filename> layer that is within the
569 <filename>poky-extras</filename> Git repository.
570 If you need to add new kernel recipes, you add them within this layer.
571 Also within this area, you will find the <filename>.bbappend</filename>
572 file that appends information to the kernel's recipe file used during the
573 build.
574 </para></listitem>
575 <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the
576 changes to your kernel (configurations, source code changes, recipe additions,
577 or recipe changes), there remains a few things
578 you need to do in order for the Yocto Project build system to create your image.
579 If you have not done so, you need to get the build environment ready by sourcing
580 the environment setup script described earlier.
581 You also need to be sure two key configuration files
582 (<filename>local.conf</filename> and <filename>bblayers.conf</filename>)
583 are configured appropriately.</para>
584 <para>The entire process for building an image is overviewed in the
585 "<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>" section of the Yocto Project Quick Start.
586 You might want to reference this information.
587 Also, you should look at the detailed examples found in the appendices at
588 at the end of this manual.</para></listitem>
589 <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project
590 build system Poky uses the BitBake
591 tool to build images based on the type of image you want to create.
592 You can find more information on BitBake
593 <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para>
594 <para>The build process supports several types of images to satisfy different needs.
595 See the appendix
596 "<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>" in the
597 <ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
598 Yocto Project Reference Manual</ulink> for information on supported
599 images.</para></listitem>
600 <listitem><para><emphasis>Make your configuration changes available
601 in the kernel layer</emphasis>: Up to this point, all the configuration changes to the
602 kernel have been done and tested iteratively.
603 Once they are tested and ready to go, you can move them into the kernel layer,
604 which allows you to distribute the layer.</para></listitem>
605 <listitem><para><emphasis>If applicable, share your in-tree changes</emphasis>:
606 If the changes you made
607 are suited for all Linux Yocto users, you might want to push the changes to a
608 contribution area for the Linux Yocto Git repository.
609 Once the changes are pushed, you can request that they
610 be pulled into the master branch of the kernel tree.
611 Doing so makes them available to everyone using the kernel.</para></listitem>
612 </orderedlist>
482 </para> 613 </para>
483</section> 614</section>
484 615