summaryrefslogtreecommitdiffstats
path: root/documentation/kernel-dev/kernel-dev-intro.xml
blob: 67d8d93f0838daeb2e695e62fca23a6644875d9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<!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; ] >

<chapter id='kernel-dev-intro'>

<title>Introduction</title>

    <para>
        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.
        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.
    </para>

    <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,
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.

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.

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.

The sections that follow provide instructions for completing specific Linux
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:

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
    (This section should be retired, as well as 5.6, 5.7 - with this document
     providing the necessary information)

Finally, while this document focuses on the manual creation of recipes, patches,
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.
            </literallayout>
        </para>
    </section>
</chapter>
<!--
vim: expandtab tw=80 ts=4
-->