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 | ||