summaryrefslogtreecommitdiffstats
path: root/documentation/kernel-manual
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2012-02-07 15:47:22 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-03-08 12:07:52 -0800
commit70ae82a1612bb8c723088d248ddc254c6aa56570 (patch)
tree3fc17e344ac518b40cc310029ac90bbbccff0197 /documentation/kernel-manual
parent3ecda3fb021221013a82f1bbf1528a2fa2519247 (diff)
downloadpoky-70ae82a1612bb8c723088d248ddc254c6aa56570.tar.gz
documentation/kernel-manual/kernel-concepts.xml: New kernel section
This section is the first attempt at a new, high-level discussion of Linux Yocto Kernel configuration. The section is supposed to introduce the concepts only and leave the "How to" stuff for other areas of the documentation. I have thrown this section out to the Yocto Projects Discussion list for feedback. It will change. (From yocto-docs rev: 8d0eabe88e50d1a16fda4b845267c4ee240ce540) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/kernel-manual')
-rw-r--r--documentation/kernel-manual/kernel-concepts.xml110
1 files changed, 49 insertions, 61 deletions
diff --git a/documentation/kernel-manual/kernel-concepts.xml b/documentation/kernel-manual/kernel-concepts.xml
index 9a599f2a8c..27b32098ec 100644
--- a/documentation/kernel-manual/kernel-concepts.xml
+++ b/documentation/kernel-manual/kernel-concepts.xml
@@ -306,75 +306,63 @@
306 <section id='kernel-configuration'> 306 <section id='kernel-configuration'>
307 <title>Kernel Configuration</title> 307 <title>Kernel Configuration</title>
308 <para> 308 <para>
309 Kernel configuration, along with kernel features, defines how a kernel image is 309 Kernel configuration, along with kernel features, defines how a Linux Yocto
310 built. 310 kernel image is built.
311 Through configuration settings, you can customize a Linux Yocto kernel to be 311 Through configuration settings, you can customize a Linux Yocto kernel to be
312 specific to particular hardware. 312 specific to particular hardware.
313 For example, you can specify sound support or networking support. 313 For example, you can specify sound support or networking support.
314 This section describes basic concepts behind Kernel configuration within the 314 This section describes basic concepts behind Kernel configuration within the
315 Yocto Project. 315 Yocto Project and references you to other areas for specific configuration
316 applications.
316 </para> 317 </para>
317 318
318 <para> 319 <para>
319 WRITER NOTES: 320 Conceptually, Linux Yocto kernel configuration occurs similarly to that needed for any
320 </para> 321 Linux kernel.
321 322 The Linux Yocto kernel build process uses a <filename>.config</filename>, which
322 <para> 323 is created through the Linux Kernel Coinfiguration (LKC) tool.
323 A package consists of tasks and BitBake, in most cases, behaves by fetching, unpacking, 324 You can directly set various configurations in the
324 patching, configuring, compiling, installing, packaging, writing, and building. 325 <filename>.config</filename> file by using the <filename>menuconfig</filename>
325 Configuration is part of the standard BitBake process. 326 tool as built by BitBake.
326 327 You can also affect the configurations in the file by using configuration fragments.
327 <para> 328 <note>
328 Explain how <filename>.config</filename> is used when the kernel image is built. 329 It is not recommended that you edit the <filename>.config</filename> file directly.
329 Describe the role of <filename>menuconfig</filename> regarding the 330 </note>
330 <filename>.config</filename>. 331 Here is are some brief descriptions of the ways you can affect the
331 Locate the <filename>.config</filename> for the user. 332 <filename>.config</filename> file:
332 Not recommended to edit the <filename>.config</filename> file directly. 333 <itemizedlist>
333 You can use BitBake to build and invoke the <filename>menuconfig</filename> 334 <listitem><para><emphasis>The <filename>menuconfig</filename> Tool:</emphasis>
334 tool. 335 One of many front-ends that allows you to define kernel configurations.
335 </para> 336 Some others are <filename>make config</filename>,
336 337 <filename>make nconfig</filename>, and <filename>make gconfig</filename>.
337 <para> 338 In the Yocto Project environment, you must use BitBake to build the
338 Introduce the configuration fragment. 339 <filename>menuconfig</filename> tool before you can use it to define
339 Step through the life of a configuration fragment from idea or need to 340 configurations:
340 change something in the kernel to how it is used when the kernel image is built. 341 <literallayout class='monospaced'>
341 Describe how configuration fragments are created and where they live.
342 Make sure the syntax of configuration fragments is understood.
343 </para>
344
345 <para>
346 Talk in general how the user creates a configuration fragment.
347 Point to example B.2 of the YP Development Manual as a way to use
348 <filename>menuconfig</filename>.
349 </para>
350
351 <para>
352 The tool <filename>menuconfig</filename> allows you to choose the features of the
353 Linux Yocto kernel that will be compiled.
354 This tool is a convenient method to alter the <filename>.config</filename> file.
355 You can use a simple interface to scroll through kernel features and disable
356 and enable configruation variables.
357 When you save your changes, the contents of the <filename>.config</filename>
358 are altered.
359 You can get general information on <filename>menuconfig</filename> at
360 <ulink url='http://en.wikipedia.org/wiki/Menuconfig'></ulink>.
361 </para>
362
363 <para>
364 The Yocto Project employs <filename>menuconfig</filename> by invoking it through
365 BitBake as follows after making sure the environment setup script has been sourced:
366 <literallayout class='monospaced'>
367 $ bitbake linux-yocto -c menuconfig 342 $ bitbake linux-yocto -c menuconfig
368 </literallayout> 343 </literallayout>
369 You can see how <filename>menuconfig</filename> is used to change a simple 344 After the tool is built, you can interact with it normally.
370 kernel configuration in the 345 You can see how <filename>menuconfig</filename> is used to change a simple
371 "<ulink url='http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#changing-the-config-smp-configuration-using-menuconfig'>Changing the&nbsp;&nbsp;<filename>CONFIG_SMP</filename> 346 kernel configuration in the
372 Configuration Using&nbsp;&nbsp;<filename>menuconfig</filename></ulink>" section of 347 "<ulink url='http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#changing-the-config-smp-configuration-using-menuconfig'>Changing the&nbsp;&nbsp;<filename>CONFIG_SMP</filename> Configuration Using&nbsp;&nbsp;<filename>menuconfig</filename></ulink>"
373 The Yocto Project Development Manual. 348 section of The Yocto Project Development Manual.
374 </para> 349 For general information on <filename>menuconfig</filename>, see
375 350 <ulink url='http://en.wikipedia.org/wiki/Menuconfig'></ulink>.
376 <para> 351 </para></listitem>
377 END WRITER NOTES 352 <listitem><para><emphasis>Configuration Fragments:</emphasis> A file with a
353 list of kernel options just as they would appear syntactically in the
354 <filename>.config</filename> file.
355 Configuration fragments are typically logical groupings and are assembled
356 by the Yocto Project build system to produce input used by the LKC
357 that ultimately generates the <filename>.config</filename> file.</para>
358 <para>The
359 <filename><ulink url='http://www.yoctoproject.org/docs/latest/poky-ref-manual/poky-ref-manual.html#var-KERNEL_FEATURES'>KERNEL_FEATURES</ulink></filename>
360 variable can be used to list configuration fragments.
361 For further discussion on applying configuration fragments, see the
362 "<ulink url='http://www.yoctoproject.org/docs/latest/bsp-guide/bsp-guide.html#linux-kernel-configuration'>Linux Kernel Configuration</ulink>"
363 section in the Yocto Project Board Support Package (BSP) Guide.
364 </para></listitem>
365 </itemizedlist>
378 </para> 366 </para>
379 </section> 367 </section>
380 368