diff options
| -rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 7d8b84986c..296ab6c148 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
| @@ -2013,6 +2013,108 @@ | |||
| 2013 | </para> | 2013 | </para> |
| 2014 | </section> | 2014 | </section> |
| 2015 | 2015 | ||
| 2016 | <section id="creating-your-own-distribution"> | ||
| 2017 | <title>Creating Your Own Distribution</title> | ||
| 2018 | |||
| 2019 | <para> | ||
| 2020 | When you build a Linux Yocto image using the Yocto Project and | ||
| 2021 | do not alter any distribution | ||
| 2022 | <link linkend='metadata'>Metadata</link>, you are creating a | ||
| 2023 | Poky Distribution. | ||
| 2024 | If you do not want a Poky Distribution, you can take steps to | ||
| 2025 | create your own distribution. | ||
| 2026 | </para> | ||
| 2027 | |||
| 2028 | <para> | ||
| 2029 | To create your own distribution, the basic steps consist of | ||
| 2030 | creating your own distribution layer, creating your own | ||
| 2031 | distribution configuration file, and then adding any needed | ||
| 2032 | code and Metadata to the layer. | ||
| 2033 | The following steps provide some more detail: | ||
| 2034 | <itemizedlist> | ||
| 2035 | <listitem><para><emphasis>Create a layer for your new distro:</emphasis> | ||
| 2036 | Create your distribution layer so that you can keep your | ||
| 2037 | Metadata and code for the distribution separate. | ||
| 2038 | It is strongly recommended that you create and use your own | ||
| 2039 | layer for configuration and code. | ||
| 2040 | Using your own layer as compared to just placing | ||
| 2041 | configurations in a <filename>local.conf</filename> | ||
| 2042 | configuration file makes it easier to reproduce your | ||
| 2043 | distribution when using multiple build machines. | ||
| 2044 | </para></listitem> | ||
| 2045 | <listitem><para><emphasis>Create the Distribution Configuration File:</emphasis> | ||
| 2046 | The distribution configuration file needs to be created in | ||
| 2047 | the <filename>conf/distro</filename> directory of your | ||
| 2048 | layer. | ||
| 2049 | You need to name it using your distribution name | ||
| 2050 | (e.g. <filename>mydistro.conf</filename>.</para> | ||
| 2051 | <para>You can split out parts of your configuration file | ||
| 2052 | into include file and then "require" them from within | ||
| 2053 | your distribution configuration file. | ||
| 2054 | Be sure to place the include files in the | ||
| 2055 | <filename>conf/distro/include</filename> directory of | ||
| 2056 | your layer. | ||
| 2057 | Common include files select the desired version and | ||
| 2058 | revisions for individual recipes. | ||
| 2059 | <tip> | ||
| 2060 | If you want to base your distribution configuration file | ||
| 2061 | on the very basic configuration from OE-Core, you | ||
| 2062 | can "require" | ||
| 2063 | <filename>require conf/distro/defaultsetup.conf</filename>. | ||
| 2064 | Alternatively, you can create a distribution | ||
| 2065 | configuration file from scratch using the | ||
| 2066 | <filename>defaultsetup.conf</filename> file | ||
| 2067 | or configuration files from other distributions | ||
| 2068 | such as Poky or Angstrom as references. | ||
| 2069 | </tip></para> | ||
| 2070 | <para>Your configuration file needs to set the following | ||
| 2071 | variables: | ||
| 2072 | <literallayout class='monospaced'> | ||
| 2073 | <ulink url='&YOCTO_DOCS_REF_URL;#DISTRO_NAME'><filename>DISTRO_NAME</filename></ulink> [required] | ||
| 2074 | <ulink url='&YOCTO_DOCS_REF_URL;#DISTRO_VERSION'><filename>DISTRO_VERSION</filename></ulink> [required] | ||
| 2075 | <ulink url='&YOCTO_DOCS_REF_URL;#DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink> | ||
| 2076 | <ulink url='&YOCTO_DOCS_REF_URL;#DISTRO_EXTRA_RDEPENDS'><filename>DISTRO_EXTRA_RDEPENDS</filename></ulink> | ||
| 2077 | <ulink url='&YOCTO_DOCS_REF_URL;#DISTRO_EXTRA_RRECOMMENDS'><filename>DISTRO_EXTRA_RRECOMMENDS</filename></ulink> | ||
| 2078 | <ulink url='&YOCTO_DOCS_REF_URL;#TCLIBC'><filename>TCLIBC</filename></ulink> | ||
| 2079 | <ulink url='&YOCTO_DOCS_REF_URL;#PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></ulink> | ||
| 2080 | <ulink url='&YOCTO_DOCS_REF_URL;#PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></ulink> | ||
| 2081 | </literallayout></para></listitem> | ||
| 2082 | <listitem><para><emphasis>Provide Miscellaneous Variables:</emphasis> | ||
| 2083 | Be sure to define any other variable for which you want to | ||
| 2084 | create a default or enforce as part of the distribution | ||
| 2085 | configuration. | ||
| 2086 | You can include nearly any variable from the | ||
| 2087 | <filename>local.conf</filename> file.</para></listitem> | ||
| 2088 | <listitem><para><emphasis>Point to Your Distribution Configuration File:</emphasis> | ||
| 2089 | In your <filename>local.conf</filename> file in the | ||
| 2090 | <link linkend='build-directory'>Build Directory</link>, | ||
| 2091 | set your | ||
| 2092 | <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO'><filename>DISTRO</filename></ulink> | ||
| 2093 | variable to point to your distribution's configuration file. | ||
| 2094 | Here is an example: | ||
| 2095 | <literallayout class='monospaced'> | ||
| 2096 | DISTRO = "mydistro" | ||
| 2097 | </literallayout></para></listitem> | ||
| 2098 | <listitem><para><emphasis>Add More to the Layer if Necessary:</emphasis> | ||
| 2099 | Use your layer to hold other information needed for the | ||
| 2100 | distribution. | ||
| 2101 | You can add recipes for installing distro-specific | ||
| 2102 | configuration files that are not already | ||
| 2103 | installed by another recipe. | ||
| 2104 | If you have distro-specific configuration files that are | ||
| 2105 | included by an existing recipe, you should add a | ||
| 2106 | <filename>.bbappend</filename> for those. | ||
| 2107 | You should add any image recipes that are specific to your | ||
| 2108 | distribution. | ||
| 2109 | You should add a <filename>psplash</filename> append file | ||
| 2110 | for a branded splash screen. | ||
| 2111 | Finally, be sure to add any other append files to make | ||
| 2112 | custom changes that are specific to individual recipes. | ||
| 2113 | </para></listitem> | ||
| 2114 | </itemizedlist> | ||
| 2115 | </para> | ||
| 2116 | </section> | ||
| 2117 | |||
| 2016 | <section id='working-with-packages'> | 2118 | <section id='working-with-packages'> |
| 2017 | <title>Working with Packages</title> | 2119 | <title>Working with Packages</title> |
| 2018 | 2120 | ||
