2012-12-17 23:17:14 +00:00
|
|
|
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
|
|
|
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
|
|
|
|
2012-12-17 23:56:26 +00:00
|
|
|
<chapter id='kernel-dev-intro'>
|
2012-12-17 23:17:14 +00:00
|
|
|
|
2012-12-19 21:20:50 +00:00
|
|
|
<title>Introduction</title>
|
2012-12-17 23:56:26 +00:00
|
|
|
|
2012-12-17 23:17:14 +00:00
|
|
|
<para>
|
2012-12-19 21:20:50 +00:00
|
|
|
Regardless of how you intend to make use of the Yocto Project,
|
|
|
|
chances are you are going to need to work with the Linux kernel.
|
|
|
|
The Yocto Project provides a powerful set of tools for managing
|
|
|
|
Linux kernel sources and configuration data.
|
2013-01-02 19:59:04 +00:00
|
|
|
You can use this tooling to help you make a single configuration change,
|
|
|
|
apply a couple of patches, or work with your own sources.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The Yocto Project Kernel Development Manual describes common tasks
|
|
|
|
you can perform using the kernel tooling as well as provides information
|
|
|
|
about the metadata needed to work with the kernel inside the
|
|
|
|
Yocto Project.
|
2012-12-17 23:17:14 +00:00
|
|
|
</para>
|
2012-12-17 23:56:26 +00:00
|
|
|
|
2012-12-19 21:20:50 +00:00
|
|
|
<section id='kernel-dev-background'>
|
|
|
|
<title>Background</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Each Yocto Project release introduces a new set of linux-yocto
|
|
|
|
kernel recipes that tracks the latest upstream developments and
|
|
|
|
introduces newly supported platforms.
|
|
|
|
In addition to the new kernel recipes, the previous recipes 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.
|
|
|
|
Besides these recipes, a <filename>linux-yocto-dev.bb</filename>
|
|
|
|
recipe is available for working with the very latest in upstream
|
|
|
|
Linux kernel development as well as metadata development.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you do not maintain your own kernel sources and need to make
|
|
|
|
only minimal changes to the sources, these 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.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If, instead, you have a very specific Linux kernel source tree
|
|
|
|
and are unable to align with one of the many official linux-yocto
|
|
|
|
releases, an alternative exists by which you can use the Yocto
|
|
|
|
Project Linux kernel tools with your own sources.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='kernel-dev-other-resources'>
|
|
|
|
<title>Other Resources</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The sections that follow provide instructions for completing
|
|
|
|
specific Linux kernel development tasks.
|
|
|
|
These instructions assume you are familiar with working with
|
|
|
|
<ulink url='http://developer.berlios.de/projects/bitbake/'>BitBake</ulink>
|
|
|
|
recipes and basic open-source development tools.
|
|
|
|
Understanding these concepts will facilitate the process of working
|
|
|
|
with the kernel recipes.
|
|
|
|
If you find you need some additional background, please be sure to
|
|
|
|
review and understand the following documentation:
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para><ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>The "<ulink url='&YOCTO_DOCS_DEV_URL;#modifying-temporary-source-code'>Modifying Temporary Source Code</ulink>"
|
|
|
|
section in the Yocto Project Development Manual
|
|
|
|
</para></listitem>
|
|
|
|
<listitem><para>The "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>" section
|
|
|
|
in the Yocto Project Development Manual</para></listitem>
|
|
|
|
<listitem><para>The "<ulink url='&YOCTO_DOCS_DEV_URL;#modifying-the-kernel'>Modifying the Kernel</ulink>" section
|
|
|
|
in the Yocto Project Development Manual.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Finally, while this document focuses on the manual creation of
|
|
|
|
recipes, patches, and configuration files, the Yocto Project
|
|
|
|
Board Support Package (BSP) tools are available to automate
|
|
|
|
this process with existing content and work well to create the
|
|
|
|
initial framework and boilerplate code.
|
|
|
|
For details on these tools, see the
|
|
|
|
"<ulink url='&YOCTO_DOCS_BSP_URL;#using-the-yocto-projects-bsp-tools'>Using the Yocto Project's BSP Tools</ulink>"
|
|
|
|
section in the Yocto Project Board Support Package (BSP) Developer's
|
|
|
|
Guide.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Original Text:
|
|
|
|
<literallayout class='monospaced'>
|
|
|
|
Each Yocto Project release introduces a new set of linux-yocto kernel recipes,
|
2012-12-17 23:56:26 +00:00
|
|
|
tracking the latest upstream developments and introducing newly supported
|
|
|
|
platforms. In addition to the new kernel recipes, the previous recipes are
|
|
|
|
refreshed and supported for at least one additional release. As they align,
|
|
|
|
these previous releases are updated to include the latest from the LTSI project.
|
|
|
|
Besides these recipes, a linux-yocto-dev recipe is available for working with
|
|
|
|
the very latest in upstream Linux kernel development as well as meta-data
|
|
|
|
development.
|
2012-12-17 23:17:14 +00:00
|
|
|
|
2012-12-19 21:20:50 +00:00
|
|
|
If you do not maintain your own kernel sources and need to make only minimal
|
2012-12-17 23:56:26 +00:00
|
|
|
changes to the sources, these 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.
|
2012-12-17 23:17:14 +00:00
|
|
|
|
2012-12-19 21:20:50 +00:00
|
|
|
If, instead, you have a very specific Linux kernel source tree and are unable to
|
2012-12-17 23:56:26 +00:00
|
|
|
align with one of the many official linux-yocto releases, an alternative
|
|
|
|
exists by which you can use the Yocto Project Linux kernel tools with your own
|
|
|
|
sources.
|
|
|
|
|
2012-12-19 21:20:50 +00:00
|
|
|
The sections that follow provide instructions for completing specific Linux
|
2012-12-17 23:56:26 +00:00
|
|
|
kernel development tasks. They assume familiarity with working with bitbake
|
|
|
|
recipes and basic open-source development tools. Understanding these concepts
|
|
|
|
will facilitate the process of working with the kernel recipes. If you find you
|
|
|
|
need some additional background, please be sure to review and understand the
|
|
|
|
following documentation:
|
2012-12-19 21:20:50 +00:00
|
|
|
|
|
|
|
o Yocto Project Getting Started Guide
|
|
|
|
o Yocto Project Development Manual
|
|
|
|
- 4.3 Modifying Temporary Source Code
|
|
|
|
- 5.1 Understanding and Creating Layers
|
|
|
|
- 4.1.2 Modifying the Kernel
|
2012-12-17 23:56:26 +00:00
|
|
|
(This section should be retired, as well as 5.6, 5.7 - with this document
|
2012-12-19 21:20:50 +00:00
|
|
|
providing the necessary information)
|
2012-12-17 23:17:14 +00:00
|
|
|
|
2012-12-19 21:20:50 +00:00
|
|
|
Finally, while this document focuses on the manual creation of recipes, patches,
|
2012-12-17 23:56:26 +00:00
|
|
|
and configuration files, the Yocto Project BSP tools are available to automate
|
|
|
|
this process with existing content and work well to create the initial framework
|
|
|
|
and boilerplate code. For details, refer to the Yocto Project BSP Developer's
|
|
|
|
Guide.
|
2012-12-19 21:20:50 +00:00
|
|
|
</literallayout>
|
|
|
|
</para>
|
|
|
|
</section>
|
2012-12-17 23:17:14 +00:00
|
|
|
</chapter>
|
|
|
|
<!--
|
|
|
|
vim: expandtab tw=80 ts=4
|
|
|
|
-->
|