summaryrefslogtreecommitdiffstats
path: root/documentation/kernel-dev/kernel-dev-intro.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/kernel-dev/kernel-dev-intro.xml')
-rw-r--r--documentation/kernel-dev/kernel-dev-intro.xml87
1 files changed, 56 insertions, 31 deletions
diff --git a/documentation/kernel-dev/kernel-dev-intro.xml b/documentation/kernel-dev/kernel-dev-intro.xml
index 67d8d93f08..32a4040e4b 100644
--- a/documentation/kernel-dev/kernel-dev-intro.xml
+++ b/documentation/kernel-dev/kernel-dev-intro.xml
@@ -3,44 +3,69 @@
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > 3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4 4
5<chapter id='kernel-dev-intro'> 5<chapter id='kernel-dev-intro'>
6
7<title>Introduction</title> 6<title>Introduction</title>
8 7
9 <para> 8 <section id='kernel-dev-overview'>
10 Regardless of how you intend to make use of the Yocto Project, 9 <title>Overview</title>
11 chances are you are going to need to work with the Linux kernel.
12 The Yocto Project provides a powerful set of tools for managing
13 Linux kernel sources and configuration data.
14 You can use this tooling to help you make a single configuration change,
15 apply a couple of patches, or work with your own sources.
16 </para>
17
18 <para>
19 The Yocto Project Kernel Development Manual describes common tasks
20 you can perform using the kernel tooling as well as provides information
21 about the metadata needed to work with the kernel inside the
22 Yocto Project.
23 </para>
24
25 <section id='kernel-dev-background'>
26 <title>Background</title>
27 10
28 <para> 11 <para>
29 Each Yocto Project release introduces a new set of linux-yocto 12 Regardless of how you intend to make use of the Yocto Project,
30 kernel recipes that tracks the latest upstream developments and 13 chances are you will work with the Linux kernel.
31 introduces newly supported platforms. 14 This manual provides background information on the Yocto Linux kernel
32 In addition to the new kernel recipes, the previous recipes are 15 <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>,
33 refreshed and supported for at least one additional release. 16 describes common tasks you can perform using the kernel tools,
17 and shows you how to use the Metadata needed to work with
18 the kernel inside the Yocto Project.
19 </para>
20
21 <para>
22 Each Yocto Project release has a set of linux-yocto recipes, whose
23 Git repositories you can view in the Yocto
24 <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink> under
25 the "Yocto Linux Kernel" heading.
26 New recipes for the release track the latest upstream developments
27 and introduce newly supported platforms.
28 Previous recipes in the release are refreshed and supported for at
29 least one additional release.
34 As they align, these previous releases are updated to include the 30 As they align, these previous releases are updated to include the
35 latest from the Long Term Support Initiative (LTSI) project. 31 latest from the Long Term Support Initiative (LTSI) project.
36 Besides these recipes, a <filename>linux-yocto-dev.bb</filename> 32 Also included is a linux-yocto development recipe
37 recipe is available for working with the very latest in upstream 33 (<filename>linux-yocto-dev.bb</filename>) should you want to work
38 Linux kernel development as well as metadata development. 34 with the very latest in upstream Linux kernel development and
35 Metadata development.
36 </para>
37
38 <para>
39 The Yocto Project also provides a powerful set of kernel
40 tools for managing Linux kernel sources and configuration data.
41 You can use these tools to make a single configuration change,
42 apply multiple patches, or work with your own kernel sources.
43 </para>
44
45 <para>
46 In particular, the kernel tools allow you to generate configuration
47 fragments that specify only what you must, and nothing more.
48 Configuration fragments only need to contain the highest level
49 visible <filename>CONFIG</filename> options as presented by the Linux
50 kernel <filename>menuconfig</filename> system.
51 Contrast this against a complete Linux kernel
52 <filename>.config</filename>, which includes all the automatically
53 selected <filename>CONFIG</filename> options.
54 This efficiency reduces your maintenance effort and allows you
55 to further separate your configuration in ways that make sense for
56 your project.
57 A common split separates policy and hardware.
58 For example, all your kernels might support
59 the <filename>proc</filename> and <filename>sys</filename> filesystems,
60 but only specific boards require sound, USB, or specific drivers.
61 Specifying these configurations individually allows you to aggregate
62 them together as needed, but maintains them in only one place.
63 Similar logic applies to separating source changes.
39 </para> 64 </para>
40 65
41 <para> 66 <para>
42 If you do not maintain your own kernel sources and need to make 67 If you do not maintain your own kernel sources and need to make
43 only minimal changes to the sources, these recipes provide a 68 only minimal changes to the sources, the released recipes provide a
44 vetted base upon which to layer your changes. 69 vetted base upon which to layer your changes.
45 Doing so allows you to benefit from the continual kernel 70 Doing so allows you to benefit from the continual kernel
46 integration and testing performed during development of the 71 integration and testing performed during development of the
@@ -50,8 +75,8 @@
50 <para> 75 <para>
51 If, instead, you have a very specific Linux kernel source tree 76 If, instead, you have a very specific Linux kernel source tree
52 and are unable to align with one of the many official linux-yocto 77 and are unable to align with one of the many official linux-yocto
53 releases, an alternative exists by which you can use the Yocto 78 recipes, an alternative exists by which you can use the Yocto
54 Project Linux kernel tools with your own sources. 79 Project Linux kernel tools with your own kernel sources.
55 </para> 80 </para>
56 </section> 81 </section>
57 82
@@ -61,7 +86,7 @@
61 <para> 86 <para>
62 The sections that follow provide instructions for completing 87 The sections that follow provide instructions for completing
63 specific Linux kernel development tasks. 88 specific Linux kernel development tasks.
64 These instructions assume you are familiar with working with 89 These instructions assume you are comfortable working with
65 <ulink url='http://developer.berlios.de/projects/bitbake/'>BitBake</ulink> 90 <ulink url='http://developer.berlios.de/projects/bitbake/'>BitBake</ulink>
66 recipes and basic open-source development tools. 91 recipes and basic open-source development tools.
67 Understanding these concepts will facilitate the process of working 92 Understanding these concepts will facilitate the process of working