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 devtool
-
-
- 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 devtool
+
+
+ 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