diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2018-04-26 13:24:13 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-05-24 17:17:59 +0100 |
commit | ae5e39c4d6f9ae9fc82065801a0dc1d38b9d7c47 (patch) | |
tree | eb59b13af74cd2f0454493ded2e4384c75d0af2c | |
parent | 5c05ff08d0fcb684ec060beae286f24f81fb649c (diff) | |
download | poky-ae5e39c4d6f9ae9fc82065801a0dc1d38b9d7c47.tar.gz |
overview-manual, mega-manual: Updates to layers discussion for build flow
The "Metadata, Machine Configuratrion, and Policy Configuration"
section discusses the three types of layers fed into the OpenEmbedded
build system workflow figure. I updated the figures and text
supporting this discussion. The figure had to be moved to the
mega-manual/figures folder also.
(From yocto-docs rev: 39dd671333f7b3df616920aab08e01c926deca1c)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | documentation/mega-manual/figures/layer-input.png | bin | 45856 -> 170701 bytes | |||
-rw-r--r-- | documentation/overview-manual/figures/layer-input.png | bin | 45856 -> 170701 bytes | |||
-rw-r--r-- | documentation/overview-manual/overview-manual-concepts.xml | 111 |
3 files changed, 72 insertions, 39 deletions
diff --git a/documentation/mega-manual/figures/layer-input.png b/documentation/mega-manual/figures/layer-input.png index 0a4f2e74f3..202f23b207 100644 --- a/documentation/mega-manual/figures/layer-input.png +++ b/documentation/mega-manual/figures/layer-input.png | |||
Binary files differ | |||
diff --git a/documentation/overview-manual/figures/layer-input.png b/documentation/overview-manual/figures/layer-input.png index 0a4f2e74f3..202f23b207 100644 --- a/documentation/overview-manual/figures/layer-input.png +++ b/documentation/overview-manual/figures/layer-input.png | |||
Binary files differ | |||
diff --git a/documentation/overview-manual/overview-manual-concepts.xml b/documentation/overview-manual/overview-manual-concepts.xml index b8d1fa2b92..ee9877e4f8 100644 --- a/documentation/overview-manual/overview-manual-concepts.xml +++ b/documentation/overview-manual/overview-manual-concepts.xml | |||
@@ -580,64 +580,92 @@ | |||
580 | This section takes a closer look at the layers the build system | 580 | This section takes a closer look at the layers the build system |
581 | uses to further control the build. | 581 | uses to further control the build. |
582 | These layers provide Metadata for the software, machine, and | 582 | These layers provide Metadata for the software, machine, and |
583 | policy. | 583 | policies. |
584 | </para> | 584 | </para> |
585 | 585 | ||
586 | <para> | 586 | <para> |
587 | In general, three types of layer input exist: | 587 | In general, three types of layer input exists. |
588 | You can see them below the "User Configuration" box in the | ||
589 | <link linkend='general-workflow-figure'>general workflow figure</link>: | ||
588 | <itemizedlist> | 590 | <itemizedlist> |
589 | <listitem><para> | 591 | <listitem><para> |
590 | <emphasis>Policy Configuration:</emphasis> | 592 | <emphasis>Metadata (<filename>.bb</filename> + Patches):</emphasis> |
591 | Distribution Layers provide top-level or general | 593 | Software layers containing user-supplied recipe files, |
592 | policies for the image or SDK being built. | 594 | patches, and append files. |
593 | For example, this layer would dictate whether BitBake | 595 | A good example of a software layer might be the |
594 | produces RPM or IPK packages. | 596 | <ulink url='https://github.com/meta-qt5/meta-qt5'><filename>meta-qt5</filename></ulink> |
597 | layer from the | ||
598 | <ulink url='http://layers.openembedded.org/layerindex/branch/master/layers/'>OpenEmbedded Layer Index</ulink>. | ||
599 | This layer is for version 5.0 of the popular | ||
600 | <ulink url='https://wiki.qt.io/About_Qt'>Qt</ulink> | ||
601 | cross-platform application development framework for | ||
602 | desktop, embedded and mobile. | ||
595 | </para></listitem> | 603 | </para></listitem> |
596 | <listitem><para> | 604 | <listitem><para> |
597 | <emphasis>Machine Configuration:</emphasis> | 605 | <emphasis>Machine BSP Configuration:</emphasis> |
598 | Board Support Package (BSP) layers provide machine | 606 | Board Support Package (BSP) layers (i.e. "BSP Layer" |
607 | in the following figure) providing machine-specific | ||
599 | configurations. | 608 | configurations. |
600 | This type of information is specific to a particular | 609 | This type of information is specific to a particular |
601 | target architecture. | 610 | target architecture. |
611 | A good example of a BSP layer from the | ||
612 | <link linkend='gs-reference-distribution-poky'>Poky Reference Distribution</link> | ||
613 | is the | ||
614 | <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-yocto-bsp'><filename>meta-yocto-bsp</filename></ulink> | ||
615 | layer. | ||
602 | </para></listitem> | 616 | </para></listitem> |
603 | <listitem><para> | 617 | <listitem><para> |
604 | <emphasis>Metadata:</emphasis> | 618 | <emphasis>Policy Configuration:</emphasis> |
605 | Software layers contain user-supplied recipe files, | 619 | Distribution Layers (i.e. "Distro Layer" in the |
606 | patches, and append files. | 620 | following figure) providing top-level or general |
621 | policies for the images or SDKs being built for a | ||
622 | particular distribution. | ||
623 | For example, in the Poky Reference Distribution the | ||
624 | distro layer is the | ||
625 | <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-poky'><filename>meta-poky</filename></ulink> | ||
626 | layer. | ||
627 | Within the distro layer is a | ||
628 | <filename>conf/distro</filename> directory that | ||
629 | contains distro configuration files (e.g. | ||
630 | <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-poky/conf/distro/poky.conf'><filename>poky.conf</filename></ulink> | ||
631 | that contain many policy configurations for the | ||
632 | Poky distribution. | ||
607 | </para></listitem> | 633 | </para></listitem> |
608 | </itemizedlist> | 634 | </itemizedlist> |
609 | </para> | 635 | </para> |
610 | 636 | ||
611 | <para> | 637 | <para> |
612 | The following figure shows an expanded representation of the | 638 | The following figure shows an expanded representation of |
613 | Metadata, Machine Configuration, and Policy Configuration input | 639 | these three layers from the |
614 | (layers) boxes of the | ||
615 | <link linkend='general-workflow-figure'>general workflow figure</link>: | 640 | <link linkend='general-workflow-figure'>general workflow figure</link>: |
616 | </para> | 641 | <imagedata fileref="figures/layer-input.png" align="center" width="816px" depth="1056px" scalefit="1" /> |
617 | |||
618 | <para> | ||
619 | <imagedata fileref="figures/layer-input.png" align="center" width="8in" depth="7.5in" /> | ||
620 | </para> | 642 | </para> |
621 | 643 | ||
622 | <para> | 644 | <para> |
623 | In general, all layers have a similar structure. | 645 | In general, all layers have a similar structure. |
624 | They all contain a licensing file | 646 | They all contain a licensing file |
625 | (e.g. <filename>COPYING</filename>) if the layer is to be | 647 | (e.g. <filename>COPYING.MIT</filename>) if the layer is to be |
626 | distributed, a <filename>README</filename> file as good | 648 | distributed, a <filename>README</filename> file as good |
627 | practice and especially if the layer is to be distributed, a | 649 | practice and especially if the layer is to be distributed, a |
628 | configuration directory, and recipe directories. | 650 | configuration directory, and recipe directories. |
651 | You can learn about the general structure for layers used with | ||
652 | the Yocto Project in the | ||
653 | "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-layer'>Creating Your Own Layer</ulink>" | ||
654 | section in the Yocto Project Development Tasks Manual. | ||
655 | For a general discussion on layers and the many layers from | ||
656 | which you can draw, see the | ||
657 | "<link linkend='overview-layers'>Layers</link>" and | ||
658 | "<link linkend='the-yocto-project-layer-model'>The Yocto Project Layer Model</link>" | ||
659 | sections both earlier in this manual. | ||
629 | </para> | 660 | </para> |
630 | 661 | ||
631 | <para> | 662 | <para> |
632 | The Yocto Project has many layers that can be used. | 663 | If you explored the previous links, you discovered some |
633 | You can see a web-interface listing of them on the | 664 | areas where many layers that work with the Yocto Project |
665 | exist. | ||
666 | The | ||
634 | <ulink url="http://git.yoctoproject.org/">Source Repositories</ulink> | 667 | <ulink url="http://git.yoctoproject.org/">Source Repositories</ulink> |
635 | page. | 668 | also shows layers categorized under "Yocto Metadata Layers." |
636 | The layers appear at the bottom categorized under | ||
637 | "Yocto Metadata Layers." | ||
638 | These layers are fundamentally a subset of the | ||
639 | <ulink url="http://layers.openembedded.org/layerindex/layers/">OpenEmbedded Layer Index</ulink>, | ||
640 | which lists all layers provided by the OpenEmbedded community. | ||
641 | <note> | 669 | <note> |
642 | Layers exist in the Yocto Project Source Repositories that | 670 | Layers exist in the Yocto Project Source Repositories that |
643 | cannot be found in the OpenEmbedded Layer Index. | 671 | cannot be found in the OpenEmbedded Layer Index. |
@@ -652,12 +680,6 @@ | |||
652 | should be using as part of the build. | 680 | should be using as part of the build. |
653 | </para> | 681 | </para> |
654 | 682 | ||
655 | <para> | ||
656 | For more information on layers, see the | ||
657 | "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>" | ||
658 | section in the Yocto Project Development Tasks Manual. | ||
659 | </para> | ||
660 | |||
661 | <section id="distro-layer"> | 683 | <section id="distro-layer"> |
662 | <title>Distro Layer</title> | 684 | <title>Distro Layer</title> |
663 | 685 | ||
@@ -704,6 +726,16 @@ | |||
704 | to add distribution-specific configuration, | 726 | to add distribution-specific configuration, |
705 | initialization scripts, custom image recipes, | 727 | initialization scripts, custom image recipes, |
706 | and so forth. | 728 | and so forth. |
729 | Examples of <filename>recipes-*</filename> | ||
730 | directories are <filename>recipes-core</filename> | ||
731 | and <filename>recipes-extra</filename>. | ||
732 | Hierarchy and contents within a | ||
733 | <filename>recipes-*</filename> directory can vary. | ||
734 | Generally, these directories contain recipe files | ||
735 | (<filename>*.bb</filename>), recipe append files | ||
736 | (<filename>*.bbappend</filename>), directories | ||
737 | that are distro-specific for configuration files, | ||
738 | and so forth. | ||
707 | </para></listitem> | 739 | </para></listitem> |
708 | </itemizedlist> | 740 | </itemizedlist> |
709 | </para> | 741 | </para> |
@@ -713,7 +745,8 @@ | |||
713 | <title>BSP Layer</title> | 745 | <title>BSP Layer</title> |
714 | 746 | ||
715 | <para> | 747 | <para> |
716 | The BSP Layer provides machine configurations. | 748 | The BSP Layer provides machine configurations that |
749 | target specific hardware. | ||
717 | Everything in this layer is specific to the machine for | 750 | Everything in this layer is specific to the machine for |
718 | which you are building the image or the SDK. | 751 | which you are building the image or the SDK. |
719 | A common structure or form is defined for BSP layers. | 752 | A common structure or form is defined for BSP layers. |
@@ -738,8 +771,8 @@ | |||
738 | The remainder of the layer is dedicated to specific recipes | 771 | The remainder of the layer is dedicated to specific recipes |
739 | by function: <filename>recipes-bsp</filename>, | 772 | by function: <filename>recipes-bsp</filename>, |
740 | <filename>recipes-core</filename>, | 773 | <filename>recipes-core</filename>, |
741 | <filename>recipes-graphics</filename>, and | 774 | <filename>recipes-graphics</filename>, |
742 | <filename>recipes-kernel</filename>. | 775 | <filename>recipes-kernel</filename>, and so forth. |
743 | Metadata can exist for multiple formfactors, graphics | 776 | Metadata can exist for multiple formfactors, graphics |
744 | support systems, and so forth. | 777 | support systems, and so forth. |
745 | <note> | 778 | <note> |
@@ -762,8 +795,8 @@ | |||
762 | </para> | 795 | </para> |
763 | 796 | ||
764 | <para> | 797 | <para> |
765 | This layer contains any new recipes that your project | 798 | This layer contains any recipes, append files, and |
766 | needs in the form of recipe files. | 799 | patches, that your project needs. |
767 | </para> | 800 | </para> |
768 | </section> | 801 | </section> |
769 | </section> | 802 | </section> |