summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2018-02-09 12:43:21 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-02-14 15:25:32 +0000
commit4b3ebf00dc8eac6061ff077cff488f70c641d16e (patch)
treed0f2e8b265459d777c659552feda226617212138 /documentation
parent31f0dda70b6a53a78780c800a17bedc8ed95939e (diff)
downloadpoky-4b3ebf00dc8eac6061ff077cff488f70c641d16e.tar.gz
getting-started, mega-manual: New content for intro chapter
Created content for "What is the Yocto Project" section. Involved a new figure that had to be shared in the mega-manual figures folder. (From yocto-docs rev: 72c18abd11587f4d78848afb8a71ff7f4a0e76d0) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/Makefile4
-rw-r--r--documentation/getting-started/figures/key-dev-elements.pngbin0 -> 17052 bytes
-rw-r--r--documentation/getting-started/getting-started-yp-intro.xml255
-rw-r--r--documentation/mega-manual/figures/key-dev-elements.pngbin0 -> 17052 bytes
4 files changed, 257 insertions, 2 deletions
diff --git a/documentation/Makefile b/documentation/Makefile
index 9e0ba56df3..f2afc23628 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -89,7 +89,7 @@ XSLTOPTS = --xinclude
89ALLPREQ = html eclipse tarball 89ALLPREQ = html eclipse tarball
90TARFILES = getting-started-style.css getting-started.html figures/getting-started-title.png \ 90TARFILES = getting-started-style.css getting-started.html figures/getting-started-title.png \
91 figures/git-workflow.png figures/source-repos.png figures/index-downloads.png \ 91 figures/git-workflow.png figures/source-repos.png figures/index-downloads.png \
92 figures/yp-download.png figures/YP-flow-diagram.png \ 92 figures/yp-download.png figures/YP-flow-diagram.png figures/key-dev-elements.png \
93 eclipse 93 eclipse
94MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse 94MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
95FIGURES = figures 95FIGURES = figures
@@ -270,7 +270,7 @@ TARFILES = mega-manual.html mega-style.css \
270 figures/source-fetching.png figures/patching.png \ 270 figures/source-fetching.png figures/patching.png \
271 figures/configuration-compile-autoreconf.png \ 271 figures/configuration-compile-autoreconf.png \
272 figures/analysis-for-package-splitting.png \ 272 figures/analysis-for-package-splitting.png \
273 figures/image-generation.png \ 273 figures/image-generation.png figures/key-dev-elements.png\
274 figures/sdk-generation.png figures/recipe-workflow.png \ 274 figures/sdk-generation.png figures/recipe-workflow.png \
275 figures/build-workspace-directory.png figures/mega-title.png \ 275 figures/build-workspace-directory.png figures/mega-title.png \
276 figures/toaster-title.png figures/hosted-service.png \ 276 figures/toaster-title.png figures/hosted-service.png \
diff --git a/documentation/getting-started/figures/key-dev-elements.png b/documentation/getting-started/figures/key-dev-elements.png
new file mode 100644
index 0000000000..ce22b98ed0
--- /dev/null
+++ b/documentation/getting-started/figures/key-dev-elements.png
Binary files differ
diff --git a/documentation/getting-started/getting-started-yp-intro.xml b/documentation/getting-started/getting-started-yp-intro.xml
index a3ef4fcfec..8ea11baa75 100644
--- a/documentation/getting-started/getting-started-yp-intro.xml
+++ b/documentation/getting-started/getting-started-yp-intro.xml
@@ -8,6 +8,261 @@
8 <section id='what-is-the-yocto-project'> 8 <section id='what-is-the-yocto-project'>
9 <title>What is the Yocto Project?</title> 9 <title>What is the Yocto Project?</title>
10 10
11 <para>
12 The Yocto Project is an open source collaboration project
13 that helps developers create custom Linux-based systems that are
14 designed for embedded products regardless of the product's hardware
15 architecture.
16 Yocto Project provides a flexible toolset and a development
17 environment that allows embedded device developers across the
18 world to collaborate through shared technologies, software stacks,
19 configurations, and best practices used to create these tailored
20 Linux images.
21 </para>
22
23 <para>
24 Thousands of developers worldwide have discovered that Yocto
25 Project provides advantages in both systems and applications
26 development, archival and management benefits, and customizations
27 used for speed, footprint, and memory utilization.
28 The project is a standard when it comes to delivering hardware
29 support and software stacks, allowing software configuration
30 and build interchange, and build and support customizations for
31 multiple hardware platforms and software stacks that can be
32 maintained and scaled.
33 </para>
34
35 <mediaobject>
36 <imageobject>
37 <imagedata fileref="figures/key-dev-elements.png"
38 format="PNG" align='center' width="8in"/>
39 </imageobject>
40 </mediaobject>
41
42 <para>
43 For further introductory information on the Yocto Project, you
44 might be interested in this
45 <ulink url='https://www.embedded.com/electronics-blogs/say-what-/4458600/Why-the-Yocto-Project-for-my-IoT-Project-'>article</ulink>
46 by Drew Moseley and in this short introductory
47 <ulink url='https://www.youtube.com/watch?v=utZpKM7i5Z4'>video</ulink>.
48 </para>
49
50 <para>
51 The remainder of this section overviews advantages and challenges
52 tied to the Yocto Project.
53 </para>
54
55 <section id='gs-features'>
56 <title>Features</title>
57
58 <para>
59 The following list describes features and advantages of the
60 Yocto Project:
61 <itemizedlist>
62 <listitem><para>
63 <emphasis>Widely Adopted Across the Industry:</emphasis>
64 Semiconductor, operating system, software, and
65 service vendors exist whose products and services
66 adopt and support the Yocto Project.
67 For a look at the companies involved with the Yocto
68 Project, see the membership, associate, and
69 participant pages on the Yocto Project home page.
70 </para></listitem>
71 <listitem><para>
72 <emphasis>Architecture Agnostic:</emphasis>
73 Yocto Project supports Intel, ARM, MIPS, AMD, PPC
74 and other architectures.
75 Most ODMs, OSVs, and chip vendors create and supply
76 BSPs that support their hardware.
77 If you have custom silicon, you can create a BSP
78 that supports that architecture.
79 </para></listitem>
80 <listitem><para>
81 <emphasis>Images and Code Transfer Easily:</emphasis>
82 Yocto Project output can easily move between
83 architectures without moving to new development
84 environments.
85 Additionally, if you have used the Yocto Project to
86 create an image or application and you find yourself
87 not able to support it, commercial Linux vendors such
88 as Wind River, Mentor Graphics, Timesys, and ENEA could
89 take it and provide ongoing support.
90 These vendors have offerings that are built using
91 the Yocto Project.
92 </para></listitem>
93 <listitem><para>
94 <emphasis>Flexibility:</emphasis>
95 Corporations use the Yocto Project many different ways.
96 One example is to create an internal Linux distribution
97 as a code base the corporation can use across multiple
98 product groups.
99 Through customization and layering, a project group
100 can leverage the base Linux distribution to create
101 a distribution that works for their product needs.
102 </para></listitem>
103 <listitem><para>
104 <emphasis>Ideal for Constrained Embedded and IoT devices:</emphasis>
105 Unlike a full Linux distribution, you can use the
106 Yocto Project to create exactly what you need for
107 embedded devices.
108 You only add the feature support or packages that you
109 absolutely need for the device.
110 </para></listitem>
111 <listitem><para>
112 <emphasis>Comprehensive Toolchain Capabilities:</emphasis>
113 Toolchains for supported architectures satisfy most
114 use cases.
115 However, if your hardware supports features that are
116 not part of a standard toolchain, you can easily
117 customize that toolchain through specification of
118 platform-specific tuning parameters.
119 And, should you need to use a third-party toolchain,
120 mechanisms built into the Yocto Project allow for that.
121 </para></listitem>
122 <listitem><para>
123 <emphasis>Mechanism Rules Over Policy:</emphasis>
124 Focusing on mechanism rather than policy ensures that
125 you are free to set policies based on the needs of your
126 design instead of adopting decisions enforced by some
127 system software provider.
128 </para></listitem>
129 <listitem><para>
130 <emphasis>Uses a Layer Model:</emphasis>
131 The Yocto Project layer infrastructure groups related
132 functionality into separate bundles.
133 You can incrementally add these grouped functionalities
134 to your project as needed.
135 Using layers to isolate and group functionality
136 reduces project complexity and redundancy.
137 </para></listitem>
138 <listitem><para>
139 <emphasis>Supports Partial Builds:</emphasis>
140 You can build and rebuild individual packages as
141 needed.
142 Yocto Project accomplishes this through its
143 shared-state cache (sstate) scheme.
144 Being able to build and debug components individually
145 eases project development.
146 </para></listitem>
147 <listitem><para>
148 <emphasis>Releases According to a Strict Schedule:</emphasis>
149 Major releases occur on a six-month cycle predictably
150 in October and April.
151 The most recent two releases support point releases
152 to address common vulnerabilities and exposures.
153 This predictability is crucial for projects based on
154 the Yocto Project and allows development teams to
155 plan activities.
156 </para></listitem>
157 <listitem><para>
158 <emphasis>Rich Ecosystem of Individuals and Organizations:</emphasis>
159 For open source projects, the value of community is
160 very important.
161 Support forums, expertise, and active developers who
162 continue to push the Yocto Project forward are readily
163 available.
164 </para></listitem>
165 <listitem><para>
166 <emphasis>Binary Reproducibility:</emphasis>
167 The Yocto Project you to be very specific about
168 dependencies and achieves very high percentages of
169 binary reproducibility (e.g. 99.8% for
170 <filename>core-image-minimal</filename>).
171 When distributions are not specific about which
172 packages are pulled in and in what order to support
173 dependencies, other build systems can arbitrarily
174 include packages.
175 </para></listitem>
176 <listitem><para>
177 <emphasis>License Manifest:</emphasis>
178 The Yocto Project provides a license manifest for
179 review by people that need to track the use of open
180 source licenses (e.g.legal teams).
181 </para></listitem>
182 </itemizedlist>
183 </para>
184 </section>
185
186 <section id='gs-challenges'>
187 <title>Challenges</title>
188
189 <para>
190 The following list presents challenges you might encounter
191 when developing using the Yocto Project:
192 <itemizedlist>
193 <listitem><para>
194 <emphasis>Steep Learning Curve:</emphasis>
195 The Yocto Project has a steep learning curve and has
196 many different ways to accomplish similar tasks.
197 It can be difficult to choose how to proceed when
198 varying methods exist by which to accomplish a given
199 task.
200 </para></listitem>
201 <listitem><para>
202 <emphasis>Understanding What Changes You Need to Make
203 For Your Design Requires Some Research:</emphasis>
204 Beyond the simple tutorial stage, understanding what
205 changes need to be made for your particular design
206 can require a significant amount of research and
207 investigation.
208 For information that helps you transition from
209 trying out the Yocto Project to using it for your
210 project, see the "What I wish I'd Known" and
211 "Transitioning to a Custom Environment for Systems
212 Development" documents on the Yocto Project website.
213 </para></listitem>
214 <listitem><para>
215 <emphasis>Project Workflow Could Be Confusing:</emphasis>
216 The Yocto Project workflow could be confusing if you
217 used to traditional desktop and server software
218 development.
219 In a desktop development environment, mechanisms exist
220 to easily pull and install new packages, which are
221 typically pre-compiled binaries from servers accessible
222 over the Internet.
223 Using the Yocto Project, you must modify your
224 configuration and rebuild to add additional packages.
225 </para></listitem>
226 <listitem><para>
227 <emphasis>Working in a Cross-Build Environment Can
228 Feel Unfamiliar:</emphasis>
229 When developing code to run on a target, compilation,
230 execution, and testing done on the actual target
231 can be faster than running a BitBake build on a
232 development host and then deploying binaries to the
233 target for test.
234 While the Yocto Project does support development tools
235 on the target, the additional step of integrating your
236 changes back into the Yocto Project build environment
237 would be required.
238 Yocto Project supports an intermediate approach that
239 involves making changes on the development system
240 within the BitBake environment and then deploying only
241 the updated packages to the target.</para>
242
243 <para>The Yocto Project OpenEmbedded build system
244 produces packages in standard formats (i.e. RPM,
245 DEB, IPK, and TAR).
246 You can deploy these packages into the running system
247 on the target by using utilities on the target such
248 as <filename>rpm</filename> or
249 <filename>ipk</filename>.
250 </para></listitem>
251 <listitem><para>
252 <emphasis>Initial Build Times Can be Significant:</emphasis>
253 Long initial build times are unfortunately unavoidable
254 due to the large number of packages initially built
255 from scratch for a fully functioning Linux system.
256 Once that initial build is completed, however, the
257 shared-state (sstate) cache mechanism Yocto Project
258 uses keeps the system from rebuilding packages that
259 have not been "touched" since the last build.
260 The sstate mechanism significantly reduces times
261 for successive builds.
262 </para></listitem>
263 </itemizedlist>
264 </para>
265 </section>
11 </section> 266 </section>
12 267
13 <section id='what-are-layers'> 268 <section id='what-are-layers'>
diff --git a/documentation/mega-manual/figures/key-dev-elements.png b/documentation/mega-manual/figures/key-dev-elements.png
new file mode 100644
index 0000000000..ce22b98ed0
--- /dev/null
+++ b/documentation/mega-manual/figures/key-dev-elements.png
Binary files differ