diff options
Diffstat (limited to 'documentation/dev-manual/dev-manual-model.xml')
-rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 137 |
1 files changed, 60 insertions, 77 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 69e09e6466..a4120f84db 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml | |||
@@ -34,8 +34,8 @@ | |||
34 | get the changes upstream and applied in the affected recipes.</para></listitem> | 34 | get the changes upstream and applied in the affected recipes.</para></listitem> |
35 | <listitem><para><emphasis>Image Development using Hob:</emphasis> | 35 | <listitem><para><emphasis>Image Development using Hob:</emphasis> |
36 | You can use the <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build | 36 | You can use the <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build |
37 | custom operating system images within the Yocto Project build environment. | 37 | custom operating system images within the build environment. |
38 | Hob provides an efficient interface to the Yocto Project build system.</para></listitem> | 38 | Hob provides an efficient interface to the OpenEmbedded build system.</para></listitem> |
39 | </itemizedlist> | 39 | </itemizedlist> |
40 | </para> | 40 | </para> |
41 | 41 | ||
@@ -94,18 +94,20 @@ | |||
94 | and the | 94 | and the |
95 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both | 95 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both |
96 | in the Yocto Project Quick Start for requirements.</para></listitem> | 96 | in the Yocto Project Quick Start for requirements.</para></listitem> |
97 | <listitem><para><emphasis>Establish a local copy of the Yocto Project files on your | 97 | <listitem><para><emphasis>Establish a local copy of the project files on your |
98 | system</emphasis>: You need to have the Yocto Project files available on your host system. | 98 | system</emphasis>: You need this <link linkend='source-directory'>source |
99 | Having the Yocto Project files on your system gives you access to the build | 99 | directory</link> available on your host system. |
100 | Having these files on your system gives you access to the build | ||
100 | process and to the tools you need. | 101 | process and to the tools you need. |
101 | For information on how to get these files, see the | 102 | For information on how to set up the source directory, see the |
102 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> | 103 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> |
103 | <listitem><para><emphasis>Establish a local copy of the base BSP files</emphasis>: Having | 104 | <listitem><para><emphasis>Establish a local copy of the base BSP files</emphasis>: Having |
104 | the BSP files on your system gives you access to the build | 105 | the BSP files on your system gives you access to the build |
105 | process and to the tools you need for creating a BSP. | 106 | process and to the tools you need for creating a BSP. |
106 | For information on how to get these files, see the | 107 | For information on how to get these files, see the |
107 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> | 108 | "<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem> |
108 | <listitem><para><emphasis>Choose a Yocto Project-supported BSP as your base BSP</emphasis>: | 109 | <listitem><para><emphasis>Choose a BSP that is supported by the Yocto Project |
110 | as your base BSP</emphasis>: | ||
109 | The Yocto Project ships with several BSPs that support various hardware. | 111 | The Yocto Project ships with several BSPs that support various hardware. |
110 | It is best to base your new BSP on an existing BSP rather than create all the | 112 | It is best to base your new BSP on an existing BSP rather than create all the |
111 | recipes and configuration files from scratch. | 113 | recipes and configuration files from scratch. |
@@ -138,7 +140,7 @@ | |||
138 | The layer, in this case, would be where all the recipes that define those dependencies | 140 | The layer, in this case, would be where all the recipes that define those dependencies |
139 | are kept. | 141 | are kept. |
140 | The key point for a layer is that it is an isolated area that contains | 142 | The key point for a layer is that it is an isolated area that contains |
141 | all the relevant information for the project that the Yocto Project build | 143 | all the relevant information for the project that the OpenEmbedded build |
142 | system knows about. | 144 | system knows about. |
143 | For more information on layers, see the | 145 | For more information on layers, see the |
144 | "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>" | 146 | "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>" |
@@ -146,11 +148,11 @@ | |||
146 | For more information on BSP layers, see the | 148 | For more information on BSP layers, see the |
147 | "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" section in the | 149 | "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" section in the |
148 | Yocto Project Board Support Package (BSP) Developer's Guide.</para> | 150 | Yocto Project Board Support Package (BSP) Developer's Guide.</para> |
149 | <note>The Yocto Project supports four BSPs that are part of the | 151 | <note>Four BSPs exist that are part of the |
150 | Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>, | 152 | Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>, |
151 | <filename>mpc8315e</filename>, and <filename>routerstationpro</filename>. | 153 | <filename>mpc8315e</filename>, and <filename>routerstationpro</filename>. |
152 | The recipes and configurations for these four BSPs are located and dispersed | 154 | The recipes and configurations for these four BSPs are located and dispersed |
153 | within the <link linkend='yocto-project-files'>Yocto Project Files</link>. | 155 | within the <link linkend='source-directory'>source directory</link>. |
154 | On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest, | 156 | On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest, |
155 | N450, Cedar Trail, Fish River, Fish River Island II, Romley, sys940x, tlk, | 157 | N450, Cedar Trail, Fish River, Fish River Island II, Romley, sys940x, tlk, |
156 | and Sugar Bay exist in their own separate layers within the larger | 158 | and Sugar Bay exist in their own separate layers within the larger |
@@ -163,7 +165,7 @@ | |||
163 | configuration information. | 165 | configuration information. |
164 | You can see the standard layout for the Crown Bay BSP in this example by examining the | 166 | You can see the standard layout for the Crown Bay BSP in this example by examining the |
165 | directory structure of the <filename>meta-crownbay</filename> layer inside the | 167 | directory structure of the <filename>meta-crownbay</filename> layer inside the |
166 | local Yocto Project files.</para></listitem> | 168 | source directory.</para></listitem> |
167 | <listitem><para><emphasis>Make configuration changes to your new BSP | 169 | <listitem><para><emphasis>Make configuration changes to your new BSP |
168 | layer</emphasis>: The standard BSP layer structure organizes the files you need | 170 | layer</emphasis>: The standard BSP layer structure organizes the files you need |
169 | to edit in <filename>conf</filename> and several <filename>recipes-*</filename> | 171 | to edit in <filename>conf</filename> and several <filename>recipes-*</filename> |
@@ -177,15 +179,15 @@ | |||
177 | </para></listitem> | 179 | </para></listitem> |
178 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | 180 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the |
179 | changes to your BSP layer, there remains a few things | 181 | changes to your BSP layer, there remains a few things |
180 | you need to do for the Yocto Project build system in order for it to create your image. | 182 | you need to do for the OpenEmbedded build system in order for it to create your image. |
181 | You need to get the build environment ready by sourcing an environment setup script | 183 | You need to get the build environment ready by sourcing an environment setup script |
182 | and you need to be sure two key configuration files are configured appropriately.</para> | 184 | and you need to be sure two key configuration files are configured appropriately.</para> |
183 | <para>The entire process for building an image is overviewed in the section | 185 | <para>The entire process for building an image is overviewed in the section |
184 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section | 186 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section |
185 | of the Yocto Project Quick Start. | 187 | of the Yocto Project Quick Start. |
186 | You might want to reference this information.</para></listitem> | 188 | You might want to reference this information.</para></listitem> |
187 | <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project uses the BitBake | 189 | <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded build system |
188 | tool to build images based on the type of image you want to create. | 190 | uses the BitBake tool to build images based on the type of image you want to create. |
189 | You can find more information on BitBake | 191 | You can find more information on BitBake |
190 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> | 192 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> |
191 | <para>The build process supports several types of images to satisfy different needs. | 193 | <para>The build process supports several types of images to satisfy different needs. |
@@ -295,7 +297,7 @@ | |||
295 | 297 | ||
296 | <para> | 298 | <para> |
297 | The overall result is a Git-maintained repository from which all the supported | 299 | The overall result is a Git-maintained repository from which all the supported |
298 | Yocto Project kernel types can be derived for all the supported Yocto Project devices. | 300 | kernel types can be derived for all the supported devices. |
299 | A big advantage to this scheme is the sharing of common features by keeping them in | 301 | A big advantage to this scheme is the sharing of common features by keeping them in |
300 | "larger" branches within the tree. | 302 | "larger" branches within the tree. |
301 | This practice eliminates redundant storage of similar features shared among kernels. | 303 | This practice eliminates redundant storage of similar features shared among kernels. |
@@ -313,7 +315,7 @@ | |||
313 | <para> | 315 | <para> |
314 | Storage of all the available kernel source code is one thing, while representing the | 316 | Storage of all the available kernel source code is one thing, while representing the |
315 | code on your host development system is another. | 317 | code on your host development system is another. |
316 | Conceptually, you can think of the Yocto Project kernel source repositories as all the | 318 | Conceptually, you can think of the kernel source repositories as all the |
317 | source files necessary for all the supported kernels. | 319 | source files necessary for all the supported kernels. |
318 | As a developer, you are just interested in the source files for the kernel on | 320 | As a developer, you are just interested in the source files for the kernel on |
319 | on which you are working. | 321 | on which you are working. |
@@ -358,7 +360,7 @@ | |||
358 | <para> | 360 | <para> |
359 | What happens during the build? | 361 | What happens during the build? |
360 | When you build the kernel on your development system all files needed for the build | 362 | When you build the kernel on your development system all files needed for the build |
361 | are taken from the Yocto Project source repositories pointed to by the | 363 | are taken from the source repositories pointed to by the |
362 | <filename>SRC_URI</filename> variable and gathered in a temporary work area | 364 | <filename>SRC_URI</filename> variable and gathered in a temporary work area |
363 | where they are subsequently used to create the unique kernel. | 365 | where they are subsequently used to create the unique kernel. |
364 | Thus, in a sense, the process constructs a local source tree specific to your | 366 | Thus, in a sense, the process constructs a local source tree specific to your |
@@ -375,7 +377,7 @@ | |||
375 | </para> | 377 | </para> |
376 | 378 | ||
377 | <para> | 379 | <para> |
378 | Again, for a complete discussion of the Yocto Project kernel's architcture and its | 380 | Again, for a complete discussion of the Yocto Project kernel's architecture and its |
379 | branching strategy, | 381 | branching strategy, |
380 | see <ulink url='&YOCTO_DOCS_KERNEL_URL;'> | 382 | see <ulink url='&YOCTO_DOCS_KERNEL_URL;'> |
381 | The Yocto Project Kernel Architecture and Use Manual</ulink>. | 383 | The Yocto Project Kernel Architecture and Use Manual</ulink>. |
@@ -404,18 +406,19 @@ | |||
404 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and | 406 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and |
405 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both | 407 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both |
406 | in the Yocto Project Quick Start for requirements.</para></listitem> | 408 | in the Yocto Project Quick Start for requirements.</para></listitem> |
407 | <listitem><para><emphasis>Establish a local copy of the Yocto Project files on your | 409 | <listitem><para><emphasis>Establish a local copy of project files on your |
408 | system</emphasis>: Having the Yocto Project files on your system gives you access to | 410 | system</emphasis>: Having the <link linkend='source-directory'>source |
409 | the build process and tools you need. | 411 | directory</link> on your system gives you access to the build process and tools |
412 | you need. | ||
410 | For information on how to get these files, see the bulleted item | 413 | For information on how to get these files, see the bulleted item |
411 | "<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual. | 414 | "<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual. |
412 | </para></listitem> | 415 | </para></listitem> |
413 | <listitem><para><emphasis>Set up the <filename>poky-extras</filename> Git | 416 | <listitem><para><emphasis>Set up a local copy of the <filename>poky-extras</filename> Git |
414 | repository</emphasis>: This repository is the area for your configuration | 417 | repository</emphasis>: This local repository is the area for your configuration |
415 | fragments, new kernel recipes, and the kernel <filename>.bbappend</filename> | 418 | fragments, new kernel recipes, and the kernel <filename>.bbappend</filename> |
416 | file used during the build. | 419 | file used during the build. |
417 | It is good practice to set this repository up inside the local Yocto | 420 | It is good practice to set this repository up inside your local |
418 | Project files Git repository. | 421 | source directory. |
419 | For information on how to get these files, see the bulleted item | 422 | For information on how to get these files, see the bulleted item |
420 | "<link linkend='poky-extras-repo'>The <filename>poky-extras</filename> Git Repository</link>" | 423 | "<link linkend='poky-extras-repo'>The <filename>poky-extras</filename> Git Repository</link>" |
421 | earlier in this manual. | 424 | earlier in this manual. |
@@ -453,9 +456,9 @@ | |||
453 | <filename>.config</filename>. | 456 | <filename>.config</filename>. |
454 | Try to resist the temptation of directly editing the <filename>.config</filename> | 457 | Try to resist the temptation of directly editing the <filename>.config</filename> |
455 | file found in the | 458 | file found in the |
456 | <link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link> at | 459 | <link linkend='build-directory'>build directory</link> at |
457 | <filename>tmp/sysroots/<machine-name>/kernel</filename>. | 460 | <filename>tmp/sysroots/<machine-name>/kernel</filename>. |
458 | Doing so, can produce unexpected results when the Yocto Project build system | 461 | Doing so, can produce unexpected results when the OpenEmbedded build system |
459 | regenerates the configuration file.</para> | 462 | regenerates the configuration file.</para> |
460 | <para>Once you are satisfied with the configuration changes made using | 463 | <para>Once you are satisfied with the configuration changes made using |
461 | <filename>menuconfig</filename>, you can directly examine the | 464 | <filename>menuconfig</filename>, you can directly examine the |
@@ -465,7 +468,7 @@ | |||
465 | <listitem><para><emphasis>Add or extend kernel recipes if applicable</emphasis>: | 468 | <listitem><para><emphasis>Add or extend kernel recipes if applicable</emphasis>: |
466 | The standard | 469 | The standard |
467 | layer structure organizes recipe files inside the | 470 | layer structure organizes recipe files inside the |
468 | <filename>meta-kernel-dev</filename> layer that is within the | 471 | <filename>meta-kernel-dev</filename> layer that is within the local |
469 | <filename>poky-extras</filename> Git repository. | 472 | <filename>poky-extras</filename> Git repository. |
470 | If you need to add new kernel recipes, you add them within this layer. | 473 | If you need to add new kernel recipes, you add them within this layer. |
471 | Also within this area, you will find the <filename>.bbappend</filename> | 474 | Also within this area, you will find the <filename>.bbappend</filename> |
@@ -475,7 +478,7 @@ | |||
475 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | 478 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the |
476 | changes to your kernel (configurations, source code changes, recipe additions, | 479 | changes to your kernel (configurations, source code changes, recipe additions, |
477 | or recipe changes), there remains a few things | 480 | or recipe changes), there remains a few things |
478 | you need to do in order for the Yocto Project build system (BitBake) to create your image. | 481 | you need to do in order for the build system to create your image. |
479 | If you have not done so, you need to get the build environment ready by sourcing | 482 | If you have not done so, you need to get the build environment ready by sourcing |
480 | the environment setup script described earlier. | 483 | the environment setup script described earlier. |
481 | You also need to be sure two key configuration files | 484 | You also need to be sure two key configuration files |
@@ -487,8 +490,8 @@ | |||
487 | You might want to reference this information. | 490 | You might want to reference this information. |
488 | Also, you should look at the detailed examples found in the appendices at | 491 | Also, you should look at the detailed examples found in the appendices at |
489 | at the end of this manual.</para></listitem> | 492 | at the end of this manual.</para></listitem> |
490 | <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project | 493 | <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded |
491 | build system Poky uses the BitBake | 494 | build system uses the BitBake |
492 | tool to build images based on the type of image you want to create. | 495 | tool to build images based on the type of image you want to create. |
493 | You can find more information on BitBake | 496 | You can find more information on BitBake |
494 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> | 497 | <ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para> |
@@ -514,7 +517,7 @@ | |||
514 | </section> | 517 | </section> |
515 | </section> | 518 | </section> |
516 | 519 | ||
517 | <section id='place-holder-section-two'> | 520 | <section id='application-development-workflow'> |
518 | <title>Application Development Workflow</title> | 521 | <title>Application Development Workflow</title> |
519 | 522 | ||
520 | <para> | 523 | <para> |
@@ -530,7 +533,7 @@ | |||
530 | </para> | 533 | </para> |
531 | 534 | ||
532 | <para> | 535 | <para> |
533 | While we strongly suggest using the Yocto Project ADT to develop your application, you might | 536 | While we strongly suggest using the ADT to develop your application, you might |
534 | not want to. | 537 | not want to. |
535 | If this is the case, you can still use pieces of the Yocto Project for your development process. | 538 | If this is the case, you can still use pieces of the Yocto Project for your development process. |
536 | However, because the process can vary greatly, this manual does not provide detail on the process. | 539 | However, because the process can vary greatly, this manual does not provide detail on the process. |
@@ -540,8 +543,7 @@ | |||
540 | <title>Workflow Using the ADT and <trademark class='trade'>Eclipse</trademark></title> | 543 | <title>Workflow Using the ADT and <trademark class='trade'>Eclipse</trademark></title> |
541 | 544 | ||
542 | <para> | 545 | <para> |
543 | To help you understand how application development works in the Yocto Project ADT | 546 | To help you understand how application development works using the ADT, this section |
544 | environment, this section | ||
545 | provides an overview of the general development process. | 547 | provides an overview of the general development process. |
546 | If you want to see a detailed example of the process as it is used from within the Eclipse | 548 | If you want to see a detailed example of the process as it is used from within the Eclipse |
547 | IDE, see | 549 | IDE, see |
@@ -550,7 +552,7 @@ | |||
550 | </para> | 552 | </para> |
551 | 553 | ||
552 | <para> | 554 | <para> |
553 | This illustration and the following list summarizes the application development general workflow. | 555 | The following illustration and list summarize the application development general workflow. |
554 | </para> | 556 | </para> |
555 | 557 | ||
556 | <para> | 558 | <para> |
@@ -565,27 +567,9 @@ | |||
565 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and | 567 | "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and |
566 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both | 568 | "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both |
567 | in the Yocto Project Quick Start for requirements.</para></listitem> | 569 | in the Yocto Project Quick Start for requirements.</para></listitem> |
568 | |||
569 | <!-- | ||
570 | WRITER NOTE: The areas to get the kernel and root filesystem are located in the Index of | ||
571 | downloads. There are many forms of each. The files that have "rootfs" are just the | ||
572 | target root filesystems. The file that is very small and starts with bzImage is just | ||
573 | the kernel image isolated so that it can be written to a special on-board area of | ||
574 | flash memory. Some systems require this. In the machines directory there are | ||
575 | files that combine the kernel image and the root filesystem. These files are the ISO | ||
576 | and HDDIMG files. ISO images are designed to be deployed on a DVD or CD. The ISO | ||
577 | images are designed to be deployed on a USB stick. There might be some relics in | ||
578 | the machine directory. For example, there is the "emenlow-bernard-5.0.0.tar.bz2" | ||
579 | file. Nobody seems to know what this is. If a developer needs the image and the | ||
580 | root filesystem I think that they want the small kernel image and a matching root | ||
581 | filesystem. Although, Paul Eggleton says that the HDDIMG types could be used to | ||
582 | develop on. I am not sure that we can use one of those in the ADT though as they | ||
583 | want you to point to the kernel image and the target root filesystem. Maybe you | ||
584 | could just point to the same spot. I am not sure. | ||
585 | --> | ||
586 | |||
587 | <listitem><para><emphasis>Secure the Linux Yocto Kernel Target Image</emphasis>: | 570 | <listitem><para><emphasis>Secure the Linux Yocto Kernel Target Image</emphasis>: |
588 | You must have a target kernel image that has been built using the Yocto Project.</para> | 571 | You must have a target kernel image that has been built using the OpenEmbeded |
572 | build system.</para> | ||
589 | <para>Depending on whether the Yocto Project has a pre-built image that matches your target | 573 | <para>Depending on whether the Yocto Project has a pre-built image that matches your target |
590 | architecture and where you are going to run the image while you develop your application | 574 | architecture and where you are going to run the image while you develop your application |
591 | (QEMU or real hardware), the area from which you get the image differs. | 575 | (QEMU or real hardware), the area from which you get the image differs. |
@@ -616,7 +600,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
616 | <listitem><para><emphasis>Install the ADT</emphasis>: | 600 | <listitem><para><emphasis>Install the ADT</emphasis>: |
617 | The ADT provides a target-specific cross-development toolchain, the root filesystem, | 601 | The ADT provides a target-specific cross-development toolchain, the root filesystem, |
618 | the QEMU emulator, and other tools that can help you develop your application. | 602 | the QEMU emulator, and other tools that can help you develop your application. |
619 | While it is possible to get these pieces separately, the Yocto Project provides an | 603 | While it is possible to get these pieces separately, the ADT Installer provides an |
620 | easy method. | 604 | easy method. |
621 | You can get these pieces by running an ADT installer script, which is configurable. | 605 | You can get these pieces by running an ADT installer script, which is configurable. |
622 | For information on how to install the ADT, see the | 606 | For information on how to install the ADT, see the |
@@ -707,14 +691,14 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
707 | <title>Modifying Temporary Source Code</title> | 691 | <title>Modifying Temporary Source Code</title> |
708 | 692 | ||
709 | <para> | 693 | <para> |
710 | Although the Yocto Project is typically used to build software, you might | 694 | You might |
711 | find it helpful during development to modify the temporary source code used by recipes | 695 | find it helpful during development to modify the temporary source code used by recipes |
712 | to build packages. | 696 | to build packages. |
713 | For example, suppose you are developing a patch and you need to experiment a bit | 697 | For example, suppose you are developing a patch and you need to experiment a bit |
714 | to figure out your solution. | 698 | to figure out your solution. |
715 | After you have initially built the package, you can iteratively tweak the | 699 | After you have initially built the package, you can iteratively tweak the |
716 | source code, which is located in the | 700 | source code, which is located in the |
717 | <link linkend='yocto-project-build-directory'>Yocto Project's Build Directory</link>, and then | 701 | <link linkend='build-directory'>build directory</link>, and then |
718 | you can force a re-compile and quickly test your altered code. | 702 | you can force a re-compile and quickly test your altered code. |
719 | Once you settle on a solution, you can then preserve your changes in the form of | 703 | Once you settle on a solution, you can then preserve your changes in the form of |
720 | patches. | 704 | patches. |
@@ -728,12 +712,12 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
728 | 712 | ||
729 | <para> | 713 | <para> |
730 | During a build, the unpacked temporary source code used by recipes | 714 | During a build, the unpacked temporary source code used by recipes |
731 | to build packages is available in the Yocto Project Build Directory as | 715 | to build packages is available in the build directory as |
732 | defined by the | 716 | defined by the |
733 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink></filename> variable. | 717 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink></filename> variable. |
734 | Below is the default value for the <filename>S</filename> variable as defined in the | 718 | Below is the default value for the <filename>S</filename> variable as defined in the |
735 | <filename>meta/conf/bitbake.conf</filename> configuration file in the | 719 | <filename>meta/conf/bitbake.conf</filename> configuration file in the |
736 | <link linkend='yocto-project-files'>Yocto Project Files</link>: | 720 | <link linkend='source-directory'>source directory</link>: |
737 | <literallayout class='monospaced'> | 721 | <literallayout class='monospaced'> |
738 | S = ${WORKDIR}/${BP} | 722 | S = ${WORKDIR}/${BP} |
739 | </literallayout> | 723 | </literallayout> |
@@ -758,8 +742,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
758 | ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}-${PV}-${PR} | 742 | ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}-${PV}-${PR} |
759 | </literallayout> | 743 | </literallayout> |
760 | Let's look at an example without variables. | 744 | Let's look at an example without variables. |
761 | Assuming a Yocto Project Files top-level directory named <filename>poky</filename> | 745 | Assuming a top-level source directory named <filename>poky</filename> |
762 | and a default Yocto Project Build Directory of <filename>poky/build</filename>, | 746 | and a default build directory of <filename>poky/build</filename>, |
763 | the following is the work directory for the <filename>acl</filename> package: | 747 | the following is the work directory for the <filename>acl</filename> package: |
764 | <literallayout class='monospaced'> | 748 | <literallayout class='monospaced'> |
765 | ~/poky/build/tmp/work/i586-poky-linux/acl-2.2.51-r3 | 749 | ~/poky/build/tmp/work/i586-poky-linux/acl-2.2.51-r3 |
@@ -771,8 +755,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
771 | <literallayout class='monospaced'> | 755 | <literallayout class='monospaced'> |
772 | ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR} | 756 | ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR} |
773 | </literallayout> | 757 | </literallayout> |
774 | Again, assuming a Yocto Project Files top-level directory named <filename>poky</filename> | 758 | Again, assuming top-level source directory named <filename>poky</filename> |
775 | and a default Yocto Project Build Directory of <filename>poky/build</filename>, the | 759 | and a default build directory of <filename>poky/build</filename>, the |
776 | following is the work directory for the <filename>acl</filename> package that is being | 760 | following is the work directory for the <filename>acl</filename> package that is being |
777 | built for a MIPS-based device: | 761 | built for a MIPS-based device: |
778 | <literallayout class='monospaced'> | 762 | <literallayout class='monospaced'> |
@@ -781,7 +765,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
781 | </para> | 765 | </para> |
782 | 766 | ||
783 | <note> | 767 | <note> |
784 | To better understand how the Yocto Project build system resolves directories during the | 768 | To better understand how the OpenEmbedded build system resolves directories during the |
785 | build process, see the glossary entries for the | 769 | build process, see the glossary entries for the |
786 | <ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>, | 770 | <ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>, |
787 | <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>, | 771 | <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>, |
@@ -817,8 +801,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
817 | Follow these general steps: | 801 | Follow these general steps: |
818 | <orderedlist> | 802 | <orderedlist> |
819 | <listitem><para><emphasis>Find the Source Code:</emphasis> | 803 | <listitem><para><emphasis>Find the Source Code:</emphasis> |
820 | The temporary source code used by the Yocto Project build system is kept in the | 804 | The temporary source code used by the OpenEmbedded build system is kept in the |
821 | Yocto Project Build Directory. | 805 | build directory. |
822 | See the | 806 | See the |
823 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" | 807 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" |
824 | section to learn how to locate the directory that has the temporary source code for a | 808 | section to learn how to locate the directory that has the temporary source code for a |
@@ -875,7 +859,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
875 | <listitem><para><emphasis>Copy the Patch File:</emphasis> | 859 | <listitem><para><emphasis>Copy the Patch File:</emphasis> |
876 | For simplicity, copy the patch file into a directory named <filename>files</filename>, | 860 | For simplicity, copy the patch file into a directory named <filename>files</filename>, |
877 | which you can create in the same directory as the recipe. | 861 | which you can create in the same directory as the recipe. |
878 | Placing the patch here guarantees that the Yocto Project build system will find | 862 | Placing the patch here guarantees that the OpenEmbedded build system will find |
879 | the patch. | 863 | the patch. |
880 | Next, add the patch into the | 864 | Next, add the patch into the |
881 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> | 865 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> |
@@ -904,16 +888,15 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
904 | 888 | ||
905 | <note> | 889 | <note> |
906 | This workflow uses Git only for its ability to manage local changes to the source code | 890 | This workflow uses Git only for its ability to manage local changes to the source code |
907 | and produce patches independent of any version control used on the Yocto Project | 891 | and produce patches independent of any version control system used with the Yocto Project. |
908 | Files. | ||
909 | </note> | 892 | </note> |
910 | 893 | ||
911 | <para> | 894 | <para> |
912 | Follow these general steps: | 895 | Follow these general steps: |
913 | <orderedlist> | 896 | <orderedlist> |
914 | <listitem><para><emphasis>Find the Source Code:</emphasis> | 897 | <listitem><para><emphasis>Find the Source Code:</emphasis> |
915 | The temporary source code used by the Yocto Project build system is kept in the | 898 | The temporary source code used by the OpenEmbedded build system is kept in the |
916 | Yocto Project Build Directory. | 899 | build directory. |
917 | See the | 900 | See the |
918 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" | 901 | "<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>" |
919 | section to learn how to locate the directory that has the temporary source code for a | 902 | section to learn how to locate the directory that has the temporary source code for a |
@@ -1002,7 +985,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
1002 | <listitem><para><emphasis>Copy the Patch File:</emphasis> | 985 | <listitem><para><emphasis>Copy the Patch File:</emphasis> |
1003 | For simplicity, copy the patch file into a directory named <filename>files</filename>, | 986 | For simplicity, copy the patch file into a directory named <filename>files</filename>, |
1004 | which you can create in the same directory as the recipe. | 987 | which you can create in the same directory as the recipe. |
1005 | Placing the patch here guarantees that the Yocto Project build system will find | 988 | Placing the patch here guarantees that the OpenEmbedded build system will find |
1006 | the patch. | 989 | the patch. |
1007 | Next, add the patch into the | 990 | Next, add the patch into the |
1008 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> | 991 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename> |
@@ -1024,11 +1007,11 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the | |||
1024 | <title>Image Development Using Hob</title> | 1007 | <title>Image Development Using Hob</title> |
1025 | 1008 | ||
1026 | <para> | 1009 | <para> |
1027 | The <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> is a graphical user interface for the Yocto | 1010 | The <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> is a graphical user interface for the |
1028 | Project build system based on BitBake. | 1011 | OpenEmbedded build system, which is based on BitBake. |
1029 | You can use the Hob to build custom operating system images within the Yocto Project build environment. | 1012 | You can use the Hob to build custom operating system images within the Yocto Project build environment. |
1030 | Hob simply provides a friendly interface over the build system used during system development. | 1013 | Hob simply provides a friendly interface over the build system used during system development. |
1031 | In other words, building images with the Hob lets you take care of common Yocto Project build tasks more easily. | 1014 | In other words, building images with the Hob lets you take care of common build tasks more easily. |
1032 | </para> | 1015 | </para> |
1033 | 1016 | ||
1034 | <para> | 1017 | <para> |