kernel-dev: Re-write of the "Kernel Types" section.

First real re-write of this section.

(From yocto-docs rev: 636a852d4748904df6794bef391f7f5ef3db3c0f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark 2013-01-09 12:31:21 -08:00 committed by Richard Purdie
parent 48f8d9c2cc
commit 03dce08b4e
1 changed files with 40 additions and 34 deletions

View File

@ -914,47 +914,50 @@ will want to specify in the KERNEL_FEATURES variable of the Linux kernel recipe
<title>Kernel Types</title>
<para>
Kernel types, or <filename>ktypes</filename>, are used to
aggregate all non-hardware configuration fragments together
with any patches you want to use for all Linux kernel builds
of the specified <filename>ktype</filename>.
In short, <filename>ktypes</filename> are where you define a
high-level kernel policy.
Syntactically, however, they are no different than features
as described in the previous section.
The <filename>ktype</filename> is selected by the
<filename>LINUX_KERNEL_TYPE</filename> variable in the recipe.
A kernel type defines a high-level kernel policy by
aggregating non-hardware configuration fragments with
patches you want to use when building a Linux kernels of a
specific type.
Syntactically, kernel types are no different than features
as described in the "<link linkend='features'>Features</link>"
section.
The <filename>LINUX_KERNEL_TYPE</filename> variable in the kernel
recipe selects the kernel type.
See the "<link linkend='using-kernel-metadata-in-a-recipe'>Using Kernel Metadata in a Recipe</link>"
section for more information.
</para>
<para>
By way of example, the linux-yocto-3.4 tree defines three
<filename>ktypes</filename>: standard, tiny, and preempt-rt.
As an example, the <filename>linux-yocto-3.4</filename>
tree defines three kernel types: "standard",
"tiny", and "preempt-rt":
<itemizedlist>
<listitem><para>standard:
Includes the generic Linux kernel
policy of the Yocto Project linux-yocto kernel recipes.
This includes things like which file systems, which
networking options, which core kernel features, and which
<listitem><para>"standard":
Includes the generic Linux kernel policy of the Yocto
Project linux-yocto kernel recipes.
This policy includes, among other things, which file
systems, networking options, core kernel features, and
debugging and tracing options are supported.
</para></listitem>
<listitem><para>preempt-rt:
<listitem><para>"preempt-rt":
Applies the <filename>PREEMPT_RT</filename>
patches and the configuration options required to
build a real-time Linux kernel.
It inherits from standard.</para></listitem>
<listitem><para>tiny:
Independent from the standard configuration
and defines a bare minimum configuration meant to serve as a
This kernel type inherits from the "standard" kernel type.
</para></listitem>
<listitem><para>"tiny":
Defines a bare minimum configuration meant to serve as a
base for very small Linux kernels.
Tiny does not currently include any source changes, but it
might in the future.</para></listitem>
The "tiny" kernel type is independent from the "standard"
configuration.
Although the "tiny" kernel type does not currently include
any source changes, it might in the future.
</para></listitem>
</itemizedlist>
</para>
<para>
The standard kernel type is defined by
The "standard" kernel type is defined by
<filename>standard.scc</filename>:
<literallayout class='monospaced'>
# Include this kernel type fragment to get the standard features and
@ -981,21 +984,24 @@ will want to specify in the KERNEL_FEATURES variable of the Linux kernel recipe
</para>
<para>
As with any <filename>scc</filename> file, a
<filename>ktype</filename> definition can aggregate other
<filename>scc</filename> files with the
<filename>include</filename> command, or directly pull in
As with any <filename>.scc</filename> file, a
kernel type definition can aggregate other
<filename>.scc</filename> files with
<filename>include</filename> commands.
These definitions can also directly pull in
configuration fragments and patches with the
<filename>kconf</filename> and <filename>patch</filename>
commands, respectively.
</para>
<note>
It is not strictly necessary to create a
<filename>ktype scc</filename> file.
The BSP file can define the <filename>ktype</filename> implicitly
with a <filename>define KTYPE myktype</filename> line. See the
next section for more information.
It is not strictly necessary to create a kernel type
<filename>.scc</filename> file.
The Board Support Package (BSP) file can implicitly define
the kernel type using a <filename>define KTYPE myktype</filename>
line.
See the "<link linkend='bsp-descriptions'>BSP Descriptions</link>"
section for more information.
</note>
<para>