diff options
Diffstat (limited to 'poky/documentation/kernel-dev/kernel-dev-intro.xml')
-rw-r--r-- | poky/documentation/kernel-dev/kernel-dev-intro.xml | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/poky/documentation/kernel-dev/kernel-dev-intro.xml b/poky/documentation/kernel-dev/kernel-dev-intro.xml deleted file mode 100644 index 4e4fd282a5..0000000000 --- a/poky/documentation/kernel-dev/kernel-dev-intro.xml +++ /dev/null @@ -1,259 +0,0 @@ -<!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> - -<section id='kernel-dev-overview'> - <title>Overview</title> - - <para> - Regardless of how you intend to make use of the Yocto Project, - chances are you will work with the Linux kernel. - This manual describes how to set up your build host to support - kernel development, introduces the kernel development process, - provides background information on the Yocto Linux kernel - <ulink url='&YOCTO_DOCS_REF_URL;#metadata'>Metadata</ulink>, - describes common tasks you can perform using the kernel tools, - shows you how to use the kernel Metadata needed to work with - the kernel inside the Yocto Project, and provides insight into how - the Yocto Project team develops and maintains Yocto Linux kernel - Git repositories and Metadata. - </para> - - <para> - Each Yocto Project release has a set of Yocto Linux kernel recipes, - whose Git repositories you can view in the Yocto - <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink> under - the "Yocto Linux Kernel" heading. - New recipes for the release track the latest Linux kernel - upstream developments from - <ulink url='http://www.kernel.org'></ulink> 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. - You can learn more about Yocto Linux kernels and LTSI in the - "<link linkend='kernel-big-picture'>Yocto Project Kernel Development and Maintenance</link>" - section. - </para> - - <para> - Also included is a Yocto Linux kernel development recipe - (<filename>linux-yocto-dev.bb</filename>) should you want to work - with the very latest in upstream Yocto Linux kernel development and - kernel Metadata development. - <note> - For more on Yocto Linux kernels, see the - "<link linkend='kernel-big-picture'>Yocto Project Kernel Development and Maintenance</link> - section. - </note> - </para> - - <para> - 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. - </para> - - <para> - 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 <filename>CONFIG</filename> options as presented by the - Yocto Linux kernel <filename>menuconfig</filename> system. - Contrast this against a complete Yocto Linux kernel - <filename>.config</filename> file, which includes all the automatically - selected <filename>CONFIG</filename> 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 - <filename>proc</filename> and <filename>sys</filename> 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. - </para> - - <para> - 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. - </para> - - <para> - 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. - </para> - - <para> - The remainder of this manual provides instructions for completing - specific Linux kernel development tasks. - These instructions assume you are comfortable working with - <ulink url='http://openembedded.org/wiki/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_BRIEF_URL;'>Yocto Project Quick Build</ulink> - document. - </para></listitem> - <listitem><para> - <ulink url='&YOCTO_DOCS_OM_URL;'>Yocto Project Overview and Concepts Manual</ulink>. - </para></listitem> - <listitem><para> - <ulink url='&YOCTO_DOCS_SDK_URL;#using-devtool-in-your-sdk-workflow'><filename>devtool</filename> workflow</ulink> - as described in the Yocto Project Application Development and - the Extensible Software Development Kit (eSDK) 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 Tasks Manual. - </para></listitem> - <listitem><para> - The - "<link linkend='kernel-modification-workflow'>Kernel Modification Workflow</link>" - section. - </para></listitem> - </itemizedlist> - </para> -</section> - -<section id='kernel-modification-workflow'> - <title>Kernel Modification Workflow</title> - - <para> - 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 - <filename>recipes-kernel</filename> area in a kernel layer you create. - </para> - - <para> - This section presents a high-level overview of the Yocto Project - kernel modification workflow. - The illustration and accompanying list provide general information - and references for further information. - <imagedata fileref="figures/kernel-dev-flow.png" - width="9in" depth="5in" align="center" scalefit="1" /> - </para> - - <para> - <orderedlist> - <listitem><para> - - - <emphasis>Set up Your Host Development System to Support - Development Using the Yocto Project</emphasis>: - See the - "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-start'>Setting Up the Development Host to Use the Yocto Project</ulink>" - section in the Yocto Project Development Tasks Manual for - options on how to get a build host ready to use the Yocto - Project. - </para></listitem> - <listitem><para> - <emphasis>Set Up Your Host Development System for Kernel Development:</emphasis> - It is recommended that you use <filename>devtool</filename> - and an extensible SDK for kernel development. - Alternatively, you can use traditional kernel development - methods with the Yocto Project. - Either way, there are steps you need to take to get the - development environment ready.</para> - - <para>Using <filename>devtool</filename> and the eSDK requires - that you have a clean build of the image and that you are - set up with the appropriate eSDK. - For more information, see the - "<link linkend='getting-ready-to-develop-using-devtool'>Getting Ready to Develop Using <filename>devtool</filename></link>" - section.</para> - - <para>Using traditional kernel development requires that you - have the kernel source available in an isolated local Git - repository. - For more information, see the - "<link linkend='getting-ready-for-traditional-kernel-development'>Getting Ready for Traditional Kernel Development</link>" - section. - </para></listitem> - <listitem><para> - <emphasis>Make Changes to the Kernel Source Code if - applicable:</emphasis> - 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 eSDK's Build Directory if you are using - <filename>devtool</filename>. - For more information, see the - "<link linkend='using-devtool-to-patch-the-kernel'>Using <filename>devtool</filename> to Patch the Kernel</link>" - section.</para> - - <para>If you are using traditional kernel development, you - edit the source files in the kernel's local Git repository. - For more information, see the - "<link linkend='using-traditional-kernel-development-to-patch-the-kernel'>Using Traditional Kernel Development to Patch the Kernel</link>" - section. - </para></listitem> - <listitem><para> - <emphasis>Make Kernel Configuration Changes if - Applicable:</emphasis> - If your situation calls for changing the kernel's - configuration, you can use - <link linkend='using-menuconfig'><filename>menuconfig</filename></link>, - which allows you to interactively develop and test the - configuration changes you are making to the kernel. - Saving changes you make with <filename>menuconfig</filename> - updates the kernel's <filename>.config</filename> file. - <note><title>Warning</title> - Try to resist the temptation to directly edit an - existing <filename>.config</filename> file, which is - found in the Build Directory among the source code - used for the build. - Doing so, can produce unexpected results when the - OpenEmbedded build system regenerates the configuration - file. - </note> - Once you are satisfied with the configuration - changes made using <filename>menuconfig</filename> - and you have saved them, you can directly compare the - resulting <filename>.config</filename> file against an - existing original and gather those changes into a - <link linkend='creating-config-fragments'>configuration fragment file</link> - to be referenced from within the kernel's - <filename>.bbappend</filename> file.</para> - - <para>Additionally, if you are working in a BSP layer - and need to modify the BSP's kernel's configuration, - you can use <filename>menuconfig</filename>. - </para></listitem> - <listitem><para> - <emphasis>Rebuild the Kernel Image With Your Changes:</emphasis> - Rebuilding the kernel image applies your changes. - Depending on your target hardware, you can verify your changes - on actual hardware or perhaps QEMU. - </para></listitem> - </orderedlist> - The remainder of this developer's guide covers common tasks typically - used during kernel development, advanced Metadata usage, and Yocto Linux - kernel maintenance concepts. - </para> -</section> - -</chapter> -<!-- -vim: expandtab tw=80 ts=4 ---> |