diff options
Diffstat (limited to 'documentation/kernel-dev')
-rw-r--r-- | documentation/kernel-dev/advanced.rst | 42 | ||||
-rw-r--r-- | documentation/kernel-dev/common.rst | 44 | ||||
-rw-r--r-- | documentation/kernel-dev/intro.rst | 3 |
3 files changed, 43 insertions, 46 deletions
diff --git a/documentation/kernel-dev/advanced.rst b/documentation/kernel-dev/advanced.rst index dd0b76bc31..fb6dfca85f 100644 --- a/documentation/kernel-dev/advanced.rst +++ b/documentation/kernel-dev/advanced.rst | |||
@@ -56,8 +56,8 @@ using the same BSP description. Multiple Corei7-based BSPs could share | |||
56 | the same "intel-corei7-64" value for ``KMACHINE``. It is important to | 56 | the same "intel-corei7-64" value for ``KMACHINE``. It is important to |
57 | realize that ``KMACHINE`` is just for kernel mapping, while ``MACHINE`` | 57 | realize that ``KMACHINE`` is just for kernel mapping, while ``MACHINE`` |
58 | is the machine type within a BSP Layer. Even with this distinction, | 58 | is the machine type within a BSP Layer. Even with this distinction, |
59 | however, these two variables can hold the same value. See the `BSP | 59 | however, these two variables can hold the same value. See the |
60 | Descriptions <#bsp-descriptions>`__ section for more information. | 60 | ":ref:`kernel-dev/advanced:bsp descriptions`" section for more information. |
61 | 61 | ||
62 | Every linux-yocto style recipe must also indicate the Linux kernel | 62 | Every linux-yocto style recipe must also indicate the Linux kernel |
63 | source repository branch used to build the Linux kernel. The | 63 | source repository branch used to build the Linux kernel. The |
@@ -87,7 +87,7 @@ Together with ``KMACHINE``, ``LINUX_KERNEL_TYPE`` defines the search | |||
87 | arguments used by the kernel tools to find the appropriate description | 87 | arguments used by the kernel tools to find the appropriate description |
88 | within the kernel Metadata with which to build out the sources and | 88 | within the kernel Metadata with which to build out the sources and |
89 | configuration. The linux-yocto recipes define "standard", "tiny", and | 89 | configuration. The linux-yocto recipes define "standard", "tiny", and |
90 | "preempt-rt" kernel types. See the "`Kernel Types <#kernel-types>`__" | 90 | "preempt-rt" kernel types. See the ":ref:`kernel-dev/advanced:kernel types`" |
91 | section for more information on kernel types. | 91 | section for more information on kernel types. |
92 | 92 | ||
93 | During the build, the kern-tools search for the BSP description file | 93 | During the build, the kern-tools search for the BSP description file |
@@ -123,8 +123,8 @@ the entries in ``KERNEL_FEATURES`` are dependent on their location | |||
123 | within the kernel Metadata itself. The examples here are taken from the | 123 | within the kernel Metadata itself. The examples here are taken from the |
124 | ``yocto-kernel-cache`` repository. Each branch of this repository | 124 | ``yocto-kernel-cache`` repository. Each branch of this repository |
125 | contains "features" and "cfg" subdirectories at the top-level. For more | 125 | contains "features" and "cfg" subdirectories at the top-level. For more |
126 | information, see the "`Kernel Metadata | 126 | information, see the ":ref:`kernel-dev/advanced:kernel metadata syntax`" |
127 | Syntax <#kernel-metadata-syntax>`__" section. | 127 | section. |
128 | 128 | ||
129 | Kernel Metadata Syntax | 129 | Kernel Metadata Syntax |
130 | ====================== | 130 | ====================== |
@@ -148,7 +148,7 @@ Features aggregate sources in the form of patches and configuration | |||
148 | fragments into a modular reusable unit. You can use features to | 148 | fragments into a modular reusable unit. You can use features to |
149 | implement conceptually separate kernel Metadata descriptions such as | 149 | implement conceptually separate kernel Metadata descriptions such as |
150 | pure configuration fragments, simple patches, complex features, and | 150 | pure configuration fragments, simple patches, complex features, and |
151 | kernel types. `Kernel types <#kernel-types>`__ define general kernel | 151 | kernel types. :ref:`kernel-dev/advanced:kernel types` define general kernel |
152 | features and policy to be reused in the BSPs. | 152 | features and policy to be reused in the BSPs. |
153 | 153 | ||
154 | BSPs define hardware-specific features and aggregate them with kernel | 154 | BSPs define hardware-specific features and aggregate them with kernel |
@@ -167,10 +167,9 @@ following Metadata file hierarchy is recommended: | |||
167 | ktypes/ | 167 | ktypes/ |
168 | patches/ | 168 | patches/ |
169 | 169 | ||
170 | The ``bsp`` directory contains the `BSP | 170 | The ``bsp`` directory contains the :ref:`kernel-dev/advanced:bsp descriptions`. |
171 | descriptions <#bsp-descriptions>`__. The remaining directories all | 171 | The remaining directories all contain "features". Separating ``bsp`` from the |
172 | contain "features". Separating ``bsp`` from the rest of the structure | 172 | rest of the structure aids conceptualizing intended usage. |
173 | aids conceptualizing intended usage. | ||
174 | 173 | ||
175 | Use these guidelines to help place your ``scc`` description files within | 174 | Use these guidelines to help place your ``scc`` description files within |
176 | the structure: | 175 | the structure: |
@@ -198,11 +197,12 @@ contain "features" as far as the kernel tools are concerned. | |||
198 | Paths used in kernel Metadata files are relative to base, which is | 197 | Paths used in kernel Metadata files are relative to base, which is |
199 | either | 198 | either |
200 | :term:`FILESEXTRAPATHS` if | 199 | :term:`FILESEXTRAPATHS` if |
201 | you are creating Metadata in `recipe-space <#recipe-space-metadata>`__, | 200 | you are creating Metadata in |
201 | :ref:`recipe-space <kernel-dev/advanced:recipe-space metadata>`, | ||
202 | or the top level of | 202 | or the top level of |
203 | :yocto_git:`yocto-kernel-cache </yocto-kernel-cache/tree/>` | 203 | :yocto_git:`yocto-kernel-cache </yocto-kernel-cache/tree/>` |
204 | if you are creating `Metadata outside of the | 204 | if you are creating |
205 | recipe-space <#metadata-outside-the-recipe-space>`__. | 205 | :ref:`kernel-dev/advanced:metadata outside the recipe-space`. |
206 | 206 | ||
207 | .. [1] | 207 | .. [1] |
208 | ``scc`` stands for Series Configuration Control, but the naming has | 208 | ``scc`` stands for Series Configuration Control, but the naming has |
@@ -353,9 +353,9 @@ as how an additional feature description file is included with the | |||
353 | Typically, features are less granular than configuration fragments and | 353 | Typically, features are less granular than configuration fragments and |
354 | are more likely than configuration fragments and patches to be the types | 354 | are more likely than configuration fragments and patches to be the types |
355 | of things you want to specify in the ``KERNEL_FEATURES`` variable of the | 355 | of things you want to specify in the ``KERNEL_FEATURES`` variable of the |
356 | Linux kernel recipe. See the "`Using Kernel Metadata in a | 356 | Linux kernel recipe. See the |
357 | Recipe <#using-kernel-metadata-in-a-recipe>`__" section earlier in the | 357 | ":ref:`kernel-dev/advanced:using kernel metadata in a recipe`" section earlier |
358 | manual. | 358 | in the manual. |
359 | 359 | ||
360 | Kernel Types | 360 | Kernel Types |
361 | ------------ | 361 | ------------ |
@@ -364,7 +364,7 @@ A kernel type defines a high-level kernel policy by aggregating | |||
364 | non-hardware configuration fragments with patches you want to use when | 364 | non-hardware configuration fragments with patches you want to use when |
365 | building a Linux kernel of a specific type (e.g. a real-time kernel). | 365 | building a Linux kernel of a specific type (e.g. a real-time kernel). |
366 | Syntactically, kernel types are no different than features as described | 366 | Syntactically, kernel types are no different than features as described |
367 | in the "`Features <#features>`__" section. The | 367 | in the ":ref:`kernel-dev/advanced:features`" section. The |
368 | :term:`LINUX_KERNEL_TYPE` | 368 | :term:`LINUX_KERNEL_TYPE` |
369 | variable in the kernel recipe selects the kernel type. For example, in | 369 | variable in the kernel recipe selects the kernel type. For example, in |
370 | the ``linux-yocto_4.12.bb`` kernel recipe found in | 370 | the ``linux-yocto_4.12.bb`` kernel recipe found in |
@@ -540,7 +540,7 @@ example, this is done using the following: | |||
540 | 540 | ||
541 | This file aggregates all the configuration | 541 | This file aggregates all the configuration |
542 | fragments, patches, and features that make up your standard kernel | 542 | fragments, patches, and features that make up your standard kernel |
543 | policy. See the "`Kernel Types <#kernel-types>`__" section for more | 543 | policy. See the ":ref:`kernel-dev/advanced:kernel types`" section for more |
544 | information. | 544 | information. |
545 | 545 | ||
546 | To aggregate common configurations and features specific to the kernel | 546 | To aggregate common configurations and features specific to the kernel |
@@ -825,11 +825,11 @@ Given this scenario, you do not need to create any branches in the | |||
825 | source repository. Rather, you just take the static patches you need and | 825 | source repository. Rather, you just take the static patches you need and |
826 | encapsulate them within a feature description. Once you have the feature | 826 | encapsulate them within a feature description. Once you have the feature |
827 | description, you simply include that into the BSP description as | 827 | description, you simply include that into the BSP description as |
828 | described in the "`BSP Descriptions <#bsp-descriptions>`__" section. | 828 | described in the ":ref:`kernel-dev/advanced:bsp descriptions`" section. |
829 | 829 | ||
830 | You can find information on how to create patches and BSP descriptions | 830 | You can find information on how to create patches and BSP descriptions |
831 | in the "`Patches <#patches>`__" and "`BSP | 831 | in the ":ref:`kernel-dev/advanced:patches`" and |
832 | Descriptions <#bsp-descriptions>`__" sections. | 832 | ":ref:`kernel-dev/advanced:bsp descriptions`" sections. |
833 | 833 | ||
834 | Machine Branches | 834 | Machine Branches |
835 | ---------------- | 835 | ---------------- |
diff --git a/documentation/kernel-dev/common.rst b/documentation/kernel-dev/common.rst index 3878f831be..56217b9d38 100644 --- a/documentation/kernel-dev/common.rst +++ b/documentation/kernel-dev/common.rst | |||
@@ -365,8 +365,7 @@ section: | |||
365 | 365 | ||
366 | At this point, you are ready to start making modifications to the kernel | 366 | At this point, you are ready to start making modifications to the kernel |
367 | using traditional kernel development steps. For a continued example, see | 367 | using traditional kernel development steps. For a continued example, see |
368 | the "`Using Traditional Kernel Development to Patch the | 368 | the ":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`" |
369 | Kernel <#using-traditional-kernel-development-to-patch-the-kernel>`__" | ||
370 | section. | 369 | section. |
371 | 370 | ||
372 | Creating and Preparing a Layer | 371 | Creating and Preparing a Layer |
@@ -463,8 +462,8 @@ Modifying an existing recipe can consist of the following: | |||
463 | - :ref:`kernel-dev/common:changing the configuration` | 462 | - :ref:`kernel-dev/common:changing the configuration` |
464 | 463 | ||
465 | Before modifying an existing recipe, be sure that you have created a | 464 | Before modifying an existing recipe, be sure that you have created a |
466 | minimal, custom layer from which you can work. See the "`Creating and | 465 | minimal, custom layer from which you can work. See the |
467 | Preparing a Layer <#creating-and-preparing-a-layer>`__" section for | 466 | ":ref:`kernel-dev/common:creating and preparing a layer`" section for |
468 | information. | 467 | information. |
469 | 468 | ||
470 | Creating the Append File | 469 | Creating the Append File |
@@ -710,7 +709,7 @@ Linux kernel, BitBake detects the change in the recipe and fetches and | |||
710 | applies the new configuration before building the kernel. | 709 | applies the new configuration before building the kernel. |
711 | 710 | ||
712 | For a detailed example showing how to configure the kernel, see the | 711 | For a detailed example showing how to configure the kernel, see the |
713 | "`Configuring the Kernel <#configuring-the-kernel>`__" section. | 712 | ":ref:`kernel-dev/common:configuring the kernel`" section. |
714 | 713 | ||
715 | Using an "In-Tree" ``defconfig`` File | 714 | Using an "In-Tree" ``defconfig`` File |
716 | -------------------------------------- | 715 | -------------------------------------- |
@@ -954,15 +953,14 @@ emulator console output at boot time through ``printk`` statements in | |||
954 | the kernel's ``calibrate.c`` source code file. Applying the patch and | 953 | the kernel's ``calibrate.c`` source code file. Applying the patch and |
955 | booting the modified image causes the added messages to appear on the | 954 | booting the modified image causes the added messages to appear on the |
956 | emulator's console. The example is a continuation of the setup procedure | 955 | emulator's console. The example is a continuation of the setup procedure |
957 | found in the "`Getting Ready for Traditional Kernel | 956 | found in the |
958 | Development <#getting-ready-for-traditional-kernel-development>`__" | 957 | ":ref:`kernel-dev/common:getting ready for traditional kernel development`" |
959 | Section. | 958 | Section. |
960 | 959 | ||
961 | 1. *Edit the Source Files* Prior to this step, you should have used Git | 960 | 1. *Edit the Source Files* Prior to this step, you should have used Git |
962 | to create a local copy of the repository for your kernel. Assuming | 961 | to create a local copy of the repository for your kernel. Assuming |
963 | you created the repository as directed in the "`Getting Ready for | 962 | you created the repository as directed in the |
964 | Traditional Kernel | 963 | ":ref:`kernel-dev/common:getting ready for traditional kernel development`" |
965 | Development <#getting-ready-for-traditional-kernel-development>`__" | ||
966 | section, use the following commands to edit the ``calibrate.c`` file: | 964 | section, use the following commands to edit the ``calibrate.c`` file: |
967 | 965 | ||
968 | 1. *Change the working directory*: You need to locate the source | 966 | 1. *Change the working directory*: You need to locate the source |
@@ -1104,9 +1102,9 @@ Section. | |||
1104 | The :term:`FILESEXTRAPATHS` and :term:`SRC_URI` statements | 1102 | The :term:`FILESEXTRAPATHS` and :term:`SRC_URI` statements |
1105 | enable the OpenEmbedded build system to find the patch file. | 1103 | enable the OpenEmbedded build system to find the patch file. |
1106 | 1104 | ||
1107 | For more information on append files and patches, see the "`Creating | 1105 | For more information on append files and patches, see the |
1108 | the Append File <#creating-the-append-file>`__" and "`Applying | 1106 | ":ref:`kernel-dev/common:creating the append file`" and |
1109 | Patches <#applying-patches>`__" sections. You can also see the | 1107 | ":ref:`kernel-dev/common:applying patches`" sections. You can also see the |
1110 | ":ref:`dev-manual/common-tasks:using .bbappend files in your layer`" | 1108 | ":ref:`dev-manual/common-tasks:using .bbappend files in your layer`" |
1111 | section in the Yocto Project Development Tasks Manual. | 1109 | section in the Yocto Project Development Tasks Manual. |
1112 | 1110 | ||
@@ -1140,8 +1138,8 @@ configuration fragments, and how to interactively modify your | |||
1140 | ``.config`` file to create the leanest kernel configuration file | 1138 | ``.config`` file to create the leanest kernel configuration file |
1141 | possible. | 1139 | possible. |
1142 | 1140 | ||
1143 | For more information on kernel configuration, see the "`Changing the | 1141 | For more information on kernel configuration, see the |
1144 | Configuration <#changing-the-configuration>`__" section. | 1142 | ":ref:`kernel-dev/common:changing the configuration`" section. |
1145 | 1143 | ||
1146 | Using ``menuconfig`` | 1144 | Using ``menuconfig`` |
1147 | --------------------- | 1145 | --------------------- |
@@ -1297,8 +1295,8 @@ created to hold the configuration changes. | |||
1297 | applies these on top of and after applying the existing ``defconfig`` file | 1295 | applies these on top of and after applying the existing ``defconfig`` file |
1298 | configurations. | 1296 | configurations. |
1299 | 1297 | ||
1300 | For more information on configuring the kernel, see the "`Changing the | 1298 | For more information on configuring the kernel, see the |
1301 | Configuration <#changing-the-configuration>`__" section. | 1299 | ":ref:`kernel-dev/common:changing the configuration`" section. |
1302 | 1300 | ||
1303 | Creating Configuration Fragments | 1301 | Creating Configuration Fragments |
1304 | -------------------------------- | 1302 | -------------------------------- |
@@ -1369,8 +1367,8 @@ steps: | |||
1369 | $ bitbake linux-yocto -c diffconfig | 1367 | $ bitbake linux-yocto -c diffconfig |
1370 | 1368 | ||
1371 | The ``diffconfig`` command creates a file that is a list of Linux kernel | 1369 | The ``diffconfig`` command creates a file that is a list of Linux kernel |
1372 | ``CONFIG_`` assignments. See the "`Changing the | 1370 | ``CONFIG_`` assignments. See the |
1373 | Configuration <#changing-the-configuration>`__" section for additional | 1371 | ":ref:`kernel-dev/common:changing the configuration`" section for additional |
1374 | information on how to use the output as a configuration fragment. | 1372 | information on how to use the output as a configuration fragment. |
1375 | 1373 | ||
1376 | .. note:: | 1374 | .. note:: |
@@ -1614,8 +1612,7 @@ source directory. Follow these steps to clean up the version string: | |||
1614 | ":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`" | 1612 | ":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`" |
1615 | section. For | 1613 | section. For |
1616 | information on building the kernel image when using Bitbake, see the | 1614 | information on building the kernel image when using Bitbake, see the |
1617 | "`Using Traditional Kernel Development to Patch the | 1615 | ":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`" |
1618 | Kernel <#using-traditional-kernel-development-to-patch-the-kernel>`__" | ||
1619 | section. | 1616 | section. |
1620 | 1617 | ||
1621 | Working With Your Own Sources | 1618 | Working With Your Own Sources |
@@ -1733,8 +1730,9 @@ Here are some basic steps you can use to work with your own sources: | |||
1733 | 1730 | ||
1734 | 5. *Customize Your Recipe as Needed:* Provide further customizations to | 1731 | 5. *Customize Your Recipe as Needed:* Provide further customizations to |
1735 | your recipe as needed just as you would customize an existing | 1732 | your recipe as needed just as you would customize an existing |
1736 | linux-yocto recipe. See the "`Modifying an Existing | 1733 | linux-yocto recipe. See the |
1737 | Recipe <#modifying-an-existing-recipe>`__" section for information. | 1734 | ":ref:`ref-manual/devtool-reference:modifying an existing recipe`" section |
1735 | for information. | ||
1738 | 1736 | ||
1739 | Working with Out-of-Tree Modules | 1737 | Working with Out-of-Tree Modules |
1740 | ================================ | 1738 | ================================ |
diff --git a/documentation/kernel-dev/intro.rst b/documentation/kernel-dev/intro.rst index f6c9b97137..5592f74c82 100644 --- a/documentation/kernel-dev/intro.rst +++ b/documentation/kernel-dev/intro.rst | |||
@@ -90,8 +90,7 @@ understand the following documentation: | |||
90 | - The ":ref:`dev-manual/common-tasks:understanding and creating layers`" | 90 | - The ":ref:`dev-manual/common-tasks:understanding and creating layers`" |
91 | section in the Yocto Project Development Tasks Manual. | 91 | section in the Yocto Project Development Tasks Manual. |
92 | 92 | ||
93 | - The "`Kernel Modification | 93 | - The ":ref:`kernel-dev/intro:kernel modification workflow`" section. |
94 | Workflow <#kernel-modification-workflow>`__" section. | ||
95 | 94 | ||
96 | Kernel Modification Workflow | 95 | Kernel Modification Workflow |
97 | ============================ | 96 | ============================ |