summaryrefslogtreecommitdiffstats
path: root/documentation/getting-started
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2018-02-12 09:11:37 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-02-14 15:25:32 +0000
commitcfdf4c78eb442169c32cb4d67fe7afe203de0d50 (patch)
tree78145d63fdff6d8807b87ad42ce0b8bdfdf78b96 /documentation/getting-started
parent4b3ebf00dc8eac6061ff077cff488f70c641d16e (diff)
downloadpoky-cfdf4c78eb442169c32cb4d67fe7afe203de0d50.tar.gz
getting-started, dev-manual: Created Layer Model section
This involved removing the general information about layers from the dev-manual and incorporating it into the new section of the getting-started manual. (From yocto-docs rev: 26438b03751948661f48fb0c023e393101b80e19) 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-yp-intro.xml118
1 files changed, 116 insertions, 2 deletions
diff --git a/documentation/getting-started/getting-started-yp-intro.xml b/documentation/getting-started/getting-started-yp-intro.xml
index 8ea11baa75..c160c1cf62 100644
--- a/documentation/getting-started/getting-started-yp-intro.xml
+++ b/documentation/getting-started/getting-started-yp-intro.xml
@@ -265,9 +265,123 @@
265 </section> 265 </section>
266 </section> 266 </section>
267 267
268 <section id='what-are-layers'> 268 <section id='the-yocto-project-layer-model'>
269 <title>What are Layers?</title> 269 <title>The Yocto Project Layer Model</title>
270 270
271 <para>
272 The Yocto Project's "Layer Model" is a development model for
273 embedded and IoT Linux creation that distinguishes the
274 Yocto Project from other simple build systems.
275 The Layer Model simultaneously supports collaboration and
276 customization.
277 Layers are repositories that contain related sets of instructions
278 that tell the OpenEmbedded build system what to do.
279 You can collaborate, share, and reuse layers.
280 </para>
281
282 <para>
283 Layers can contain changes to previous instructions or settings
284 at any time.
285 This powerful override capability is what allows you to customize
286 previously supplied collaborative or community layers to suit your
287 product requirements.
288 </para>
289
290 <para>
291 You use different layers to logically separate information in your
292 build.
293 As an example, you could have BSP, GUI, distro configuration,
294 middleware, or application layers.
295 Putting your entire build into one layer limits and complicates
296 future customization and reuse.
297 Isolating information into layers, on the other hand, helps
298 simplify future customizations and reuse.
299 You might find it tempting to keep everything in one layer when
300 working on a single project.
301 However, the more modular your Metadata, the easier
302 it is to cope with future changes.
303 <note><title>Notes</title>
304 <itemizedlist>
305 <listitem><para>
306 Use Board Support Package (BSP) layers from silicon
307 vendors when possible.
308 </para></listitem>
309 <listitem><para>
310 Familiarize yourself with the
311 <ulink url='https://caffelli-staging.yoctoproject.org/software-overview/layers/'>Yocto Project curated layer index</ulink>
312 or the
313 <ulink url='http://layers.openembedded.org/layerindex/branch/master/layers/'>OpenEmbedded layer index</ulink>.
314 The latter contains more layers but they are less
315 universally validated.
316 </para></listitem>
317 <listitem><para>
318 Layers support the inclusion of technologies, hardware
319 components, and software components.
320 The Yocto Project Compatible designation provides a
321 minimum level of standardization that contributes to a
322 strong ecosystem.
323 "YP Compatible" is applied to appropriate products and
324 software components such as BSPs, other OE-compatible
325 layers, and related open-source projects, allowing the
326 producer to use Yocto Project badges and branding
327 assets.
328 </para></listitem>
329 </itemizedlist>
330 </note>
331 </para>
332
333 <para>
334 To illustrate how layers are used to keep things modular, consider
335 machine customizations.
336 These types of customizations typically reside in a special layer,
337 rather than a general layer, called a BSP Layer.
338 Furthermore, the machine customizations should be isolated from
339 recipes and Metadata that support a new GUI environment,
340 for example.
341 This situation gives you a couple of layers: one for the machine
342 configurations, and one for the GUI environment.
343 It is important to understand, however, that the BSP layer can
344 still make machine-specific additions to recipes within the GUI
345 environment layer without polluting the GUI layer itself
346 with those machine-specific changes.
347 You can accomplish this through a recipe that is a BitBake append
348 (<filename>.bbappend</filename>) file, which is described later
349 in this section.
350 <note>
351 For general information on BSP layer structure, see the
352 <ulink url='&YOCTO_DOCS_BSP_URL;#bsp'>Board Support Packages (BSP) - Developer's Guide</ulink>.
353 </note>
354 </para>
355
356 <para>
357 The
358 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
359 contains both general layers and BSP layers right out of the box.
360 You can easily identify layers that ship with a Yocto Project
361 release in the Source Directory by their names.
362 Layers typically have names that begin with the string
363 <filename>meta-</filename>.
364 <note>
365 It is not a requirement that a layer name begin with the
366 prefix <filename>meta-</filename>, but it is a commonly
367 accepted standard in the Yocto Project community.
368 </note>
369 For example, if you were to examine the
370 <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/'>tree view</ulink>
371 of the <filename>poky</filename> repository, you will see several
372 layers: <filename>meta</filename>,
373 <filename>meta-skeleton</filename>,
374 <filename>meta-selftest</filename>,
375 <filename>meta-poky</filename>, and
376 <filename>meta-yocto-bsp</filename>.
377 Each of these repositories represents a distinct layer.
378 </para>
379
380 <para>
381 For procedures on how to create layers, see the
382 "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>"
383 section in the Yocto Project Development Tasks Manual.
384 </para>
271 </section> 385 </section>
272 386
273 <section id='components-and-tools'> 387 <section id='components-and-tools'>