diff options
Diffstat (limited to 'documentation/kernel-dev/kernel-dev-concepts-appx.rst')
| -rw-r--r-- | documentation/kernel-dev/kernel-dev-concepts-appx.rst | 113 |
1 files changed, 61 insertions, 52 deletions
diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.rst b/documentation/kernel-dev/kernel-dev-concepts-appx.rst index a4611d1ae4..4ddb7ddb60 100644 --- a/documentation/kernel-dev/kernel-dev-concepts-appx.rst +++ b/documentation/kernel-dev/kernel-dev-concepts-appx.rst | |||
| @@ -36,47 +36,46 @@ and custom features. These additions result in a commercially released | |||
| 36 | Yocto Project Linux kernel that caters to specific embedded designer | 36 | Yocto Project Linux kernel that caters to specific embedded designer |
| 37 | needs for targeted hardware. | 37 | needs for targeted hardware. |
| 38 | 38 | ||
| 39 | You can find a web interface to the Yocto Linux kernels in the `Source | 39 | You can find a web interface to the Yocto Linux kernels in the |
| 40 | Repositories <&YOCTO_DOCS_OM_URL;#source-repositories>`__ at | 40 | :ref:`overview-manual/overview-manual-development-environment:yocto project source repositories` |
| 41 | :yocto_git:`/`. If you look at the interface, you will see to | 41 | at :yocto_git:`/`. If you look at the interface, you will see to |
| 42 | the left a grouping of Git repositories titled "Yocto Linux Kernel". | 42 | the left a grouping of Git repositories titled "Yocto Linux Kernel". |
| 43 | Within this group, you will find several Linux Yocto kernels developed | 43 | Within this group, you will find several Linux Yocto kernels developed |
| 44 | and included with Yocto Project releases: | 44 | and included with Yocto Project releases: |
| 45 | 45 | ||
| 46 | - *``linux-yocto-4.1``:* The stable Yocto Project kernel to use with | 46 | - *linux-yocto-4.1:* The stable Yocto Project kernel to use with |
| 47 | the Yocto Project Release 2.0. This kernel is based on the Linux 4.1 | 47 | the Yocto Project Release 2.0. This kernel is based on the Linux 4.1 |
| 48 | released kernel. | 48 | released kernel. |
| 49 | 49 | ||
| 50 | - *``linux-yocto-4.4``:* The stable Yocto Project kernel to use with | 50 | - *linux-yocto-4.4:* The stable Yocto Project kernel to use with |
| 51 | the Yocto Project Release 2.1. This kernel is based on the Linux 4.4 | 51 | the Yocto Project Release 2.1. This kernel is based on the Linux 4.4 |
| 52 | released kernel. | 52 | released kernel. |
| 53 | 53 | ||
| 54 | - *``linux-yocto-4.6``:* A temporary kernel that is not tied to any | 54 | - *linux-yocto-4.6:* A temporary kernel that is not tied to any |
| 55 | Yocto Project release. | 55 | Yocto Project release. |
| 56 | 56 | ||
| 57 | - *``linux-yocto-4.8``:* The stable yocto Project kernel to use with | 57 | - *linux-yocto-4.8:* The stable yocto Project kernel to use with |
| 58 | the Yocto Project Release 2.2. | 58 | the Yocto Project Release 2.2. |
| 59 | 59 | ||
| 60 | - *``linux-yocto-4.9``:* The stable Yocto Project kernel to use with | 60 | - *linux-yocto-4.9:* The stable Yocto Project kernel to use with |
| 61 | the Yocto Project Release 2.3. This kernel is based on the Linux 4.9 | 61 | the Yocto Project Release 2.3. This kernel is based on the Linux 4.9 |
| 62 | released kernel. | 62 | released kernel. |
| 63 | 63 | ||
| 64 | - *``linux-yocto-4.10``:* The default stable Yocto Project kernel to | 64 | - *linux-yocto-4.10:* The default stable Yocto Project kernel to |
| 65 | use with the Yocto Project Release 2.3. This kernel is based on the | 65 | use with the Yocto Project Release 2.3. This kernel is based on the |
| 66 | Linux 4.10 released kernel. | 66 | Linux 4.10 released kernel. |
| 67 | 67 | ||
| 68 | - *``linux-yocto-4.12``:* The default stable Yocto Project kernel to | 68 | - *linux-yocto-4.12:* The default stable Yocto Project kernel to |
| 69 | use with the Yocto Project Release 2.4. This kernel is based on the | 69 | use with the Yocto Project Release 2.4. This kernel is based on the |
| 70 | Linux 4.12 released kernel. | 70 | Linux 4.12 released kernel. |
| 71 | 71 | ||
| 72 | - *``yocto-kernel-cache``:* The ``linux-yocto-cache`` contains patches | 72 | - *yocto-kernel-cache:* The ``linux-yocto-cache`` contains patches |
| 73 | and configurations for the linux-yocto kernel tree. This repository | 73 | and configurations for the linux-yocto kernel tree. This repository |
| 74 | is useful when working on the linux-yocto kernel. For more | 74 | is useful when working on the linux-yocto kernel. For more |
| 75 | information on this "Advanced Kernel Metadata", see the "`Working | 75 | information on this "Advanced Kernel Metadata", see the |
| 76 | With Advanced Metadata | 76 | ":doc:`kernel-dev-advanced`" Chapter. |
| 77 | (``yocto-kernel-cache``) <#kernel-dev-advanced>`__" Chapter. | ||
| 78 | 77 | ||
| 79 | - *``linux-yocto-dev``:* A development kernel based on the latest | 78 | - *linux-yocto-dev:* A development kernel based on the latest |
| 80 | upstream release candidate available. | 79 | upstream release candidate available. |
| 81 | 80 | ||
| 82 | .. note:: | 81 | .. note:: |
| @@ -164,7 +163,7 @@ implemented by the Yocto Project team using the Source Code Manager | |||
| 164 | - You can find documentation on Git at | 163 | - You can find documentation on Git at |
| 165 | http://git-scm.com/documentation. You can also get an | 164 | http://git-scm.com/documentation. You can also get an |
| 166 | introduction to Git as it applies to the Yocto Project in the | 165 | introduction to Git as it applies to the Yocto Project in the |
| 167 | "`Git <&YOCTO_DOCS_OM_URL;#git>`__" section in the Yocto Project | 166 | ":ref:`overview-manual/overview-manual-development-environment:git`" section in the Yocto Project |
| 168 | Overview and Concepts Manual. The latter reference provides an | 167 | Overview and Concepts Manual. The latter reference provides an |
| 169 | overview of Git and presents a minimal set of Git commands that | 168 | overview of Git and presents a minimal set of Git commands that |
| 170 | allows you to be functional using Git. You can use as much, or as | 169 | allows you to be functional using Git. You can use as much, or as |
| @@ -295,17 +294,16 @@ available on your host system. | |||
| 295 | Kernel source code is available on your host system several different | 294 | Kernel source code is available on your host system several different |
| 296 | ways: | 295 | ways: |
| 297 | 296 | ||
| 298 | - *Files Accessed While using ``devtool``:* ``devtool``, which is | 297 | - *Files Accessed While using devtool:* ``devtool``, which is |
| 299 | available with the Yocto Project, is the preferred method by which to | 298 | available with the Yocto Project, is the preferred method by which to |
| 300 | modify the kernel. See the "`Kernel Modification | 299 | modify the kernel. See the ":ref:`kernel-dev/kernel-dev-intro:kernel modification workflow`" section. |
| 301 | Workflow <#kernel-modification-workflow>`__" section. | ||
| 302 | 300 | ||
| 303 | - *Cloned Repository:* If you are working in the kernel all the time, | 301 | - *Cloned Repository:* If you are working in the kernel all the time, |
| 304 | you probably would want to set up your own local Git repository of | 302 | you probably would want to set up your own local Git repository of |
| 305 | the Yocto Linux kernel tree. For information on how to clone a Yocto | 303 | the Yocto Linux kernel tree. For information on how to clone a Yocto |
| 306 | Linux kernel Git repository, see the "`Preparing the Build Host to | 304 | Linux kernel Git repository, see the |
| 307 | Work on the | 305 | ":ref:`kernel-dev/kernel-dev-common:preparing the build host to work on the kernel`" |
| 308 | Kernel <#preparing-the-build-host-to-work-on-the-kernel>`__" section. | 306 | section. |
| 309 | 307 | ||
| 310 | - *Temporary Source Files from a Build:* If you just need to make some | 308 | - *Temporary Source Files from a Build:* If you just need to make some |
| 311 | patches to the kernel using a traditional BitBake workflow (i.e. not | 309 | patches to the kernel using a traditional BitBake workflow (i.e. not |
| @@ -331,13 +329,12 @@ source files used during the build. | |||
| 331 | :align: center | 329 | :align: center |
| 332 | 330 | ||
| 333 | Again, for additional information on the Yocto Project kernel's | 331 | Again, for additional information on the Yocto Project kernel's |
| 334 | architecture and its branching strategy, see the "`Yocto Linux Kernel | 332 | architecture and its branching strategy, see the |
| 335 | Architecture and Branching | 333 | ":ref:`kernel-dev/kernel-dev-concepts-appx:yocto linux kernel architecture and branching strategies`" |
| 336 | Strategies <#yocto-linux-kernel-architecture-and-branching-strategies>`__" | 334 | section. You can also reference the |
| 337 | section. You can also reference the "`Using ``devtool`` to Patch the | 335 | ":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`" |
| 338 | Kernel <#using-devtool-to-patch-the-kernel>`__" and "`Using Traditional | 336 | and |
| 339 | Kernel Development to Patch the | 337 | ":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`" |
| 340 | Kernel <#using-traditional-kernel-development-to-patch-the-kernel>`__" | ||
| 341 | sections for detailed example that modifies the kernel. | 338 | sections for detailed example that modifies the kernel. |
| 342 | 339 | ||
| 343 | Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase | 340 | Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase |
| @@ -346,8 +343,8 @@ Determining Hardware and Non-Hardware Features for the Kernel Configuration Audi | |||
| 346 | This section describes part of the kernel configuration audit phase that | 343 | This section describes part of the kernel configuration audit phase that |
| 347 | most developers can ignore. For general information on kernel | 344 | most developers can ignore. For general information on kernel |
| 348 | configuration including ``menuconfig``, ``defconfig`` files, and | 345 | configuration including ``menuconfig``, ``defconfig`` files, and |
| 349 | configuration fragments, see the "`Configuring the | 346 | configuration fragments, see the |
| 350 | Kernel <#configuring-the-kernel>`__" section. | 347 | ":ref:`kernel-dev/kernel-dev-common:configuring the kernel`" section. |
| 351 | 348 | ||
| 352 | During this part of the audit phase, the contents of the final | 349 | During this part of the audit phase, the contents of the final |
| 353 | ``.config`` file are compared against the fragments specified by the | 350 | ``.config`` file are compared against the fragments specified by the |
| @@ -366,23 +363,27 @@ To determine whether or not a given option is "hardware" or | |||
| 366 | files that classify individual or groups of options as either hardware | 363 | files that classify individual or groups of options as either hardware |
| 367 | or non-hardware. To better show this, consider a situation where the | 364 | or non-hardware. To better show this, consider a situation where the |
| 368 | ``yocto-kernel-cache`` contains the following files: | 365 | ``yocto-kernel-cache`` contains the following files: |
| 369 | yocto-kernel-cache/features/drm-psb/hardware.cfg | 366 | :: |
| 370 | yocto-kernel-cache/features/kgdb/hardware.cfg | 367 | |
| 371 | yocto-kernel-cache/ktypes/base/hardware.cfg | 368 | yocto-kernel-cache/features/drm-psb/hardware.cfg |
| 372 | yocto-kernel-cache/bsp/mti-malta32/hardware.cfg | 369 | yocto-kernel-cache/features/kgdb/hardware.cfg |
| 373 | yocto-kernel-cache/bsp/qemu-ppc32/hardware.cfg | 370 | yocto-kernel-cache/ktypes/base/hardware.cfg |
| 374 | yocto-kernel-cache/bsp/qemuarma9/hardware.cfg | 371 | yocto-kernel-cache/bsp/mti-malta32/hardware.cfg |
| 375 | yocto-kernel-cache/bsp/mti-malta64/hardware.cfg | 372 | yocto-kernel-cache/bsp/qemu-ppc32/hardware.cfg |
| 376 | yocto-kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg | 373 | yocto-kernel-cache/bsp/qemuarma9/hardware.cfg |
| 377 | yocto-kernel-cache/bsp/common-pc/hardware.cfg | 374 | yocto-kernel-cache/bsp/mti-malta64/hardware.cfg |
| 378 | yocto-kernel-cache/bsp/common-pc-64/hardware.cfg | 375 | yocto-kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg |
| 379 | yocto-kernel-cache/features/rfkill/non-hardware.cfg | 376 | yocto-kernel-cache/bsp/common-pc/hardware.cfg |
| 380 | yocto-kernel-cache/ktypes/base/non-hardware.cfg | 377 | yocto-kernel-cache/bsp/common-pc-64/hardware.cfg |
| 381 | yocto-kernel-cache/features/aufs/non-hardware.kcf | 378 | yocto-kernel-cache/features/rfkill/non-hardware.cfg |
| 382 | yocto-kernel-cache/features/ocf/non-hardware.kcf | 379 | yocto-kernel-cache/ktypes/base/non-hardware.cfg |
| 383 | yocto-kernel-cache/ktypes/base/non-hardware.kcf | 380 | yocto-kernel-cache/features/aufs/non-hardware.kcf |
| 384 | yocto-kernel-cache/ktypes/base/hardware.kcf | 381 | yocto-kernel-cache/features/ocf/non-hardware.kcf |
| 385 | yocto-kernel-cache/bsp/qemu-ppc32/hardware.kcf The following list | 382 | yocto-kernel-cache/ktypes/base/non-hardware.kcf |
| 383 | yocto-kernel-cache/ktypes/base/hardware.kcf | ||
| 384 | yocto-kernel-cache/bsp/qemu-ppc32/hardware.kcf | ||
| 385 | |||
| 386 | The following list | ||
| 386 | provides explanations for the various files: | 387 | provides explanations for the various files: |
| 387 | 388 | ||
| 388 | - ``hardware.kcf``: Specifies a list of kernel Kconfig files that | 389 | - ``hardware.kcf``: Specifies a list of kernel Kconfig files that |
| @@ -402,10 +403,18 @@ provides explanations for the various files: | |||
| 402 | (i.e. ``hardware.kcf`` or ``non-hardware.kcf``). | 403 | (i.e. ``hardware.kcf`` or ``non-hardware.kcf``). |
| 403 | 404 | ||
| 404 | Here is a specific example using the | 405 | Here is a specific example using the |
| 405 | ``kernel-cache/bsp/mti-malta32/hardware.cfg``: CONFIG_SERIAL_8250 | 406 | ``kernel-cache/bsp/mti-malta32/hardware.cfg``: |
| 406 | CONFIG_SERIAL_8250_CONSOLE CONFIG_SERIAL_8250_NR_UARTS | 407 | :: |
| 407 | CONFIG_SERIAL_8250_PCI CONFIG_SERIAL_CORE CONFIG_SERIAL_CORE_CONSOLE | 408 | |
| 408 | CONFIG_VGA_ARB The kernel configuration audit automatically detects | 409 | CONFIG_SERIAL_8250 |
| 410 | CONFIG_SERIAL_8250_CONSOLE | ||
| 411 | CONFIG_SERIAL_8250_NR_UARTS | ||
| 412 | CONFIG_SERIAL_8250_PCI | ||
| 413 | CONFIG_SERIAL_CORE | ||
| 414 | CONFIG_SERIAL_CORE_CONSOLE | ||
| 415 | CONFIG_VGA_ARB | ||
| 416 | |||
| 417 | The kernel configuration audit automatically detects | ||
| 409 | these files (hence the names must be exactly the ones discussed here), | 418 | these files (hence the names must be exactly the ones discussed here), |
| 410 | and uses them as inputs when generating warnings about the final | 419 | and uses them as inputs when generating warnings about the final |
| 411 | ``.config`` file. | 420 | ``.config`` file. |
