diff options
Diffstat (limited to 'documentation/kernel-manual/kernel-how-to.xml')
-rw-r--r-- | documentation/kernel-manual/kernel-how-to.xml | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/documentation/kernel-manual/kernel-how-to.xml b/documentation/kernel-manual/kernel-how-to.xml index 2d7f1df97e..b1916420d6 100644 --- a/documentation/kernel-manual/kernel-how-to.xml +++ b/documentation/kernel-manual/kernel-how-to.xml | |||
@@ -10,7 +10,7 @@ | |||
10 | <section id='actions-org'> | 10 | <section id='actions-org'> |
11 | <title>Introduction</title> | 11 | <title>Introduction</title> |
12 | <para> | 12 | <para> |
13 | This chapter describes how to accomplish tasks involving the kernel's tree structure. | 13 | This chapter describes how to accomplish tasks involving a kernel's tree structure. |
14 | The information is designed to help the developer that wants to modify the Yocto | 14 | The information is designed to help the developer that wants to modify the Yocto |
15 | Project kernel and contribute changes upstream to the Yocto Project. | 15 | Project kernel and contribute changes upstream to the Yocto Project. |
16 | The information covers the following: | 16 | The information covers the following: |
@@ -25,7 +25,7 @@ | |||
25 | <section id='tree-construction'> | 25 | <section id='tree-construction'> |
26 | <title>Tree Construction</title> | 26 | <title>Tree Construction</title> |
27 | <para> | 27 | <para> |
28 | This section describes construction of the Yocto Project kernel repositories | 28 | This section describes construction of the Yocto Project kernel source repositories |
29 | as accomplished by the Yocto Project team to create kernel repositories. | 29 | as accomplished by the Yocto Project team to create kernel repositories. |
30 | These kernel repositories are found at | 30 | These kernel repositories are found at |
31 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'>&YOCTO_GIT_URL;/cgit.cgi</ulink> | 31 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'>&YOCTO_GIT_URL;/cgit.cgi</ulink> |
@@ -34,25 +34,27 @@ | |||
34 | compiling and executing the set of feature descriptions for every BSP/feature | 34 | compiling and executing the set of feature descriptions for every BSP/feature |
35 | in the product. | 35 | in the product. |
36 | Those feature descriptions list all necessary patches, | 36 | Those feature descriptions list all necessary patches, |
37 | configuration, branching, tagging and feature divisions found in the kernel. | 37 | configuration, branching, tagging and feature divisions found in a kernel. |
38 | Thus, the Yocto Project kernel repository (or tree) is built. | 38 | Thus, the Yocto Project kernel repository (or tree) is built. |
39 | </para> | 39 | </para> |
40 | <para> | 40 | <para> |
41 | The existence of this tree allows you to access and clone a particular | 41 | The existence of this tree allows you to access and clone a particular |
42 | Linux Yocto kernel repository and use it to build images based on their configurations | 42 | Yocto Project kernel repository and use it to build images based on their configurations |
43 | and features. | 43 | and features. |
44 | </para> | 44 | </para> |
45 | <para> | 45 | <para> |
46 | You can find the files used to describe all the valid features and BSPs | 46 | You can find the files used to describe all the valid features and BSPs |
47 | in the Yocto Project kernel in any clone of the Linux Yocto kernel source repository Git tree. | 47 | in the Yocto Project kernel in any clone of the Yocto Project kernel source repository |
48 | Git tree. | ||
48 | For example, the following command clones the Yocto Project baseline kernel that | 49 | For example, the following command clones the Yocto Project baseline kernel that |
49 | branched off of <filename>linux.org</filename> version 3.4: | 50 | branched off of <filename>linux.org</filename> version 3.4: |
50 | <literallayout class='monospaced'> | 51 | <literallayout class='monospaced'> |
51 | $ git clone git://git.yoctoproject.org/linux-yocto-3.4 | 52 | $ git clone git://git.yoctoproject.org/linux-yocto-3.4 |
52 | </literallayout> | 53 | </literallayout> |
53 | For another example of how to set up a local Git repository of the Linux Yocto | 54 | For another example of how to set up a local Git repository of the Yocto Project |
54 | kernel files, see the | 55 | kernel files, see the |
55 | "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted item in The Yocto Project Development Manual. | 56 | "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted |
57 | item in The Yocto Project Development Manual. | ||
56 | </para> | 58 | </para> |
57 | <para> | 59 | <para> |
58 | Once you have cloned the kernel Git repository on your local machine, you can | 60 | Once you have cloned the kernel Git repository on your local machine, you can |
@@ -85,7 +87,7 @@ | |||
85 | </para> | 87 | </para> |
86 | <para> | 88 | <para> |
87 | The following steps describe what happens when the Yocto Project Team constructs | 89 | The following steps describe what happens when the Yocto Project Team constructs |
88 | the Yocto Linux kernel source Git repository (or tree) found at | 90 | the Yocto Project kernel source Git repository (or tree) found at |
89 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> given the | 91 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> given the |
90 | introduction of a new top-level kernel feature or BSP. | 92 | introduction of a new top-level kernel feature or BSP. |
91 | These are the actions that effectively create the tree | 93 | These are the actions that effectively create the tree |
@@ -130,7 +132,7 @@ | |||
130 | </para> | 132 | </para> |
131 | <para> | 133 | <para> |
132 | The kernel tree is now ready for developer consumption to be locally cloned, | 134 | The kernel tree is now ready for developer consumption to be locally cloned, |
133 | configured, and built into a Linux Yocto kernel specific to some target hardware. | 135 | configured, and built into a Yocto Project kernel specific to some target hardware. |
134 | <note><para>The generated <filename>meta-*</filename> directories add to the kernel | 136 | <note><para>The generated <filename>meta-*</filename> directories add to the kernel |
135 | as shipped with the Yocto Project release. | 137 | as shipped with the Yocto Project release. |
136 | Any add-ons and configuration data are applied to the end of an existing branch. | 138 | Any add-ons and configuration data are applied to the end of an existing branch. |
@@ -149,7 +151,7 @@ | |||
149 | <section id='build-strategy'> | 151 | <section id='build-strategy'> |
150 | <title>Build Strategy</title> | 152 | <title>Build Strategy</title> |
151 | <para> | 153 | <para> |
152 | Once a local Git repository of the Linux Yocto kernel exists on a development system, | 154 | Once a local Git repository of the Yocto Project kernel exists on a development system, |
153 | you can consider the compilation phase of kernel development - building a kernel image. | 155 | you can consider the compilation phase of kernel development - building a kernel image. |
154 | Some prerequisites exist that are validated by the build process before compilation | 156 | Some prerequisites exist that are validated by the build process before compilation |
155 | starts: | 157 | starts: |
@@ -166,7 +168,7 @@ | |||
166 | </itemizedlist> | 168 | </itemizedlist> |
167 | 169 | ||
168 | <para> | 170 | <para> |
169 | The Yocto Project makes sure these conditions exist before attempting compilation. | 171 | The OpenEmbedded build system makes sure these conditions exist before attempting compilation. |
170 | Other means, however, do exist, such as as bootstrapping a BSP, see | 172 | Other means, however, do exist, such as as bootstrapping a BSP, see |
171 | the "<link linkend='workflow-examples'>Workflow Examples</link>". | 173 | the "<link linkend='workflow-examples'>Workflow Examples</link>". |
172 | </para> | 174 | </para> |
@@ -308,7 +310,7 @@ | |||
308 | <title>Show a Particular Feature or Branch Change</title> | 310 | <title>Show a Particular Feature or Branch Change</title> |
309 | 311 | ||
310 | <para> | 312 | <para> |
311 | Developers use tags in the Yocto Project tree to divide changes for significant | 313 | Developers use tags in the Yocto Project kernel tree to divide changes for significant |
312 | features or branches. | 314 | features or branches. |
313 | Once you know a particular tag, you can use Git commands | 315 | Once you know a particular tag, you can use Git commands |
314 | to show changes associated with the tag and find the branches that contain | 316 | to show changes associated with the tag and find the branches that contain |
@@ -523,7 +525,7 @@ | |||
523 | "permanent" and you should not modify them. | 525 | "permanent" and you should not modify them. |
524 | If the commits need to be changed, you can incrementally do so with new commits. | 526 | If the commits need to be changed, you can incrementally do so with new commits. |
525 | These practices follow standard Git workflow and the <filename>kernel.org</filename> best | 527 | These practices follow standard Git workflow and the <filename>kernel.org</filename> best |
526 | practices, which Yocto Project recommends. | 528 | practices, which is recommended. |
527 | <note> | 529 | <note> |
528 | It is recommended to tag or branch before adding changes to a Yocto Project | 530 | It is recommended to tag or branch before adding changes to a Yocto Project |
529 | BSP or before creating a new one. | 531 | BSP or before creating a new one. |
@@ -691,7 +693,7 @@ | |||
691 | However, if the patches are manually applied to a secondary tree and then | 693 | However, if the patches are manually applied to a secondary tree and then |
692 | that tree is checked into the SCM, you can lose change information such as | 694 | that tree is checked into the SCM, you can lose change information such as |
693 | commit logs. | 695 | commit logs. |
694 | The Yocto Project does not recommend this process. | 696 | This process is not recommended. |
695 | </para> | 697 | </para> |
696 | 698 | ||
697 | <para> | 699 | <para> |
@@ -708,14 +710,14 @@ | |||
708 | <para> | 710 | <para> |
709 | This section describes kernel development in an SCM other than Git, | 711 | This section describes kernel development in an SCM other than Git, |
710 | which is not the same as exporting changes to another SCM described earlier. | 712 | which is not the same as exporting changes to another SCM described earlier. |
711 | For this scenario, you use the Yocto Project build system to | 713 | For this scenario, you use the OpenEmbedded build system to |
712 | develop the kernel in a different SCM. | 714 | develop the kernel in a different SCM. |
713 | The following must be true for you to accomplish this: | 715 | The following must be true for you to accomplish this: |
714 | <itemizedlist> | 716 | <itemizedlist> |
715 | <listitem><para>The delivered Yocto Project kernel must be exported into the second | 717 | <listitem><para>The delivered Yocto Project kernel must be exported into the second |
716 | SCM.</para></listitem> | 718 | SCM.</para></listitem> |
717 | <listitem><para>Development must be exported from that secondary SCM into a | 719 | <listitem><para>Development must be exported from that secondary SCM into a |
718 | format that can be used by the Yocto Project build system.</para></listitem> | 720 | format that can be used by the OpenEmbedded build system.</para></listitem> |
719 | </itemizedlist> | 721 | </itemizedlist> |
720 | </para> | 722 | </para> |
721 | 723 | ||
@@ -791,9 +793,10 @@ | |||
791 | <para> | 793 | <para> |
792 | The basic steps you need to follow are: | 794 | The basic steps you need to follow are: |
793 | <orderedlist> | 795 | <orderedlist> |
794 | <listitem><para><emphasis>Make sure you have the Yocto Project source tree available:</emphasis> | 796 | <listitem><para><emphasis>Make sure you have set up a local source directory:</emphasis> |
795 | You should either create a Yocto Project Git repository (recommended), or | 797 | You must create a local <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source |
796 | you should get the Yocto Project release tarball and extract it.</para></listitem> | 798 | directory</ulink> by either creating a Git repository (recommended) or |
799 | extracting a Yocto Project release tarball.</para></listitem> | ||
797 | <listitem><para><emphasis>Choose an existing BSP available with the Yocto Project:</emphasis> | 800 | <listitem><para><emphasis>Choose an existing BSP available with the Yocto Project:</emphasis> |
798 | Try to map your board features as closely to the features of a BSP that is | 801 | Try to map your board features as closely to the features of a BSP that is |
799 | already supported and exists in the Yocto Project. | 802 | already supported and exists in the Yocto Project. |
@@ -803,12 +806,12 @@ | |||
803 | on the Yocto Project's Download page at | 806 | on the Yocto Project's Download page at |
804 | <ulink url='&YOCTO_HOME_URL;/download'></ulink>.</para></listitem> | 807 | <ulink url='&YOCTO_HOME_URL;/download'></ulink>.</para></listitem> |
805 | <listitem><para><emphasis>Be sure you have the Base BSP:</emphasis> | 808 | <listitem><para><emphasis>Be sure you have the Base BSP:</emphasis> |
806 | You need to either have the Yocto Project Git repository set up or download | 809 | You need to either have a local Git repository of the base BSP set up or |
807 | the tarball of the base BSP. | 810 | have downloaded and extracted the files from a release BSP tarball. |
808 | Either method gives you access to the BSP source files.</para></listitem> | 811 | Either method gives you access to the BSP source files.</para></listitem> |
809 | <listitem><para><emphasis>Make a copy of the existing BSP, thus isolating your new | 812 | <listitem><para><emphasis>Make a copy of the existing BSP, thus isolating your new |
810 | BSP work:</emphasis> | 813 | BSP work:</emphasis> |
811 | Copying the existing BSP structure gives you a new area in which to work.</para></listitem> | 814 | Copying the existing BSP file structure gives you a new area in which to work.</para></listitem> |
812 | <listitem><para><emphasis>Make configuration and recipe changes to your new BSP:</emphasis> | 815 | <listitem><para><emphasis>Make configuration and recipe changes to your new BSP:</emphasis> |
813 | Configuration changes involve the files in the BSP's <filename>conf</filename> | 816 | Configuration changes involve the files in the BSP's <filename>conf</filename> |
814 | directory. | 817 | directory. |
@@ -824,7 +827,7 @@ | |||
824 | changes to the <filename>local.conf</filename> and <filename>bblayers.conf</filename> | 827 | changes to the <filename>local.conf</filename> and <filename>bblayers.conf</filename> |
825 | files.</para></listitem> | 828 | files.</para></listitem> |
826 | <listitem><para><emphasis>Build the image:</emphasis> | 829 | <listitem><para><emphasis>Build the image:</emphasis> |
827 | The Yocto Project uses the BitBake tool to create the image. | 830 | The OpenEmbedded build system uses BitBake to create the image. |
828 | You need to decide on the type of image you are going to build (e.g. minimal, base, | 831 | You need to decide on the type of image you are going to build (e.g. minimal, base, |
829 | core, sato, and so forth) and then start the build using the <filename>bitbake</filename> | 832 | core, sato, and so forth) and then start the build using the <filename>bitbake</filename> |
830 | command.</para></listitem> | 833 | command.</para></listitem> |