diff options
| author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2011-09-20 13:02:34 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-09-25 17:59:59 +0100 |
| commit | c54fffeeb564996b48b25c1f073b1a3583648e52 (patch) | |
| tree | 09d493f461818383d7386678ad4db04925eda78e /documentation/dev-manual | |
| parent | dfad4dbff95fb71d122c26787e6160a8be211772 (diff) | |
| download | poky-c54fffeeb564996b48b25c1f073b1a3583648e52.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')
| -rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 135 |
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/<machine-name>/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 | ||
