diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2013-03-04 21:37:17 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-03-22 17:08:41 +0000 |
commit | 1996be8717e928b00621dd92836d90dd5b279cfc (patch) | |
tree | 934e0036683245852fa7d00c5d76ed8241b97c6f | |
parent | e0144f21f03b130697332ca562701604243dca87 (diff) | |
download | poky-1996be8717e928b00621dd92836d90dd5b279cfc.tar.gz |
dev-manual: First draft of "Creating your own distro" section.
(From yocto-docs rev: fa8ddbf0ca6e7619fa79a5637e49f95f06719da9)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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 | ||