diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2011-07-20 06:06:05 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-08-04 15:06:40 +0100 |
commit | 468d7898fc80648db321d9d3d0ac8fd0a8eb8add (patch) | |
tree | 8fa5a43e61e2b965bd6cd4d8af5b77ef0bf2b318 /documentation | |
parent | cf4ab5363ff9396447f7a04ec8fd21945d315aa6 (diff) | |
download | poky-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.xml | 92 |
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> |