diff --git a/documentation/Makefile b/documentation/Makefile
index 93cf6ca726..770ef93f37 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -130,7 +130,6 @@ TARFILES = dev-style.css dev-manual.html \
else
TARFILES = dev-style.css dev-manual.html \
figures/dev-title.png \
- figures/kernel-dev-flow.png \
figures/recipe-workflow.png \
figures/devtool-add-flow.png figures/devtool-modify-flow.png \
figures/devtool-upgrade-flow.png \
@@ -330,7 +329,7 @@ XSLTOPTS = --xinclude
ALLPREQ = html eclipse tarball
TARFILES = kernel-dev.html kernel-dev-style.css \
figures/kernel-dev-title.png figures/kernel-overview-2-generic \
- figures/kernel-architecture-overview.png \
+ figures/kernel-architecture-overview.png figures/kernel-dev-flow.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml
index 0055bccfed..b1b5efa82c 100644
--- a/documentation/dev-manual/dev-manual-model.xml
+++ b/documentation/dev-manual/dev-manual-model.xml
@@ -41,153 +41,6 @@
-
- System Development Workflow
-
-
- System development involves modification or creation of an image that you want to run on
- a specific hardware target.
- Usually, when you want to create an image that runs on embedded hardware, the image does
- not require the same number of features that a full-fledged Linux distribution provides.
- Thus, you can create a much smaller image that is designed to use only the
- features for your particular hardware.
-
-
-
- To help you understand how system development works in the Yocto Project, this section
- covers two types of image development: BSP creation and kernel modification or
- configuration.
-
-
-
- Modifying the Kernel
-
-
- Kernel modification involves changing the Yocto Project kernel, which could involve changing
- configuration options as well as adding new kernel recipes.
- Configuration changes can be added in the form of configuration fragments, while recipe
- modification comes through the kernel's recipes-kernel area
- in a kernel layer you create.
-
-
-
- The remainder of this section presents a high-level overview of the Yocto Project
- kernel architecture and the steps to modify the kernel.
- You can reference the
- "Patching the Kernel" section
- for an example that changes the source code of the kernel.
- For information on how to configure the kernel, see the
- "Configuring the Kernel" section.
- For more information on the kernel and on modifying the kernel, see the
- Yocto Project Linux Kernel Development Manual.
-
-
-
- Kernel Modification Workflow
-
-
- This illustration and the following list summarizes the kernel modification general workflow.
-
-
-
-
-
-
-
-
- Set up your host development system to support
- development using the Yocto Project: See
- "The Linux Distribution" and
- "The Build Host Packages" sections both
- in the Yocto Project Quick Start for requirements.
- Establish a local copy of project files on your
- system: Having the
- Source Directory
- on your system gives you access to the build process and tools
- you need.
- For information on how to get these files, see the
- "Cloning the poky Repository"
- section.
-
- Establish the temporary kernel source files:
- Temporary kernel source files are kept in the
- Build Directory
- created by the
- OpenEmbedded build system when you run BitBake.
- If you have never built the kernel in which you are
- interested, you need to run an initial build to
- establish local kernel source files.
- If you are building an image for the first time, you need to get the build
- environment ready by sourcing an environment setup script
- (i.e. oe-init-build-env or
- oe-init-build-env-memres).
- You also need to be sure two key configuration files
- (local.conf and bblayers.conf)
- are configured appropriately.
- The entire process for building an image is overviewed in the
- "Building Images"
- section of the Yocto Project Quick Start.
- You might want to reference this information.
- You can find more information on BitBake in the
- BitBake User Manual.
-
- The build process supports several types of images to satisfy different needs.
- See the "Images" chapter in
- the Yocto Project Reference Manual for information on supported images.
-
- Make changes to the kernel source code if
- applicable: Modifying the kernel does not always mean directly
- changing source files.
- However, if you have to do this, you make the changes to the files in the
- Build Directory.
- Make kernel configuration changes if applicable:
- If your situation calls for changing the kernel's
- configuration, you can use
- menuconfig,
- which allows you to interactively develop and test the
- configuration changes you are making to the kernel.
- Saving changes you make with
- menuconfig updates
- the kernel's .config file.
- Warning
- Try to resist the temptation to directly edit an
- existing .config file, which is
- found in the Build Directory among the source code
- used for the build (e.g. see the workflow illustration
- in the
- "Kernel Modification Workflow"
- section).
- Doing so, can produce unexpected results when the
- OpenEmbedded build system regenerates the configuration
- file.
-
- Once you are satisfied with the configuration
- changes made using menuconfig
- and you have saved them, you can directly compare the
- resulting .config file against an
- existing original and gather those changes into a
- configuration fragment file
- to be referenced from within the kernel's
- .bbappend file.
-
- Additionally, if you are working in a BSP layer
- and need to modify the BSP's kernel's configuration,
- you can use the
- yocto-kernel
- script as well as menuconfig.
- The yocto-kernel script lets
- you interactively set up kernel configurations.
-
- Rebuild the kernel image with your changes:
- Rebuilding the kernel image applies your changes.
-
-
-
-
-
-
-
Modifying Source Code
diff --git a/documentation/dev-manual/figures/kernel-dev-flow.png b/documentation/kernel-dev/figures/kernel-dev-flow.png
similarity index 100%
rename from documentation/dev-manual/figures/kernel-dev-flow.png
rename to documentation/kernel-dev/figures/kernel-dev-flow.png
diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml
index 8eb8c30dce..7f6b82fee5 100644
--- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml
+++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml
@@ -406,9 +406,8 @@
Yocto Project, is the preferred method by which to
modify the kernel.
See the
- "Kernel Modification Workflow"
- section in the Yocto Project Development Manual for
- information.
+ "Kernel Modification Workflow"
+ section.
Cloned Repository:
diff --git a/documentation/kernel-dev/kernel-dev-intro.xml b/documentation/kernel-dev/kernel-dev-intro.xml
index 83ca988acf..9f385d9751 100644
--- a/documentation/kernel-dev/kernel-dev-intro.xml
+++ b/documentation/kernel-dev/kernel-dev-intro.xml
@@ -5,105 +5,234 @@
Introduction
-
+
+ Overview
-
- Overview
+
+ Regardless of how you intend to make use of the Yocto Project,
+ chances are you will work with the Linux kernel.
+ This manual introduces the kernel development process and
+ provides background information on the Yocto Linux kernel
+ Metadata,
+ describes common tasks you can perform using the kernel tools,
+ and shows you how to use the kernel Metadata needed to work with
+ the kernel inside the Yocto Project.
+
-
- Regardless of how you intend to make use of the Yocto Project,
- chances are you will work with the Linux kernel.
- This manual provides background information on the Yocto Linux kernel
- Metadata,
- describes common tasks you can perform using the kernel tools,
- and shows you how to use the kernel Metadata needed to work with
- the kernel inside the Yocto Project.
-
+
+ Each Yocto Project release has a set of Yocto Linux kernel recipes,
+ whose Git repositories you can view in the Yocto
+ Source Repositories under
+ the "Yocto Linux Kernel" heading.
+ New recipes for the release track the latest Linux kernel
+ upstream developments from
+ and introduce
+ newly-supported platforms.
+ Previous recipes in the release are refreshed and supported for at
+ least one additional Yocto Project release.
+ As they align, these previous releases are updated to include the
+ latest from the
+ Long Term Support Initiative
+ (LTSI) project.
+ Also included is a Yocto Linux kernel development recipe
+ (linux-yocto-dev.bb) should you want to work
+ with the very latest in upstream Yocto Linux kernel development and
+ kernel Metadata development.
+
+ For more on Yocto Linux kernels, see the
+ "Yocto Project Kernel Development and Maintenance
+ section.
+
+
-
- Each Yocto Project release has a set of linux-yocto recipes, whose
- Git repositories you can view in the Yocto
- Source Repositories under
- the "Yocto Linux Kernel" heading.
- New recipes for the release track the latest upstream developments
- and introduce newly-supported platforms.
- Previous recipes in the release are refreshed and supported for at
- least one additional release.
- As they align, these previous releases are updated to include the
- latest from the
- Long Term Support Initiative
- (LTSI) project.
- Also included is a linux-yocto development recipe
- (linux-yocto-dev.bb) should you want to work
- with the very latest in upstream Linux kernel development and
- kernel Metadata development.
-
+
+ The Yocto Project also provides a powerful set of kernel
+ tools for managing Yocto Linux kernel sources and configuration data.
+ You can use these tools to make a single configuration change,
+ apply multiple patches, or work with your own kernel sources.
+
-
- The Yocto Project also provides a powerful set of kernel
- tools for managing Linux kernel sources and configuration data.
- You can use these tools to make a single configuration change,
- apply multiple patches, or work with your own kernel sources.
-
+
+ In particular, the kernel tools allow you to generate configuration
+ fragments that specify only what you must, and nothing more.
+ Configuration fragments only need to contain the highest level
+ visible CONFIG options as presented by the
+ Yocto Linux kernel menuconfig system.
+ Contrast this against a complete Yocto Linux kernel
+ .config file, which includes all the automatically
+ selected CONFIG options.
+ This efficiency reduces your maintenance effort and allows you
+ to further separate your configuration in ways that make sense for
+ your project.
+ A common split separates policy and hardware.
+ For example, all your kernels might support the
+ proc and sys filesystems,
+ but only specific boards require sound, USB, or specific drivers.
+ Specifying these configurations individually allows you to aggregate
+ them together as needed, but maintains them in only one place.
+ Similar logic applies to separating source changes.
+
-
- In particular, the kernel tools allow you to generate configuration
- fragments that specify only what you must, and nothing more.
- Configuration fragments only need to contain the highest level
- visible CONFIG options as presented by the Linux
- kernel menuconfig system.
- Contrast this against a complete Linux kernel
- .config, which includes all the automatically
- selected CONFIG options.
- This efficiency reduces your maintenance effort and allows you
- to further separate your configuration in ways that make sense for
- your project.
- A common split separates policy and hardware.
- For example, all your kernels might support
- the proc and sys filesystems,
- but only specific boards require sound, USB, or specific drivers.
- Specifying these configurations individually allows you to aggregate
- them together as needed, but maintains them in only one place.
- Similar logic applies to separating source changes.
-
+
+ If you do not maintain your own kernel sources and need to make
+ only minimal changes to the sources, the released recipes provide a
+ vetted base upon which to layer your changes.
+ Doing so allows you to benefit from the continual kernel
+ integration and testing performed during development of the
+ Yocto Project.
+
-
- If you do not maintain your own kernel sources and need to make
- only minimal changes to the sources, the released recipes provide a
- vetted base upon which to layer your changes.
- Doing so allows you to benefit from the continual kernel
- integration and testing performed during development of the
- Yocto Project.
-
+
+ If, instead, you have a very specific Linux kernel source tree
+ and are unable to align with one of the official Yocto Linux kernel
+ recipes, an alternative exists by which you can use the Yocto
+ Project Linux kernel tools with your own kernel sources.
+
+
+
+
+ Kernel Modification Workflow
+
+
+ Kernel modification involves changing the Yocto Project kernel,
+ which could involve changing configuration options as well as adding
+ new kernel recipes.
+ Configuration changes can be added in the form of configuration
+ fragments, while recipe modification comes through the kernel's
+ recipes-kernel area in a kernel layer you create.
+
+
+
+ This section presents a high-level overview of the Yocto Project
+ kernel modification workflow.
+ You can find additional information here:
+
+
+ "Patching the Kernel"
+ in the Yocto Project Development Manual.
+
+
+ "Configuring the Kernel"
+ in the Yocto Project Development Manual.
+
+
+ This illustration and the following list summarizes the kernel
+ modification general workflow.
+
+
+
+
+
+
+ Set up Your Host Development System to Support
+ Development Using the Yocto Project:
+ See
+ "The Linux Distribution"
+ and
+ "The Build Host Packages"
+ sections both in the Yocto Project Quick Start for
+ requirements.
+
+
+ Clone the poky Repository:
+ Having the
+ Source Directory
+ on your system gives you access to the build process and tools
+ you need.
+ For information on how to get these files, see the
+ "Cloning the poky Repository"
+ section in the Yocto Project Development Manual.
+
+
+ Establish the Temporary Kernel Source Files:
+ Temporary kernel source files are kept in the
+ Build Directory
+ created by the OpenEmbedded build system when you run BitBake.
+ If you have never built the kernel in which you are
+ interested, you need to run an initial build to
+ establish local kernel source files.
+
+ If you are building an image for the first time, you
+ need to get the build environment ready by sourcing an
+ environment setup script
+ (i.e. oe-init-build-env or
+ oe-init-build-env-memres).
+ You also need to be sure two key configuration files
+ (local.conf and
+ bblayers.conf) are configured
+ appropriately.
+
+ The entire process for building an image is overviewed
+ in the
+ "Building Images"
+ section of the Yocto Project Quick Start.
+ You might want to reference this information.
+ You can find more information on BitBake in the
+ BitBake User Manual.
+
+
+ The build process supports several types of images to
+ satisfy different needs.
+ See the "Images"
+ chapter in the Yocto Project Reference Manual for information
+ on supported images.
+
+
+ Make Changes to the Kernel Source Code if
+ applicable:
+ Modifying the kernel does not always mean directly
+ changing source files.
+ However, if you have to do this, you make the changes to the
+ files in the Build Directory.
+
+
+ Make Kernel Configuration Changes if
+ Applicable:
+ If your situation calls for changing the kernel's
+ configuration, you can use
+ menuconfig,
+ which allows you to interactively develop and test the
+ configuration changes you are making to the kernel.
+ Saving changes you make with menuconfig
+ updates the kernel's .config file.
+ Warning
+ Try to resist the temptation to directly edit an
+ existing .config file, which is
+ found in the Build Directory among the source code
+ used for the build (e.g. see the workflow illustration
+ in the
+ "Kernel Modification Workflow"
+ section).
+ Doing so, can produce unexpected results when the
+ OpenEmbedded build system regenerates the configuration
+ file.
+
+ Once you are satisfied with the configuration
+ changes made using menuconfig
+ and you have saved them, you can directly compare the
+ resulting .config file against an
+ existing original and gather those changes into a
+ configuration fragment file
+ to be referenced from within the kernel's
+ .bbappend file.
+
+ Additionally, if you are working in a BSP layer
+ and need to modify the BSP's kernel's configuration,
+ you can use the
+ yocto-kernel
+ script as well as menuconfig.
+ The yocto-kernel script lets
+ you interactively set up kernel configurations.
+
+
+ Rebuild the Kernel Image With Your Changes:
+ Rebuilding the kernel image applies your changes.
+
+
+
+
-
- If, instead, you have a very specific Linux kernel source tree
- and are unable to align with one of the official linux-yocto
- recipes, an alternative exists by which you can use the Yocto
- Project Linux kernel tools with your own kernel sources.
-
- Other Resources
@@ -126,8 +255,9 @@
The "Understanding and Creating Layers" section
in the Yocto Project Development Manual
- The "Modifying the Kernel" section
- in the Yocto Project Development Manual.
+ The "Kernel Modification Workflow"
+ section.
+