diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2018-02-12 09:11:37 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-02-14 15:25:32 +0000 |
commit | cfdf4c78eb442169c32cb4d67fe7afe203de0d50 (patch) | |
tree | 78145d63fdff6d8807b87ad42ce0b8bdfdf78b96 /documentation/getting-started | |
parent | 4b3ebf00dc8eac6061ff077cff488f70c641d16e (diff) | |
download | poky-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.xml | 118 |
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'> |