summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2011-07-20 06:06:05 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-08-04 15:06:40 +0100
commit468d7898fc80648db321d9d3d0ac8fd0a8eb8add (patch)
tree8fa5a43e61e2b965bd6cd4d8af5b77ef0bf2b318 /documentation
parentcf4ab5363ff9396447f7a04ec8fd21945d315aa6 (diff)
downloadpoky-468d7898fc80648db321d9d3d0ac8fd0a8eb8add.tar.gz
documentation/dev-manual/dev-manual-cases.xml: partial kernel case
(From yocto-docs rev: 798652fa1544dd141516ce9fb085f63d7a5da4cf) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/dev-manual/dev-manual-cases.xml92
1 files changed, 92 insertions, 0 deletions
diff --git a/documentation/dev-manual/dev-manual-cases.xml b/documentation/dev-manual/dev-manual-cases.xml
index 59c9168d6c..d57f0eabff 100644
--- a/documentation/dev-manual/dev-manual-cases.xml
+++ b/documentation/dev-manual/dev-manual-cases.xml
@@ -728,6 +728,98 @@
728 <title>Modifying a Kernel</title> 728 <title>Modifying a Kernel</title>
729 729
730 <para> 730 <para>
731 Kernel modification involves changing or adding configurations to an existing kernel, or
732 adding recipes to the kernel that are needed to support specific hardware features.
733 The process is similar to creating a Board Support Package (BSP) except that it does not
734 involve a BSP layer.
735 </para>
736
737 <para>
738 This section presents a brief overview of the kernel structure and then provides a simple
739 example that shows how to modify the kernel.
740 </para>
741
742 <section id='yocto-project-kernel-overview'>
743 <title>Yocto Project Kernel Overview</title>
744
745 <para>
746 When one thinks of the source files for a kernel they usually think of a fixed structure
747 of files that contain kernel patches.
748 The Yocto Project, however, employs mechanisims that in a sense result in a kernel source
749 generator.
750 </para>
751
752 <para>
753 The Yocto Project uses the source code management (SCM) tool Git to manage and track Yocto
754 Project files.
755 Git employs branching strategies that effectively produce a tree-like structure whose
756 branches represent diversions from more general code.
757 For example, suppose two kernels are basically identical with the exception of a couple
758 different features in each.
759 In the Yocto Project kernel Git repository a main branch can contain the common or shared
760 parts of the kernel source and two branches that diverge from that common branch can
761 each contain the features specific to the respective kernel.
762 The result is a tree whose "leaves" represent the end of a specific path that yields
763 a set of kernel source files necessary for a specific piece of hardware and its features.
764 </para>
765
766 <para>
767 A big advantage to this scheme is the sharing of common features by keeping them in
768 "larger" branches that are further up the tree.
769 This practice eliminates redundant storage of similar features shared among kernels.
770 </para>
771
772 <para>
773 When you build the kernel on your development system all files needed for the build
774 are taken from the local tree (the Git repository) and gathered in a temporary work area
775 where they are subsequently used to create the unique kernel.
776 Thus, in a sense, the process uses a local, all-inclusive source tree to generate
777 (or choose) the specific kernel source files you need for the build - a source
778 generator if you will.
779 </para>
780
781 <para>
782 For a complete discussion of the Yocto Project kernel's architcture and its branching strategy,
783 see the <ulink url='http://www.yoctoproject.org/docs/1.1/kernel-manual/kernel-manual.html'>
784 The Yocto Project Kernel Architecture and Use Manual</ulink>.
785 </para>
786
787 <para>
788 You can find a web interface to the Yocto Project source repository at
789 <ulink url='http://git.yoctoproject.org/'></ulink>.
790 Within the interface you will see groups of related source code, each of which can
791 be cloned using Git to result in a working Git repository on your local system.
792 The Yocto Project supports four types of kernels in its source repositories at
793 <ulink url='http://git.yoctoproject.org/'></ulink>:
794 <itemizedlist>
795 <listitem><para><emphasis><filename>linux-yocto-2.6.34</filename></emphasis> - The
796 stable Linux Yocto kernel that is based on the Linux 2.6.34 release.</para></listitem>
797 <listitem><para><emphasis><filename>linux-yocto-2.6.37</filename></emphasis> - The current
798 Linux Yocto kernel that is based on the Linux 2.6.37 release.</para></listitem>
799 <listitem><para><emphasis><filename>linux-yocto-dev</filename></emphasis> - A development
800 kernel based on the Linux 2.6.39-rc1 release.</para></listitem>
801 <listitem><para><emphasis><filename>linux-2.6</filename></emphasis> - A kernel based on
802 minimal Linux mainline tracking.
803 [WRITER'S NOTE: I don't know which Git repository the user needs to clone to get this
804 repository on their development system.]</para></listitem>
805 </itemizedlist>
806 </para>
807 </section>
808
809 <section id='modifying-a-kernel'>
810 <title>Modifying a Kernel</title>
811
812 <para>
813 The remainder of this section presents a simple example that modifies a kernel.
814 For the purpose of this example we are going to base our new kernel on the current
815 Linux Yocto 2.6.37 release.
816
817
818
819
820
821
822 <para>
731 [WRITER'S NOTE: This section is a second example that focuses on just modifying the kernel. 823 [WRITER'S NOTE: This section is a second example that focuses on just modifying the kernel.
732 I don't have any information on this yet. 824 I don't have any information on this yet.
733 </para> 825 </para>