summaryrefslogtreecommitdiffstats
path: root/documentation/getting-started
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2018-02-19 15:40:19 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-03-03 08:35:24 +0000
commit189851f9d6c32f32a236338c35d2a911a91f2282 (patch)
tree91ea9e610eb481d6f53a0cdc7ca396bdda710336 /documentation/getting-started
parent68823387c35b766f32399b3051f789a2cf4a74f5 (diff)
downloadpoky-189851f9d6c32f32a236338c35d2a911a91f2282.tar.gz
getting-started: Added section on BB workflow
New section called "The OpenEmbedded Build System Workflow". This section presents the tried and true flow block figure that shows what happens when you fire off a build. (From yocto-docs rev: 5b4313ba87a2ccd139f2b980f4cf097700421cf4) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/getting-started')
-rw-r--r--documentation/getting-started/getting-started-development-environment.xml120
-rw-r--r--documentation/getting-started/getting-started-yp-intro.xml75
2 files changed, 72 insertions, 123 deletions
diff --git a/documentation/getting-started/getting-started-development-environment.xml b/documentation/getting-started/getting-started-development-environment.xml
index 5d6491c51b..54a607f6ab 100644
--- a/documentation/getting-started/getting-started-development-environment.xml
+++ b/documentation/getting-started/getting-started-development-environment.xml
@@ -7,8 +7,7 @@
7 7
8<para> 8<para>
9 This chapter takes a look at the Yocto Project development 9 This chapter takes a look at the Yocto Project development
10 environment and also provides a detailed look at what goes on during 10 environment.
11 development in that environment.
12 The chapter provides Yocto Project Development environment concepts that 11 The chapter provides Yocto Project Development environment concepts that
13 help you understand how work is accomplished in an open source environment, 12 help you understand how work is accomplished in an open source environment,
14 which is very different as compared to work accomplished in a closed, 13 which is very different as compared to work accomplished in a closed,
@@ -21,123 +20,6 @@
21 syntax. 20 syntax.
22</para> 21</para>
23 22
24<section id='yp-intro'>
25 <title>Introduction</title>
26
27 <para>
28 The Yocto Project is an open-source collaboration project whose
29 focus is for developers of embedded Linux systems.
30 Among other things, the Yocto Project uses an
31 <ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>OpenEmbedded build system</ulink>.
32 The build system, which is based on the OpenEmbedded (OE) project and
33 uses the
34 <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink> tool,
35 constructs complete Linux images for architectures based on ARM, MIPS,
36 PowerPC, x86 and x86-64.
37 <note>
38 Historically, the OpenEmbedded build system, which is the
39 combination of BitBake and OE components, formed a reference
40 build host that was known as
41 "<ulink url='&YOCTO_DOCS_REF_URL;#poky'>Poky</ulink>"
42 (<emphasis>Pah</emphasis>-kee).
43 The term "Poky", as used throughout the Yocto Project Documentation
44 set, can have different meanings.
45 </note>
46 The Yocto Project provides various ancillary tools for the embedded
47 developer and also features the Sato reference User Interface, which
48 is optimized for stylus-driven, low-resolution screens.
49 </para>
50
51 <mediaobject>
52 <imageobject>
53 <imagedata fileref="figures/YP-flow-diagram.png"
54 format="PNG" align='center' width="8in"/>
55 </imageobject>
56 </mediaobject>
57
58 <para>
59 Here are some highlights for the Yocto Project:
60 </para>
61
62 <itemizedlist>
63 <listitem><para>
64 Provides a recent Linux kernel along with a set of system
65 commands and libraries suitable for the embedded
66 environment.
67 </para></listitem>
68 <listitem><para>
69 Makes available system components such as X11, GTK+, Qt,
70 Clutter, and SDL (among others) so you can create a rich user
71 experience on devices that have display hardware.
72 For devices that do not have a display or where you wish to
73 use alternative UI frameworks, these components need not be
74 installed.
75 </para></listitem>
76 <listitem><para>
77 Creates a focused and stable core compatible with the
78 OpenEmbedded project with which you can easily and reliably
79 build and develop.
80 </para></listitem>
81 <listitem><para>
82 Fully supports a wide range of hardware and device emulation
83 through the Quick EMUlator (QEMU).
84 </para></listitem>
85 <listitem><para>
86 Provides a layer mechanism that allows you to easily extend
87 the system, make customizations, and keep them organized.
88 </para></listitem>
89 </itemizedlist>
90
91 <para>
92 You can use the Yocto Project to generate images for many kinds
93 of devices.
94 As mentioned earlier, the Yocto Project supports creation of
95 reference images that you can boot within and emulate using QEMU.
96 The standard example machines target QEMU full-system
97 emulation for 32-bit and 64-bit variants of x86, ARM, MIPS, and
98 PowerPC architectures.
99 Beyond emulation, you can use the layer mechanism to extend
100 support to just about any platform that Linux can run on and that
101 a toolchain can target.
102 </para>
103
104 <para>
105 Another Yocto Project feature is the Sato reference User
106 Interface.
107 This optional UI that is based on GTK+ is intended for devices with
108 restricted screen sizes and is included as part of the
109 OpenEmbedded Core layer so that developers can test parts of the
110 software stack.
111 </para>
112
113 <para>
114 While the Yocto Project does not provide a strict testing framework,
115 it does provide or generate for you artifacts that let you perform
116 target-level and emulated testing and debugging.
117 Additionally, if you are an
118 <trademark class='trade'>Eclipse</trademark> IDE user, you can
119 install an Eclipse Yocto Plug-in to allow you to develop within that
120 familiar environment.
121 </para>
122
123 <para>
124 By default, using the Yocto Project to build an image creates a Poky
125 distribution.
126 However, you can create your own distribution by providing key
127 <ulink url='&YOCTO_DOCS_REF_URL;#metadata'>Metadata</ulink>.
128 A good example is Angstrom, which has had a distribution
129 based on the Yocto Project since its inception.
130 Other examples include commercial distributions like
131 <ulink url='https://www.yoctoproject.org/organization/wind-river-systems'>Wind River Linux</ulink>,
132 <ulink url='https://www.yoctoproject.org/organization/mentor-graphics'>Mentor Embedded Linux</ulink>,
133 <ulink url='https://www.yoctoproject.org/organization/enea-ab'>ENEA Linux</ulink>
134 and <ulink url='https://www.yoctoproject.org/ecosystem/member-organizations'>others</ulink>.
135 See the "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-your-own-distribution'>Creating Your Own Distribution</ulink>"
136 section in the Yocto Project Development Tasks Manual for more
137 information.
138 </para>
139</section>
140
141<section id='open-source-philosophy'> 23<section id='open-source-philosophy'>
142 <title>Open Source Philosophy</title> 24 <title>Open Source Philosophy</title>
143 25
diff --git a/documentation/getting-started/getting-started-yp-intro.xml b/documentation/getting-started/getting-started-yp-intro.xml
index 964a500ad4..caabb13c10 100644
--- a/documentation/getting-started/getting-started-yp-intro.xml
+++ b/documentation/getting-started/getting-started-yp-intro.xml
@@ -72,7 +72,11 @@
72 Most ODMs, OSVs, and chip vendors create and supply 72 Most ODMs, OSVs, and chip vendors create and supply
73 BSPs that support their hardware. 73 BSPs that support their hardware.
74 If you have custom silicon, you can create a BSP 74 If you have custom silicon, you can create a BSP
75 that supports that architecture. 75 that supports that architecture.</para>
76
77 <para>Aside from lots of architecture support, the
78 Yocto Project fully supports a wide range of device
79 emulation through the Quick EMUlator (QEMU).
76 </para></listitem> 80 </para></listitem>
77 <listitem><para> 81 <listitem><para>
78 <emphasis>Images and Code Transfer Easily:</emphasis> 82 <emphasis>Images and Code Transfer Easily:</emphasis>
@@ -104,6 +108,13 @@
104 embedded devices. 108 embedded devices.
105 You only add the feature support or packages that you 109 You only add the feature support or packages that you
106 absolutely need for the device. 110 absolutely need for the device.
111 For devices that have display hardware, you can use
112 available system components such as X11, GTK+, Qt,
113 Clutter, and SDL (among others) to create a rich user
114 experience.
115 For devices that do not have a display or where you
116 want to use alternative UI frameworks, you can choose
117 to not install these components.
107 </para></listitem> 118 </para></listitem>
108 <listitem><para> 119 <listitem><para>
109 <emphasis>Comprehensive Toolchain Capabilities:</emphasis> 120 <emphasis>Comprehensive Toolchain Capabilities:</emphasis>
@@ -130,7 +141,9 @@
130 You can incrementally add these grouped functionalities 141 You can incrementally add these grouped functionalities
131 to your project as needed. 142 to your project as needed.
132 Using layers to isolate and group functionality 143 Using layers to isolate and group functionality
133 reduces project complexity and redundancy. 144 reduces project complexity and redundancy, allows you
145 to easily extend the system, make customizations,
146 and keep functionality organized.
134 </para></listitem> 147 </para></listitem>
135 <listitem><para> 148 <listitem><para>
136 <emphasis>Supports Partial Builds:</emphasis> 149 <emphasis>Supports Partial Builds:</emphasis>
@@ -736,6 +749,9 @@
736 It is a working example of how to build your own custom 749 It is a working example of how to build your own custom
737 Linux distribution from source. 750 Linux distribution from source.
738 </note> 751 </note>
752 You can read more about Poky in the
753 "<link linkend='reference-embedded-distribution'>Reference Embedded Distribution (Poky)</link>"
754 section.
739 </para> 755 </para>
740 </section> 756 </section>
741 757
@@ -1071,9 +1087,60 @@
1071 </para> 1087 </para>
1072 </section> 1088 </section>
1073 1089
1074 <section id='the-yocto-project-workflow'> 1090 <section id='openembedded-build-system-workflow'>
1075 <title>The Yocto Project Workflow</title> 1091 <title>The OpenEmbedded Build System Workflow</title>
1092
1093 <para>
1094 The OpenEmbedded build system uses a "workflow" to accomplish
1095 image and SDK generation.
1096 The following figure overviews that workflow:
1097 <imagedata fileref="figures/YP-flow-diagram.png"
1098 format="PNG" align='center' width="8in"/>
1099 Following is a brief summary of the "workflow":
1100 <orderedlist>
1101 <listitem><para>
1102 Developers specify architecture, policies, patches and
1103 configuration details.
1104 </para></listitem>
1105 <listitem><para>
1106 The build system fetches and downloads the source code
1107 from the specified location.
1108 The build system supports standard methods such as tarballs
1109 or source code repositories systems such as Git.
1110 </para></listitem>
1111 <listitem><para>
1112 Once downloaded, the build system extracts the sources
1113 into a local work area where patches are applied and
1114 common steps for configuring and compiling the software
1115 are run.
1116 </para></listitem>
1117 <listitem><para>
1118 The build system then installs the software into a
1119 temporary staging area where the binary package format you
1120 select (DEB, RPM, or IPK) is used to roll up the software.
1121 </para></listitem>
1122 <listitem><para>
1123 Different QA and sanity checks run throughout entire
1124 build process.
1125 </para></listitem>
1126 <listitem><para>
1127 After the binaries are created, the build system
1128 generates a binary package feed that is used to create
1129 the final root file image.
1130 </para></listitem>
1131 <listitem><para>
1132 The build system generates the file system image and a
1133 customized Extensible SDK (eSDSK) for application
1134 development in parallel.
1135 </para></listitem>
1136 </orderedlist>
1137 </para>
1076 1138
1139 <para>
1140 For a very detailed look at this workflow, see the
1141 "<ulink url='&YOCTO_DOCS_CM_URL;#development-concepts'>Development Concepts</ulink>"
1142 section in the Yocto Project Concepts Manual.
1143 </para>
1077 </section> 1144 </section>
1078 1145
1079 1146