From 214c6928897ce191360f13929990932aa22fcb34 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Mon, 2 Oct 2017 18:28:26 -0700 Subject: kernel-dev: Minor edits to the "Advanced Kernel Concepts" appendix (From yocto-docs rev: 645b642965ffcbb12f171e11a53b4efe5d0fd756) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../kernel-dev/kernel-dev-concepts-appx.xml | 107 ++++++++++++--------- 1 file changed, 62 insertions(+), 45 deletions(-) (limited to 'documentation') diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml index 6d236855dd..a7ce72b8ef 100644 --- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml +++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml @@ -9,7 +9,7 @@ Yocto Project Kernel Development and Maintenance - Kernels available through the Yocto Project (Linux Yocto kernels), + Kernels available through the Yocto Project (Yocto Linux kernels), like other kernels, are based off the Linux kernel releases from . At the beginning of a major Linux kernel development cycle, the @@ -29,18 +29,18 @@ This balance allows the Yocto Project team to deliver the most - up-to-date Linux Yocto kernel possible, while still ensuring that + up-to-date Yocto Linux kernel possible, while still ensuring that the team has a stable official release for the baseline Linux kernel version. - As implied earlier, the ultimate source for Linux Yocto kernels + As implied earlier, the ultimate source for Yocto Linux kernels are released kernels from kernel.org. In addition to a foundational kernel from kernel.org, the available Yocto Linux kernels contain a mix of important new mainline developments, non-mainline - developments (when there is no alternative), Board Support Package + developments (when no alternative exists), Board Support Package (BSP) developments, and custom features. These additions result in a commercially released Yocto Project Linux kernel that caters to specific embedded designer @@ -69,6 +69,16 @@ Project Release 2.1. This kernel is based on the Linux 4.4 released kernel. + + linux-yocto-4.6: + A temporary kernel that is not tied to any Yocto Project + release. + + + linux-yocto-4.8: + The stable yocto Project kernel to use with the Yocto + Project Release 2.2. + linux-yocto-4.9: The stable Yocto Project kernel to use with the Yocto @@ -94,6 +104,10 @@ tree. This repository is useful when working on the linux-yocto kernel. + For more information on this "Advanced Kernel Metadata", + see the + "Working With Advanced Metadata (yocto-kernel-cache)" + Chapter. linux-yocto-dev: @@ -157,9 +171,9 @@ introduces new bugs. These consequences are the basic properties of upstream Linux kernel development and are managed by the Yocto Project - team's Linux Yocto kernel development strategy. + team's Yocto Linux kernel development strategy. It is the Yocto Project team's policy to not back-port minor - features to the released Linux Yocto kernel. + features to the released Yocto Linux kernel. They only consider back-porting significant technological jumps ‐ and, that is done after a complete gap analysis. The reason for this policy is that back-porting any small to @@ -169,19 +183,19 @@ The policies described in this section result in both a stable - and a cutting edge Linux Yocto kernel that mixes forward ports of + and a cutting edge Yocto Linux kernel that mixes forward ports of existing Linux kernel features and significant and critical new functionality. - Forward porting Linux kernel functionality into the Linux Yocto + Forward porting Linux kernel functionality into the Yocto Linux kernels available through the Yocto Project can be thought of as a "micro uprev." - The many “micro uprevs” produce a Linux Yocto kernel version with + The many “micro uprevs” produce a Yocto Linux kernel version with a mix of important new mainline, non-mainline, BSP developments and feature integrations. This Yocto Linux kernel gives insight into new features and allows focused amounts of testing to be done on the kernel, which prevents surprises when selecting the next major uprev. - The quality of these cutting edge Linux Yocto kernels is evolving + The quality of these cutting edge Yocto Linux kernels is evolving and the kernels are used in leading edge feature and BSP development. @@ -211,13 +225,12 @@ Git is the obvious SCM for meeting the Yocto Linux - kernel organizational and structural goals - described in this section. - Not only is Git the SCM for Linux kernel - development in kernel.org but, - Git continues to grow in popularity and supports - many different work flows, front-ends and - management techniques. + kernel organizational and structural goals described + in this section. + Not only is Git the SCM for Linux kernel development in + kernel.org but, Git continues to + grow in popularity and supports many different work + flows, front-ends and management techniques. You can find documentation on Git at @@ -251,12 +264,11 @@ - This "tree-like" architecture results in a tree that has - features organized to be specific for particular - functionality, single kernel types, or a subset of kernel - types. - Thus, the user has the ability to see the added - features and the commits that make up those features. + This "tree-like" architecture results in a structure that has + features organized to be specific for particular functionality, + single kernel types, or a subset of kernel types. + Thus, the user has the ability to see the added features and the + commits that make up those features. In addition to being able to see added features, the user can also view the history of what made up the baseline Linux kernel. @@ -388,7 +400,8 @@ Because commits only change at significant release points in the product life cycle, developers can work on a branch created - from the last relevant commit in the shipped Yocto Project kernel. + from the last relevant commit in the shipped Yocto Project Linux + kernel. As mentioned previously, the structure is transparent to the developer because the kernel tree is left in this state after cloning and building the kernel. @@ -476,7 +489,9 @@ section. You can also reference the "Using devtool to Patch the Kernel" - section for a detailed example that modifies the kernel. + and + "Using Traditional Kernel Development to Patch the Kernel" + sections for detailed example that modifies the kernel. @@ -513,30 +528,32 @@ To determine whether or not a given option is "hardware" or - "non-hardware", the kernel Metadata contains files that + "non-hardware", the kernel Metadata in + yocto-kernel-cache contains files that classify individual or groups of options as either hardware or non-hardware. To better show this, consider a situation where the - Yocto Project kernel cache contains the following files: + yocto-kernel-cache contains the following + files: - kernel-cache/features/drm-psb/hardware.cfg - kernel-cache/features/kgdb/hardware.cfg - kernel-cache/ktypes/base/hardware.cfg - kernel-cache/bsp/mti-malta32/hardware.cfg - kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg - kernel-cache/bsp/qemu-ppc32/hardware.cfg - kernel-cache/bsp/qemuarma9/hardware.cfg - kernel-cache/bsp/mti-malta64/hardware.cfg - kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg - kernel-cache/bsp/common-pc/hardware.cfg - kernel-cache/bsp/common-pc-64/hardware.cfg - kernel-cache/features/rfkill/non-hardware.cfg - kernel-cache/ktypes/base/non-hardware.cfg - kernel-cache/features/aufs/non-hardware.kcf - kernel-cache/features/ocf/non-hardware.kcf - kernel-cache/ktypes/base/non-hardware.kcf - kernel-cache/ktypes/base/hardware.kcf - kernel-cache/bsp/qemu-ppc32/hardware.kcf + yocto-kernel-cache/features/drm-psb/hardware.cfg + yocto-kernel-cache/features/kgdb/hardware.cfg + yocto-kernel-cache/ktypes/base/hardware.cfg + yocto-kernel-cache/bsp/mti-malta32/hardware.cfg + yocto-kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg + yocto-kernel-cache/bsp/qemu-ppc32/hardware.cfg + yocto-kernel-cache/bsp/qemuarma9/hardware.cfg + yocto-kernel-cache/bsp/mti-malta64/hardware.cfg + yocto-kernel-cache/bsp/arm-versatile-926ejs/hardware.cfg + yocto-kernel-cache/bsp/common-pc/hardware.cfg + yocto-kernel-cache/bsp/common-pc-64/hardware.cfg + yocto-kernel-cache/features/rfkill/non-hardware.cfg + yocto-kernel-cache/ktypes/base/non-hardware.cfg + yocto-kernel-cache/features/aufs/non-hardware.kcf + yocto-kernel-cache/features/ocf/non-hardware.kcf + yocto-kernel-cache/ktypes/base/non-hardware.kcf + yocto-kernel-cache/ktypes/base/hardware.kcf + yocto-kernel-cache/bsp/qemu-ppc32/hardware.kcf The following list provides explanations for the various files: -- cgit v1.2.3-54-g00ecf