diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2012-10-09 06:32:34 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-10-10 15:18:12 +0100 |
commit | 0bd73012eec486f4b542c018f63b44da093d4af3 (patch) | |
tree | 7744e029b9a66ec29918ce29ba4092b52acdb9cb /documentation/dev-manual | |
parent | 8461d4ad85bdf419530fe63ff2ad9db48c4dc72e (diff) | |
download | poky-0bd73012eec486f4b542c018f63b44da093d4af3.tar.gz |
documentation: dev-manual, bsp-guide, kernel-manual - kernel workflow
The kernel workflow section was re-written to reflect that the
kernel appendix has been removed. Also, changes to the flow in
general no longer make reference to the bare clone and the copy
of the bare clone as a method used to modify the kernel.
Many links were modified in other manuals as well.
(From yocto-docs rev: 38adbcb00d4305029cfa94e5ef047da41823f021)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 12 | ||||
-rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 157 | ||||
-rw-r--r-- | documentation/dev-manual/figures/kernel-dev-flow.png | bin | 62416 -> 45225 bytes |
3 files changed, 51 insertions, 118 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 4ce0a94873..48d86fac25 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
@@ -1608,8 +1608,6 @@ | |||
1608 | Kernel modification involves changing or adding configurations to an existing kernel, | 1608 | Kernel modification involves changing or adding configurations to an existing kernel, |
1609 | changing or adding recipes to the kernel that are needed to support specific hardware features, | 1609 | changing or adding recipes to the kernel that are needed to support specific hardware features, |
1610 | or even altering the source code itself. | 1610 | or even altering the source code itself. |
1611 | This appendix presents simple examples that modify the kernel source code, | ||
1612 | change the kernel configuration, and add a kernel source recipe. | ||
1613 | <note> | 1611 | <note> |
1614 | You can use the <filename>yocto-kernel</filename> script | 1612 | You can use the <filename>yocto-kernel</filename> script |
1615 | found in the <link linkend='source-directory'>Source Directory</link> | 1613 | found in the <link linkend='source-directory'>Source Directory</link> |
@@ -1627,6 +1625,16 @@ | |||
1627 | console. | 1625 | console. |
1628 | </para> | 1626 | </para> |
1629 | 1627 | ||
1628 | <section id='finding-the-kernel-source-files'> | ||
1629 | <title>Finding the Kernel Source Files</title> | ||
1630 | |||
1631 | <para> | ||
1632 | Describe how to find the source files in the build area. | ||
1633 | We are not assuming they are using their own kernel tree. | ||
1634 | |||
1635 | </para> | ||
1636 | </section> | ||
1637 | |||
1630 | <section id='understanding-the-files-you-need'> | 1638 | <section id='understanding-the-files-you-need'> |
1631 | <title>Understanding the Files You Need</title> | 1639 | <title>Understanding the Files You Need</title> |
1632 | 1640 | ||
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index c96b2dda63..ab14ebd4d4 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml | |||
@@ -8,7 +8,8 @@ | |||
8 | 8 | ||
9 | <para> | 9 | <para> |
10 | Many development models exist for which you can use the Yocto Project. | 10 | Many development models exist for which you can use the Yocto Project. |
11 | This chapter overviews the following methods: | 11 | This chapter overviews simple methods that use tools provided by the |
12 | Yocto Project: | ||
12 | <itemizedlist> | 13 | <itemizedlist> |
13 | <listitem><para><emphasis>System Development:</emphasis> | 14 | <listitem><para><emphasis>System Development:</emphasis> |
14 | System Development covers Board Support Package (BSP) development and kernel | 15 | System Development covers Board Support Package (BSP) development and kernel |
@@ -322,8 +323,8 @@ | |||
322 | </note> | 323 | </note> |
323 | 324 | ||
324 | <para> | 325 | <para> |
325 | Storage of all the available kernel source code is one thing, while representing the | 326 | Upstream storage of all the available kernel source code is one thing, while |
326 | code on your host development system is another. | 327 | representing and using the code on your host development system is another. |
327 | Conceptually, you can think of the kernel source repositories as all the | 328 | Conceptually, you can think of the kernel source repositories as all the |
328 | source files necessary for all the supported kernels. | 329 | source files necessary for all the supported kernels. |
329 | As a developer, you are just interested in the source files for the kernel on | 330 | As a developer, you are just interested in the source files for the kernel on |
@@ -332,39 +333,14 @@ | |||
332 | </para> | 333 | </para> |
333 | 334 | ||
334 | <para> | 335 | <para> |
335 | You make kernel source code available on your host development system by using | 336 | Kernel source code is available on your host system a couple of different |
336 | Git to create a bare clone of the Yocto Project kernel Git repository | 337 | ways. |
337 | in which you are interested. | 338 | If you are working in the kernel all the time, you probably would want |
338 | Then, you use Git again to clone a copy of that bare clone. | 339 | to set up your own local Git repository of the kernel tree. |
339 | This copy represents the directory structure on your host system that is particular | 340 | If you just need to make some patches to the kernel, you can get at |
340 | to the kernel you want. | 341 | temporary kernel source files extracted and used during the OpenEmbedded |
341 | The files in the copy of the bare clone are the files you actually modify | 342 | build system. |
342 | to change the kernel. | 343 | We will just talk about working with the temporary source code. |
343 | See the <link linkend='local-kernel-files'>Yocto Project Kernel</link> item earlier | ||
344 | in this manual for an example of how to set up the kernel source directory | ||
345 | structure on your host system. | ||
346 | </para> | ||
347 | |||
348 | <para> | ||
349 | This next figure illustrates how the kernel source files might be arranged on | ||
350 | your host system. | ||
351 | </para> | ||
352 | |||
353 | <para> | ||
354 | <imagedata fileref="figures/kernel-overview-3-generic.png" | ||
355 | width="6in" depth="4in" align="center" scale="100" /> | ||
356 | </para> | ||
357 | |||
358 | <para> | ||
359 | In the previous figure, the file structure on the left represents the bare clone | ||
360 | set up to track the Yocto Project kernel Git repository. | ||
361 | The structure on the right represents the copy of the bare clone. | ||
362 | When you make modifcations to the kernel source code, this is the area in which | ||
363 | you work. | ||
364 | Once you make corrections, you must use Git to push the committed changes to the | ||
365 | bare clone. | ||
366 | <!-- The example in <xref linkend='modifying-the-kernel-source-code'> | ||
367 | Modifying the Kernel Source Code</xref> provides a detailed example. --> | ||
368 | </para> | 344 | </para> |
369 | 345 | ||
370 | <para> | 346 | <para> |
@@ -407,7 +383,7 @@ | |||
407 | 383 | ||
408 | <para> | 384 | <para> |
409 | <imagedata fileref="figures/kernel-dev-flow.png" | 385 | <imagedata fileref="figures/kernel-dev-flow.png" |
410 | width="6in" depth="7.5in" align="center" scalefit="1" /> | 386 | width="6in" depth="5in" align="center" scalefit="1" /> |
411 | </para> | 387 | </para> |
412 | 388 | ||
413 | <para> | 389 | <para> |
@@ -424,43 +400,39 @@ | |||
424 | For information on how to get these files, see the bulleted item | 400 | For information on how to get these files, see the bulleted item |
425 | "<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual. | 401 | "<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual. |
426 | </para></listitem> | 402 | </para></listitem> |
427 | <listitem><para><emphasis>Set up a local copy of the <filename>poky-extras</filename> Git | 403 | <listitem><para><emphasis>Establish the temporary kernel source files</emphasis>: |
428 | repository</emphasis>: This local repository is the area for your configuration | 404 | Temporary kernel source files are kept in the Build Directory created by the |
429 | fragments, new kernel recipes, and the kernel <filename>.bbappend</filename> | 405 | OpenEmbedded build system when you run BitBake. |
430 | file used during the build. | 406 | If you have never built the kernel you are interested in, you need to run |
431 | It is good practice to set this repository up inside your local | 407 | an initial build to establish local kernel source files.</para> |
432 | <link linkend='source-directory'>Source Directory</link>. | 408 | <para>If you are building an image for the first time, you need to get the build |
433 | For information on how to get these files, see the bulleted item | 409 | environment ready by sourcing |
434 | "<link linkend='poky-extras-repo'>The <filename>poky-extras</filename> Git Repository</link>" | 410 | the environment setup script. |
435 | earlier in this manual. | 411 | You also need to be sure two key configuration files |
436 | <note>While it is certainly possible to modify the kernel without involving | 412 | (<filename>local.conf</filename> and <filename>bblayers.conf</filename>) |
437 | a local Git repository, the suggested workflow for kernel modification | 413 | are configured appropriately.</para> |
438 | using the Yocto Project does use a Git repository.</note></para></listitem> | 414 | <para>The entire process for building an image is overviewed in the |
439 | <listitem><para><emphasis>Establish a local copy of the Yocto Project kernel files on your | 415 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" |
440 | system</emphasis>: In order to make modifications to the kernel you need two things: | 416 | section of the Yocto Project Quick Start. |
441 | a bare clone of the Yocto Project kernel you are modifying and | 417 | You might want to reference this information. |
442 | a copy of that bare clone. | 418 | You can find more information on BitBake in the user manual, which is found in the |
443 | The bare clone is required by the build process and is the area to which you | 419 | <filename>bitbake/doc/manual</filename> directory of the |
444 | push your kernel source changes (pulling does not work with bare clones). | 420 | <link linkend='source-directory'>Source Directory</link>.</para> |
445 | The copy of the bare clone is a local Git repository that contains all the kernel's | 421 | <para>The build process supports several types of images to satisfy different needs. |
446 | source files. | 422 | See the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in |
447 | You make your changes to the files in this copy of the bare clone. | 423 | the Yocto Project Reference Manual for information on supported images. |
448 | For information on how to set these two items up, see the bulleted item | 424 | </para></listitem> |
449 | "<link linkend='local-kernel-files'>Yocto Project Kernel</link>" | ||
450 | earlier in this manual.</para></listitem> | ||
451 | <listitem><para><emphasis>Make changes to the kernel source code if | 425 | <listitem><para><emphasis>Make changes to the kernel source code if |
452 | applicable</emphasis>: Modifying the kernel does not always mean directly | 426 | applicable</emphasis>: Modifying the kernel does not always mean directly |
453 | changing source files. | 427 | changing source files. |
454 | However, if you have to do this, you make the changes in the local | 428 | However, if you have to do this, you make the changes to the files in the |
455 | Git repository you set up to hold the source files (i.e. the copy of the | 429 | Build directory.</para></listitem> |
456 | bare clone). | ||
457 | Once the changes are made, you need to use Git commands to commit the changes | ||
458 | and then push them to the bare clone.</para></listitem> | ||
459 | <listitem><para><emphasis>Make kernel configuration changes | 430 | <listitem><para><emphasis>Make kernel configuration changes |
460 | if applicable</emphasis>: | 431 | if applicable</emphasis>: |
461 | If your situation calls for changing the kernel's configuration, you can | 432 | If your situation calls for changing the kernel's configuration, you can |
462 | use <filename>menuconfig</filename> | 433 | use the <filename>yocto-kernel</filename> script or <filename>menuconfig</filename> |
463 | to enable and disable kernel configurations. | 434 | to enable and disable kernel configurations. |
435 | Using the script lets you interactively set up kernel configurations. | ||
464 | Using <filename>menuconfig</filename> allows you to interactively develop and test the | 436 | Using <filename>menuconfig</filename> allows you to interactively develop and test the |
465 | configuration changes you are making to the kernel. | 437 | configuration changes you are making to the kernel. |
466 | When saved, changes using <filename>menuconfig</filename> update the kernel's | 438 | When saved, changes using <filename>menuconfig</filename> update the kernel's |
@@ -476,55 +448,8 @@ | |||
476 | <filename>.config</filename> file against a saved original and gather those | 448 | <filename>.config</filename> file against a saved original and gather those |
477 | changes into a config fragment to be referenced from within the kernel's | 449 | changes into a config fragment to be referenced from within the kernel's |
478 | <filename>.bbappend</filename> file.</para></listitem> | 450 | <filename>.bbappend</filename> file.</para></listitem> |
479 | <listitem><para><emphasis>Add or extend kernel recipes if applicable</emphasis>: | 451 | <listitem><para><emphasis>Rebuild the kernel image with your changes</emphasis>: |
480 | The standard | 452 | Rebuilding the kernel image applies your changes.</para></listitem> |
481 | layer structure organizes recipe files inside the | ||
482 | <filename>meta-kernel-dev</filename> layer that is within the local | ||
483 | <filename>poky-extras</filename> Git repository. | ||
484 | If you need to add new kernel recipes, you add them within this layer. | ||
485 | Also within this area, you will find the <filename>.bbappend</filename> | ||
486 | file that appends information to the kernel's recipe file used during the | ||
487 | build. | ||
488 | </para></listitem> | ||
489 | <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the | ||
490 | changes to your kernel (configurations, source code changes, recipe additions, | ||
491 | or recipe changes), there remains a few things | ||
492 | you need to do in order for the build system to create your image. | ||
493 | If you have not done so, you need to get the build environment ready by sourcing | ||
494 | the environment setup script described earlier. | ||
495 | You also need to be sure two key configuration files | ||
496 | (<filename>local.conf</filename> and <filename>bblayers.conf</filename>) | ||
497 | are configured appropriately.</para> | ||
498 | <para>The entire process for building an image is overviewed in the | ||
499 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" | ||
500 | section of the Yocto Project Quick Start. | ||
501 | You might want to reference this information. | ||
502 | Also, you should look at the detailed examples found in the appendices at | ||
503 | at the end of this manual.</para></listitem> | ||
504 | <listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded | ||
505 | build system uses the BitBake | ||
506 | tool to build images based on the type of image you want to create. | ||
507 | You can find more information on BitBake in the user manual, which is found in the | ||
508 | <filename>bitbake/doc/manual</filename> directory of the | ||
509 | <link linkend='source-directory'>Source Directory</link>.</para> | ||
510 | <para>The build process supports several types of images to satisfy different needs. | ||
511 | See the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in | ||
512 | the Yocto Project Reference Manual for information on supported images.</para></listitem> | ||
513 | <listitem><para><emphasis>Make your configuration changes available | ||
514 | in the kernel layer</emphasis>: Up to this point, all the configuration changes to the | ||
515 | kernel have been done and tested iteratively. | ||
516 | Once they are tested and ready to go, you can move them into the kernel layer, | ||
517 | which allows you to distribute the layer.</para></listitem> | ||
518 | <listitem><para><emphasis>If applicable, share your in-tree changes</emphasis>: | ||
519 | If the changes you made | ||
520 | are suited for all Yocto Project kernel users, you might want to send them on | ||
521 | for inclusion into the upstream kernel's Git repository. | ||
522 | If the changes are accepted, the Yocto Project Maintainer pulls them into | ||
523 | the master branch of the kernel tree. | ||
524 | Doing so makes them available to everyone using the kernel.</para> | ||
525 | <para>For information on how to submit a change to the Yocto Project, see the | ||
526 | "<link linkend='how-to-submit-a-change'>How to Submit a Change</link>" section | ||
527 | earlier in this manual.</para></listitem> | ||
528 | </orderedlist> | 453 | </orderedlist> |
529 | </para> | 454 | </para> |
530 | </section> | 455 | </section> |
diff --git a/documentation/dev-manual/figures/kernel-dev-flow.png b/documentation/dev-manual/figures/kernel-dev-flow.png index 3244d3eb90..edd9e82af7 100644 --- a/documentation/dev-manual/figures/kernel-dev-flow.png +++ b/documentation/dev-manual/figures/kernel-dev-flow.png | |||
Binary files differ | |||