From a64831cad79e46c50509aad89f6fefad71123b60 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Fri, 18 Aug 2017 15:12:33 -0700 Subject: kernel-dev, dev-manual: Moved Kernel prep steps The dev-manual had a place-holder section for getting the build host ready for using YP and then doing kernel development. This stuff is better suited for the actual kernel development manual. I moved the section. Moving created several broken links in the manual set that had to be fixed. In the dev-manual, I updated the introductory list to include the newly moved kernel stuff. (From yocto-docs rev: 2e21260bb5f84e9e30eb353ec841d5962e8a7642) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/dev-manual/dev-manual-start.xml | 127 +-------------------- documentation/kernel-dev/kernel-dev-common.xml | 76 ++++++++++-- .../kernel-dev/kernel-dev-concepts-appx.xml | 4 +- documentation/kernel-dev/kernel-dev-examples.xml | 8 +- documentation/kernel-dev/kernel-dev-intro.xml | 124 ++++++++++++++++++++ documentation/kernel-dev/kernel-dev-maint-appx.xml | 8 +- 6 files changed, 206 insertions(+), 141 deletions(-) (limited to 'documentation') diff --git a/documentation/dev-manual/dev-manual-start.xml b/documentation/dev-manual/dev-manual-start.xml index 85dff0b673..94595756b8 100644 --- a/documentation/dev-manual/dev-manual-start.xml +++ b/documentation/dev-manual/dev-manual-start.xml @@ -45,7 +45,9 @@ Kernel Development: - Need some kernel links. + See the + "Preparing the Build Host to Work on the Kernel" + section in the Yocto Project Linux Kernel Development Manual. Eclipse Development: @@ -231,129 +233,6 @@ section in the Toaster User Manual. - -
- Setting Up to Work on a Kernel - - - Kernel development is best accomplished using - devtool - and not through traditional kernel workflow methods. - This section provides procedures to set up for both. - - -
- Getting Ready to Develop using <filename>devtool</filename> - - - Need the updated wiki stuff here - -
- -
- Getting Ready for Traditional Kernel Development - - - For traditional kernel development using the Yocto - Project, you need to establish local copies of the - kernel source. - You can find Git repositories of supported Yocto Project - kernels organized under "Yocto Linux Kernel" in the Yocto - Project Source Repositories at - . - - - - This setup can involve creating a bare clone of the - Yocto Project kernel and then copying that cloned - repository. - You can create the bare clone and the copy of the bare - clone anywhere you like. - For simplicity, it is recommended that you create these - structures outside of the - Source Directory, - which is usually named poky. - - - - The following steps show how to create a bare clone of the - linux-yocto-4.4 kernel and then - create a copy of that clone: - - When you have a local Yocto Project kernel Git - repository, you can reference that repository rather than - the upstream Git repository as part of the - clone command. - Doing so can speed up the process. - - - - Create the Bare Clone: - In the following example, the bare clone is named - linux-yocto-4.4.git: - - $ git clone ‐‐bare git://git.yoctoproject.org/linux-yocto-4.4 linux-yocto-4.4.git - Cloning into bare repository 'linux-yocto-4.4.git'... - remote: Counting objects: 4543903, done. - remote: Compressing objects: 100% (695618/695618), done. - remote: Total 4543903 (delta 3818435), reused 4541724 (delta 3816256) - Receiving objects: 100% (4543903/4543903), 801.08 MiB | 6.55 MiB/s, done. - Resolving deltas: 100% (3818435/3818435), done. - Checking connectivity... done. - - - - Create the Copy of the Bare Clone: - In the following command, the copy of the bare clone - is named my-linux-yocto-4.4-work: - - $ git clone linux-yocto-4.4.git my-linux-yocto-4.4-work - Cloning into 'my-linux-yocto-4.4-work'... - done. - Checking out files: 100% (52221/52221), done. - - - - Cloning the meta-yocto-kernel-extras Repository: - The meta-yocto-kernel-extras Git - repository contains Metadata needed only if you are - modifying and building the kernel image. - In particular, it contains the kernel BitBake append - (.bbappend) files that you edit to - point to your locally modified kernel source files and to - build the kernel image. - Pointing to these local files is much more efficient than - requiring a download of the kernel's source files from - upstream each time you make changes to the kernel. - - You can find the - meta-yocto-kernel-extras Git - Repository in the "Yocto Metadata Layers" area of the - Yocto Project Source Repositories at - . - It is good practice to create this Git repository - inside the Source Directory. - - Following is an example that creates the - meta-yocto-kernel-extras Git - repository inside the Source Directory, which is named - poky, in this case: - - $ cd ~/poky - $ git clone git://git.yoctoproject.org/meta-yocto-kernel-extras meta-yocto-kernel-extras - Cloning into 'meta-yocto-kernel-extras'... - remote: Counting objects: 727, done. - remote: Compressing objects: 100% (452/452), done. - remote: Total 727 (delta 260), reused 719 (delta 252) - Receiving objects: 100% (727/727), 536.36 KiB | 0 bytes/s, done. - Resolving deltas: 100% (260/260), done. - Checking connectivity... done. - - - - -
-
diff --git a/documentation/kernel-dev/kernel-dev-common.xml b/documentation/kernel-dev/kernel-dev-common.xml index c55f68bc24..8c8fe05711 100644 --- a/documentation/kernel-dev/kernel-dev-common.xml +++ b/documentation/kernel-dev/kernel-dev-common.xml @@ -474,15 +474,15 @@ - The example assumes a clean build exists for the qemux86 - machine in a + The example builds an extensible SDK, which is then used to + build, using devtool, a clean image for the + default qemux86 machine in a Source Directory named poky. - Furthermore, the + In the example, the Build Directory - is build and is located in - poky and the kernel is based on the - Linux 3.4 kernel. + is build and is located in the default + poky_sdk directory. @@ -491,12 +491,74 @@ section. +
+ Set Up the Build Host + + + Prior to creating any actual patches for your kernel, you + need to prepare the build host. + This example builds an extensible SDK. + Follow these steps: + + + Set Up the Build Environment: + Be sure you are set up to use BitBake in a shell. + See the + "Setting Up the Development Host to Use the Yocto Project" + section in the Yocto Project Development Manual for information + on how to get a build host ready that is either a native + Linux machine or a machine that uses CROPS. + + + Clone the poky Repository: + You need to have a local copy of the Yocto Project + Source Directory + (i.e. a local poky repository). + See the + "Cloning the poky Repository" + and possibly the + "Checking Out by Branch in Poky" + and + "Checking Out by Tag in Poky" + sections all in the Yocto Project Development Manual for + information on how to clone the poky + repository and check out the appropriate branch for your work. + + + Initialize the Build Environment: + While in the root directory of the Source Directory (i.e. + poky), run the + &OE_INIT_FILE; + environment setup script to define the OpenEmbedded + build environment on your build host. + + $ source &OE_INIT_FILE; + + Among other things, the script creates the + Build Directory, + which is build in this case + and is located in the + Source Directory. + After the script runs, your current working directory + is set to the build directory. + + For information on running a memory-resident + BitBake, + see the + oe-init-build-env-memres + setup script. + + + + +
+
Create a Layer for your Changes The first step is to create a layer so you can isolate your - changes. + changes to the kernel. Rather than use the yocto-layer script to create the layer, this example steps through the process by hand. diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml index 60d67d64fe..76f52526a3 100644 --- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml +++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml @@ -416,8 +416,8 @@ Yocto Linux kernel tree. For information on how to clone a Yocto Linux kernel Git repository, see the - "Setting Up to Work On a Kernel" - section in the Yocto Project Development Manual. + "Preparing the Build Host to Work on the Kernel" + section. Temporary Source Files from a Build: diff --git a/documentation/kernel-dev/kernel-dev-examples.xml b/documentation/kernel-dev/kernel-dev-examples.xml index 1d8dae3211..15622003e5 100644 --- a/documentation/kernel-dev/kernel-dev-examples.xml +++ b/documentation/kernel-dev/kernel-dev-examples.xml @@ -51,10 +51,10 @@ $ git clone git://git.yoctoproject.org/linux-yocto-3.4 - For another example of how to set up a local Git repository of the Yocto Project - kernel files, see the - "Yocto Project Kernel" bulleted - item in the Yocto Project Development Manual. + For more information on how to set up a local Git repository of the + Yocto Project 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 diff --git a/documentation/kernel-dev/kernel-dev-intro.xml b/documentation/kernel-dev/kernel-dev-intro.xml index 899ed65db2..9080ddc1b8 100644 --- a/documentation/kernel-dev/kernel-dev-intro.xml +++ b/documentation/kernel-dev/kernel-dev-intro.xml @@ -90,6 +90,130 @@
+
+ Preparing the Build Host to Work on the Kernel + + + Kernel development is best accomplished using + devtool + and not through traditional kernel workflow methods. + This section provides information for both scenarios. + + +
+ Getting Ready to Develop using <filename>devtool</filename> + + + Need the updated wiki stuff here + +
+ +
+ Getting Ready for Traditional Kernel Development + + + For traditional kernel development using the Yocto + Project, you need to establish local copies of the + kernel source. + You can find Git repositories of supported Yocto Project + kernels organized under "Yocto Linux Kernel" in the Yocto + Project Source Repositories at + . + + + + This setup can involve creating a bare clone of the + Yocto Project kernel and then copying that cloned + repository. + You can create the bare clone and the copy of the bare + clone anywhere you like. + For simplicity, it is recommended that you create these + structures outside of the + Source Directory, + which is usually named poky. + + + + The following steps show how to create a bare clone of the + linux-yocto-4.4 kernel and then + create a copy of that clone: + + When you have a local Yocto Project kernel Git + repository, you can reference that repository rather than + the upstream Git repository as part of the + clone command. + Doing so can speed up the process. + + + + Create the Bare Clone: + In the following example, the bare clone is named + linux-yocto-4.4.git: + + $ git clone ‐‐bare git://git.yoctoproject.org/linux-yocto-4.4 linux-yocto-4.4.git + Cloning into bare repository 'linux-yocto-4.4.git'... + remote: Counting objects: 4543903, done. + remote: Compressing objects: 100% (695618/695618), done. + remote: Total 4543903 (delta 3818435), reused 4541724 (delta 3816256) + Receiving objects: 100% (4543903/4543903), 801.08 MiB | 6.55 MiB/s, done. + Resolving deltas: 100% (3818435/3818435), done. + Checking connectivity... done. + + + + Create the Copy of the Bare Clone: + In the following command, the copy of the bare clone + is named my-linux-yocto-4.4-work: + + $ git clone linux-yocto-4.4.git my-linux-yocto-4.4-work + Cloning into 'my-linux-yocto-4.4-work'... + done. + Checking out files: 100% (52221/52221), done. + + + + Cloning the meta-yocto-kernel-extras Repository: + The meta-yocto-kernel-extras Git + repository contains Metadata needed only if you are + modifying and building the kernel image. + In particular, it contains the kernel BitBake append + (.bbappend) files that you edit to + point to your locally modified kernel source files and + to build the kernel image. + Pointing to these local files is much more efficient + than requiring a download of the kernel's source files + from upstream each time you make changes to the kernel. + + + You can find the + meta-yocto-kernel-extras Git + Repository in the "Yocto Metadata Layers" area of the + Yocto Project Source Repositories at + . + It is good practice to create this Git repository + inside the Source Directory. + + Following is an example that creates the + meta-yocto-kernel-extras Git + repository inside the Source Directory, which is named + poky, in this case: + + $ cd ~/poky + $ git clone git://git.yoctoproject.org/meta-yocto-kernel-extras meta-yocto-kernel-extras + Cloning into 'meta-yocto-kernel-extras'... + remote: Counting objects: 727, done. + remote: Compressing objects: 100% (452/452), done. + remote: Total 727 (delta 260), reused 719 (delta 252) + Receiving objects: 100% (727/727), 536.36 KiB | 0 bytes/s, done. + Resolving deltas: 100% (260/260), done. + Checking connectivity... done. + + + + +
+
+
Kernel Modification Workflow diff --git a/documentation/kernel-dev/kernel-dev-maint-appx.xml b/documentation/kernel-dev/kernel-dev-maint-appx.xml index 7cfcb45c94..446bace5ea 100644 --- a/documentation/kernel-dev/kernel-dev-maint-appx.xml +++ b/documentation/kernel-dev/kernel-dev-maint-appx.xml @@ -34,10 +34,10 @@ $ git clone git://git.yoctoproject.org/linux-yocto-3.19 - For another example of how to set up a local Git repository of the Yocto Project - kernel files, see the - "Yocto Project Kernel" bulleted - item in the Yocto Project Development Manual. + For more information on how to set up a local Git repository of + the Yocto Project 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 -- cgit v1.2.3-54-g00ecf