summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-model.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/dev-manual/dev-manual-model.xml')
-rw-r--r--documentation/dev-manual/dev-manual-model.xml147
1 files changed, 0 insertions, 147 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml
index 0055bccfed..b1b5efa82c 100644
--- a/documentation/dev-manual/dev-manual-model.xml
+++ b/documentation/dev-manual/dev-manual-model.xml
@@ -41,153 +41,6 @@
41 </itemizedlist> 41 </itemizedlist>
42</para> 42</para>
43 43
44<section id='system-development-model'>
45 <title>System Development Workflow</title>
46
47 <para>
48 System development involves modification or creation of an image that you want to run on
49 a specific hardware target.
50 Usually, when you want to create an image that runs on embedded hardware, the image does
51 not require the same number of features that a full-fledged Linux distribution provides.
52 Thus, you can create a much smaller image that is designed to use only the
53 features for your particular hardware.
54 </para>
55
56 <para>
57 To help you understand how system development works in the Yocto Project, this section
58 covers two types of image development: BSP creation and kernel modification or
59 configuration.
60 </para>
61
62 <section id='modifying-the-kernel'>
63 <title><anchor id='kernel-spot' />Modifying the Kernel</title>
64
65 <para>
66 Kernel modification involves changing the Yocto Project kernel, which could involve changing
67 configuration options as well as adding new kernel recipes.
68 Configuration changes can be added in the form of configuration fragments, while recipe
69 modification comes through the kernel's <filename>recipes-kernel</filename> area
70 in a kernel layer you create.
71 </para>
72
73 <para>
74 The remainder of this section presents a high-level overview of the Yocto Project
75 kernel architecture and the steps to modify the kernel.
76 You can reference the
77 "<link linkend='patching-the-kernel'>Patching the Kernel</link>" section
78 for an example that changes the source code of the kernel.
79 For information on how to configure the kernel, see the
80 "<link linkend='configuring-the-kernel'>Configuring the Kernel</link>" section.
81 For more information on the kernel and on modifying the kernel, see the
82 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>.
83 </para>
84
85 <section id='kernel-modification-workflow'>
86 <title>Kernel Modification Workflow</title>
87
88 <para>
89 This illustration and the following list summarizes the kernel modification general workflow.
90 </para>
91
92 <para>
93 <imagedata fileref="figures/kernel-dev-flow.png"
94 width="6in" depth="5in" align="center" scalefit="1" />
95 </para>
96
97 <para>
98 <orderedlist>
99 <listitem><para><emphasis>Set up your host development system to support
100 development using the Yocto Project</emphasis>: See
101 "<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>" and
102 "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>" sections both
103 in the Yocto Project Quick Start for requirements.</para></listitem>
104 <listitem><para><emphasis>Establish a local copy of project files on your
105 system</emphasis>: Having the
106 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
107 on your system gives you access to the build process and tools
108 you need.
109 For information on how to get these files, see the
110 "<link linkend='cloning-the-poky-repository'>Cloning the <filename>poky</filename> Repository</link>"
111 section.
112 </para></listitem>
113 <listitem><para><emphasis>Establish the temporary kernel source files</emphasis>:
114 Temporary kernel source files are kept in the
115 <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
116 created by the
117 OpenEmbedded build system when you run BitBake.
118 If you have never built the kernel in which you are
119 interested, you need to run an initial build to
120 establish local kernel source files.</para>
121 <para>If you are building an image for the first time, you need to get the build
122 environment ready by sourcing an environment setup script
123 (i.e. <filename>oe-init-build-env</filename> or
124 <filename>oe-init-build-env-memres</filename>).
125 You also need to be sure two key configuration files
126 (<filename>local.conf</filename> and <filename>bblayers.conf</filename>)
127 are configured appropriately.</para>
128 <para>The entire process for building an image is overviewed in the
129 "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
130 section of the Yocto Project Quick Start.
131 You might want to reference this information.
132 You can find more information on BitBake in the
133 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
134 </para>
135 <para>The build process supports several types of images to satisfy different needs.
136 See the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in
137 the Yocto Project Reference Manual for information on supported images.
138 </para></listitem>
139 <listitem><para><emphasis>Make changes to the kernel source code if
140 applicable</emphasis>: Modifying the kernel does not always mean directly
141 changing source files.
142 However, if you have to do this, you make the changes to the files in the
143 Build Directory.</para></listitem>
144 <listitem><para><emphasis>Make kernel configuration changes if applicable</emphasis>:
145 If your situation calls for changing the kernel's
146 configuration, you can use
147 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'><filename>menuconfig</filename></ulink>,
148 which allows you to interactively develop and test the
149 configuration changes you are making to the kernel.
150 Saving changes you make with
151 <filename>menuconfig</filename> updates
152 the kernel's <filename>.config</filename> file.
153 <note><title>Warning</title>
154 Try to resist the temptation to directly edit an
155 existing <filename>.config</filename> file, which is
156 found in the Build Directory among the source code
157 used for the build (e.g. see the workflow illustration
158 in the
159 "<link linkend='kernel-modification-workflow'>Kernel Modification Workflow</link>"
160 section).
161 Doing so, can produce unexpected results when the
162 OpenEmbedded build system regenerates the configuration
163 file.
164 </note>
165 Once you are satisfied with the configuration
166 changes made using <filename>menuconfig</filename>
167 and you have saved them, you can directly compare the
168 resulting <filename>.config</filename> file against an
169 existing original and gather those changes into a
170 <link linkend='creating-config-fragments'>configuration fragment file</link>
171 to be referenced from within the kernel's
172 <filename>.bbappend</filename> file.</para>
173
174 <para>Additionally, if you are working in a BSP layer
175 and need to modify the BSP's kernel's configuration,
176 you can use the
177 <ulink url='&YOCTO_DOCS_BSP_URL;#managing-kernel-patches-and-config-items-with-yocto-kernel'><filename>yocto-kernel</filename></ulink>
178 script as well as <filename>menuconfig</filename>.
179 The <filename>yocto-kernel</filename> script lets
180 you interactively set up kernel configurations.
181 </para></listitem>
182 <listitem><para><emphasis>Rebuild the kernel image with your changes</emphasis>:
183 Rebuilding the kernel image applies your changes.
184 </para></listitem>
185 </orderedlist>
186 </para>
187 </section>
188 </section>
189</section>
190
191<section id="dev-modifying-source-code"> 44<section id="dev-modifying-source-code">
192 <title>Modifying Source Code</title> 45 <title>Modifying Source Code</title>
193 46