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

View File

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