From 398a00a74c3dda82b7cb9fdf95718df0bf2dd0b9 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Tue, 3 Oct 2017 08:50:52 -0700 Subject: kernel-dev: Minor updates to the "Kernel Maintenance" appendix. (From yocto-docs rev: eabeff4611d447be12af64f0f44c218c69da3409) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/kernel-dev/kernel-dev-maint-appx.xml | 147 ++++++++++++++------- 1 file changed, 99 insertions(+), 48 deletions(-) (limited to 'documentation/kernel-dev') diff --git a/documentation/kernel-dev/kernel-dev-maint-appx.xml b/documentation/kernel-dev/kernel-dev-maint-appx.xml index 49ac9179b2..9e6fa99998 100644 --- a/documentation/kernel-dev/kernel-dev-maint-appx.xml +++ b/documentation/kernel-dev/kernel-dev-maint-appx.xml @@ -7,86 +7,137 @@
Tree Construction + - This section describes construction of the Yocto Project kernel source repositories - as accomplished by the Yocto Project team to create kernel repositories. - These kernel repositories are found under the heading "Yocto Linux Kernel" at + This section describes construction of the Yocto Project kernel + source repositories as accomplished by the Yocto Project team to + create Yocto Linux kernel repositories. + These kernel repositories are found under the heading "Yocto Linux + Kernel" at &YOCTO_GIT_URL;/cgit.cgi - and can be shipped as part of a Yocto Project release. - The team creates these repositories by - compiling and executing the set of feature descriptions for every BSP - and feature in the product. + and are shipped as part of a Yocto Project release. + The team creates these repositories by compiling and executing the + set of feature descriptions for every BSP and feature in the + product. Those feature descriptions list all necessary patches, - configuration, branching, tagging and feature divisions found in a kernel. - Thus, the Yocto Project kernel repository (or tree) is built. + configurations, branches, tags, and feature divisions found in a + Yocto Linux kernel. + Thus, the Yocto Project Linux kernel repository (or tree) is built. + - The existence of this tree allows you to access and clone a particular - Yocto Project kernel repository and use it to build images based on their configurations - and features. + The existence of this tree allows you to access and clone a + particular Yocto Project Linux kernel repository and use it to + build images based on their configurations and features. + - You can find the files used to describe all the valid features and BSPs - in the Yocto Project kernel in any clone of the Yocto Project kernel source repository - Git tree. - For example, the following command clones the Yocto Project baseline kernel that - branched off of linux.org version 3.19: + You can find the files used to describe all the valid features and + BSPs in the Yocto Project Linux kernel in any clone of the Yocto + Project Linux kernel source repository Git tree. + For example, the following command clones the Yocto Project + baseline Linux kernel that branches off + linux.org version 4.12: - $ git clone git://git.yoctoproject.org/linux-yocto-3.19 + $ git clone git://git.yoctoproject.org/linux-yocto-4.12 For more information on how to set up a local Git repository of - the Yocto Project kernel files, see the + the Yocto Project Linux kernel files, see the "Preparing the Build Host to Work on the Kernel" section. + - Once you have cloned the kernel Git repository on your local machine, you can - switch to the meta branch within the repository. - Here is an example that assumes the local Git repository for the kernel is in - a top-level directory named linux-yocto-3.19: + Once you have cloned the kernel Git repository on your local + machine, you can discover the branches that are avilable in the + repository using the following Git command: - $ cd linux-yocto-3.19 - $ git checkout -b meta origin/meta + $ git branch -a - Once you have checked out and switched to the meta branch, - you can see a snapshot of all the kernel configuration and feature descriptions that are - used to build that particular kernel repository. - These descriptions are in the form of .scc files. + Checking out a branch allows you to work with a particular + Yocto Linux kernel. + For example, the following command checks out the + standard/beagleboard branch of the + repository: + + $ cd linux-yocto-4.12 + $ git checkout -b my-kernel-4.12 standard/beagleboard + + Once you have checked out and switched to the + standard/beagleboard branch, + you can see a snapshot of all the kernel source files used to + used to build that particular Yocto Linux kernel for that + particular board. + + + + To see the features and configurations for a particular Yocto + Linux kernel, you need to examine the + yocto-kernel-cache Git repository. + Branches in the yocto-kernel-cache repository + correspond to Yocto Linux kernel versions (e.g. + yocto-4.12). + Branches contain descriptions in the form of + .scc and .cfg files. + - You should realize, however, that browsing your local kernel repository - for feature descriptions and patches is not an effective way to determine what is in a - particular kernel branch. - Instead, you should use Git directly to discover the changes in a branch. - Using Git is an efficient and flexible way to inspect changes to the kernel. + You should realize, however, that browsing your local + yocto-kernel-cache repository for feature + descriptions and patches is not an effective way to determine what + is in a particular kernel branch. + Instead, you should use Git directly to discover the changes in + a branch. + Using Git is an efficient and flexible way to inspect changes to + the kernel. - Ground up reconstruction of the complete kernel tree is an action only taken by the - Yocto Project team during an active development cycle. - When you create a clone of the kernel Git repository, you are simply making it - efficiently available for building and development. + Ground up reconstruction of the complete kernel tree is an + action only taken by the Yocto Project team during an active + development cycle. + When you create a clone of the kernel Git repository, you are + simply making it efficiently available for building and + development. + - The following steps describe what happens when the Yocto Project Team constructs - the Yocto Project kernel source Git repository (or tree) found at + The following steps describe what happens when the Yocto Project + Team constructs the Yocto Project kernel source Git repository + (or tree) found at given the introduction of a new top-level kernel feature or BSP. These are the actions that effectively create the tree that includes the new feature, patch or BSP: - A top-level kernel feature is passed to the kernel build subsystem. - Normally, this feature is a BSP for a particular kernel type. - The file that describes the top-level feature is located by searching - these system directories: + + A top-level kernel feature is passed to the kernel build + subsystem. + Normally, this feature is a BSP for a particular kernel + type. + + + The file that describes the top-level feature is located + by searching these system directories: - The in-tree kernel-cache directories, which are located - in meta/cfg/kernel-cache - Areas pointed to by SRC_URI statements - found in recipes + + The in-tree kernel-cache directories, which are + located in + yocto-kernel-cache/cfg/kernel-cache + + + Areas pointed to by SRC_URI + statements found in recipes + For a typical build, the target of the search is a feature description in an .scc file whose name follows this format: + + +I AM HERE + + + bsp_name-kernel_type.scc -- cgit 1.2.3-korg