summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2011-08-10 16:27:45 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-08-15 15:27:02 +0100
commitfe76c380ccafcdf95bc5f859cc26bd5b5788445f (patch)
tree15922e05f19cfd3df213ce505fc77ee7c577a0b3 /documentation
parent53a901e92e39af43686919e8566f789a4502d220 (diff)
downloadpoky-fe76c380ccafcdf95bc5f859cc26bd5b5788445f.tar.gz
documentation/dev-manual/dev-manual-model.xml: re-write of the kernel dev overview
After getting the example in kenerl example appendix working I discovered much that was wrong in this overview. The overview attempts to generalize all the situations for kernel modification. These include code changes, configuration changes, and the addition of new recipes. It also includes the situation where a developer wants to gather all the changes into a separate layer for distribution and for when they want to push them up the tree. (From yocto-docs rev: 5498d7b38d3a2f14befa82b66af9919a449e0f04) 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-model.xml85
1 files changed, 48 insertions, 37 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml
index fbdc2f0321..9607ab870b 100644
--- a/documentation/dev-manual/dev-manual-model.xml
+++ b/documentation/dev-manual/dev-manual-model.xml
@@ -299,50 +299,57 @@
299 <link linkend='local-yp-release'>Yocto Project Release</link> in 299 <link linkend='local-yp-release'>Yocto Project Release</link> in
300 <xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual. 300 <xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual.
301 </para></listitem> 301 </para></listitem>
302 <listitem><para><emphasis>Establish a local copy of the Linux Yocto kernel files on your 302 <listitem><para><emphasis>Setting up the <filename>poky-extras</filename> Git
303 system</emphasis>: In order to make modifications to the kernel you need a base 303 repository</emphasis>: This repository is the area for your configuration
304 kernel with which to work. 304 fragments, new kernel recipes, and the kernel <filename>.bbappend</filename>
305 You can set up a local Git repository of the kernel on which you are basing your 305 file used during the build.
306 modifications. 306 It is good practice to set this repository up inside the local Yocto
307 Project files Git repository.
307 For information on how to get these files, see the bulleted item 308 For information on how to get these files, see the bulleted item
309 <link linkend='poky-extras-repo'>The
310 <filename>poky-extras</filename> Git Repository</link> in
311 <xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual.
312 </para></listitem>
313 <listitem><para><emphasis>Establish a local copy of the Linux Yocto kernel files on your
314 system</emphasis>: In order to make modifications to the kernel you need two things:
315 a bare clone of the Linux Yocto kernel you are modifying and a copy of that
316 bare clone.
317 The bare clone is required by the build process and is the area to which you
318 push your kernel source changes.
319 The copy of the bare clone is a local Git repository that contains all the kernel's
320 source files.
321 You make your changes to the files in this copy of the bare clone.
322 For information on how to set these two items up, see the bulleted item
308 <link linkend='local-kernel-files'>Linux Yocto Kernel</link> in 323 <link linkend='local-kernel-files'>Linux Yocto Kernel</link> in
309 <xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual. 324 <xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual.
310 </para></listitem> 325 </para></listitem>
311 <listitem><para><emphasis>Establish a local kernel layer by copying the 326 <listitem><para><emphasis>Make changes to the kernel source code if
312 <filename>meta-skeleton</filename> layer</emphasis>: When you set up a kernel layer 327 applicable</emphasis>: Modifying the kernel does not always mean directly
313 for your changes you should follow a standard layout. 328 changing source files.
314 For kernel layers you can start with <filename>meta-skeleton</filename>, which 329 However, if you have to do this then you make the changes in the local
315 is a minimal, base kernel layer in the local Yocto Project files. 330 Git repository you set up to hold the source files (i.e. the copy of the
316 You can examine <filename>meta-skeleton</filename> 331 bare clone).
317 in the <filename>poky</filename> Git repository.</para> 332 Once the changes are made you need to use Git commands to commit the changes
318 <para>A layer is really just a location or area in which you place configuration 333 and then push them to the bare clone.</para></listitem>
319 fragments and recipes that modify your kernel.
320 The layer, in this case, would be where all the recipes that define those dependencies
321 are kept.
322 The key point for a layer is that it is an isolated area that contains
323 all the relevant information for the project that the Yocto Project build
324 system knows about.</para>
325 <para></para></listitem>
326 <listitem><para><emphasis>Prepare to use the <filename>menuconfig</filename> tool</emphasis>:
327 The tool <filename>menuconfig</filename> used within Bitbake provides an
328 interactive method with which you can configure the kernel.
329 In order to use <filename>menuconfig</filename> you need to first source an environment
330 setup script found in the local <filename>poky</filename> Git repository.
331 The script is named <filename>oe-init-build-env</filename>.</para></listitem>
332 <listitem><para><emphasis>Make kernel configuration changes 334 <listitem><para><emphasis>Make kernel configuration changes
333 to your local kernel layer</emphasis>: Use <filename>menuconfig</filename> 335 to your local kernel layer if applicable</emphasis>:
334 to enable and disable the configurations to the Linux Yocto kernel. 336 If your situation calls for changing the kernel's configuration you can
337 use <filename>menuconfig</filename>
338 to enable and disable kernel configurations.
335 Using <filename>menuconfig</filename> allows you to develop and test the 339 Using <filename>menuconfig</filename> allows you to develop and test the
336 configuration changes you are making to the kernel.</para></listitem> 340 configuration changes you are making to the kernel.</para></listitem>
337 <listitem><para><emphasis>Make kernel recipe changes to your new kernel 341 <listitem><para><emphasis>Add new kernel recipes</emphasis>: The standard
338 layer</emphasis>: The standard layer structure organizes recipe files you 342 layer structure organizes recipe files inside the
339 need to edit in several <filename>recipes-*</filename> directories within the 343 <filename>meta-kernel-dev</filename> layer that is within the
340 kernel layer. 344 <filename>poky-extras</filename> Git repository.
341 Recipe changes include altering recipes (<filename>.bb</filename> files), removing 345 If you need to add new kernel recipes you add them within this layer.
342 recipes you don't use, and adding new recipes that you need to support your hardware. 346 Also within this area you will find the <filename>.bbappend</filename>
347 file that appends information to the kernel's recipe file used during the
348 build.
343 </para></listitem> 349 </para></listitem>
344 <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the 350 <listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the
345 changes to your kernel layer there remains a few things 351 changes to your kernel (configurations, source code changes, recipe additions,
352 or recipe changes) there remains a few things
346 you need to do for the Yocto Project build system in order for it to create your image. 353 you need to do for the Yocto Project build system in order for it to create your image.
347 If you have not done so you need to get the build environment ready by sourcing 354 If you have not done so you need to get the build environment ready by sourcing
348 the environment setup script described earlier. 355 the environment setup script described earlier.
@@ -350,7 +357,9 @@
350 <para>The entire process for building an image is overviewed in the 357 <para>The entire process for building an image is overviewed in the
351 <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'> 358 <ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>
352 Building an Image</ulink> section of the Yocto Project Quick Start. 359 Building an Image</ulink> section of the Yocto Project Quick Start.
353 You might want to reference this information.</para></listitem> 360 You might want to reference this information.
361 Also, you should look at the detailed examples found in the appendices at
362 end of this manual.</para></listitem>
354 <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project uses the BitBake 363 <listitem><para><emphasis>Build the image</emphasis>: The Yocto Project uses the BitBake
355 tool to build images based on the type of image you want to create. 364 tool to build images based on the type of image you want to create.
356 You can find more information on BitBake 365 You can find more information on BitBake
@@ -366,7 +375,9 @@
366 in the kernel layer</emphasis>: Up to this point all the configuration changes to the 375 in the kernel layer</emphasis>: Up to this point all the configuration changes to the
367 kernel have been done and tested iteratively. 376 kernel have been done and tested iteratively.
368 Once they are tested and ready to go you can move them into the kernel layer, 377 Once they are tested and ready to go you can move them into the kernel layer,
369 which allows you to distribute the layer.</para></listitem> 378 which allows you to distribute the layer.
379 [WRITER'S NOTE: Not sure if the layer is meta-kernel-dev or if it would be
380 a new layer copied from the work done there.]</para></listitem>
370 <listitem><para><emphasis>Push your configuration and recipe changes upstream to the 381 <listitem><para><emphasis>Push your configuration and recipe changes upstream to the
371 linux Yocto Git repository (in-tree changes)</emphasis>: If the changes you made 382 linux Yocto Git repository (in-tree changes)</emphasis>: If the changes you made
372 are suited for all Linux Yocto users you might want to push the changes up into 383 are suited for all Linux Yocto users you might want to push the changes up into