documentation/dev-manual/dev-manual-kernel-appendix.xml: general updates

I made a pass through the book to clean up all areas in preparation to
running the examples again.  Most changes were punctuation, manual
section reference formats, and wordings.

(From yocto-docs rev: 0d054f79c82ddc204938dea187312d1a80d0a2e1)

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 2011-10-04 06:54:04 -07:00 committed by Richard Purdie
parent 8a48ec4297
commit 57746012d0
1 changed files with 71 additions and 77 deletions

View File

@ -47,7 +47,7 @@
<listitem><para>The <filename>poky-extras</filename> Git repository placed <listitem><para>The <filename>poky-extras</filename> Git repository placed
within the local Yocto Project files Git repository</para></listitem> within the local Yocto Project files Git repository</para></listitem>
<listitem><para>A bare clone of the Linux Yocto kernel upstream Git <listitem><para>A bare clone of the Linux Yocto kernel upstream Git
repository that you want to modify repository to which you want to push your modifications.
</para></listitem> </para></listitem>
<listitem><para>A copy of that bare clone in which you make your source <listitem><para>A copy of that bare clone in which you make your source
modifcations</para></listitem> modifcations</para></listitem>
@ -56,9 +56,10 @@
<para> <para>
The following figure summarizes these four areas. The following figure summarizes these four areas.
Within each rectangular that represents a data structure an URL appears at the Within each rectangular that represents a data structure, a
host development directory pathname appears at the
lower left-hand corner of the box. lower left-hand corner of the box.
These URLs are the locations used in this example. These pathnames are the locations used in this example.
The figure also provides key statements and commands used during the kernel The figure also provides key statements and commands used during the kernel
modification process: modification process:
</para> </para>
@ -74,13 +75,12 @@
<listitem><para><emphasis>Local Yocto Project Files Git Repository:</emphasis> <listitem><para><emphasis>Local Yocto Project Files Git Repository:</emphasis>
This area contains all the metadata that supports building images in the This area contains all the metadata that supports building images in the
Yocto Project build environment - the local Yocto Project files. Yocto Project build environment - the local Yocto Project files.
The Local Yocto Project files Git repository also contains the build directory The local Yocto Project files Git repository also contains the build directory
and a configuration directory that let you control the build. and a configuration directory that let you control the build.
Note also that in this example the repository also contains the Note also that in this example, the repository also contains the
<filename>poky-extras</filename> Git repository.</para> <filename>poky-extras</filename> Git repository.</para>
<para>See the bulleted item <para>See the bulleted item
<link linkend='local-yp-release'>Yocto Project Release</link> in "<link linkend='local-yp-release'>Yocto Project Release</link>"
<xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual
for information on how to get these files.</para></listitem> for information on how to get these files.</para></listitem>
<listitem><para><emphasis><filename>poky-extras</filename> Git Repository:</emphasis> <listitem><para><emphasis><filename>poky-extras</filename> Git Repository:</emphasis>
This area contains the <filename>meta-kernel-dev</filename> layer, This area contains the <filename>meta-kernel-dev</filename> layer,
@ -91,9 +91,8 @@
(or really any) kernel recipes that faciliate the creation and development (or really any) kernel recipes that faciliate the creation and development
of kernel features, BSPs or configurations.</para> of kernel features, BSPs or configurations.</para>
<para>See the bulleted item <para>See the bulleted item
<link linkend='poky-extras-repo'>The "<link linkend='poky-extras-repo'>The
<filename>poky-extras</filename> Git Repository</link> in <filename>poky-extras</filename> Git Repository</link>"
<xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual
for information on how to get these files.</para></listitem> for information on how to get these files.</para></listitem>
<listitem><para><emphasis>Bare Clone of the Linux Yocto kernel:</emphasis> <listitem><para><emphasis>Bare Clone of the Linux Yocto kernel:</emphasis>
This bare Git repository tracks the upstream Git repository of the Linux This bare Git repository tracks the upstream Git repository of the Linux
@ -105,8 +104,7 @@
<filename>poky-extras</filename> repository points to the bare clone <filename>poky-extras</filename> repository points to the bare clone
so that the build process can locate the locally changed source files.</para> so that the build process can locate the locally changed source files.</para>
<para>See the bulleted item <para>See the bulleted item
<link linkend='local-kernel-files'>Linux Yocto Kernel</link> in "<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
<xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual
for information on how to set up the bare clone. for information on how to set up the bare clone.
</para></listitem> </para></listitem>
<listitem><para><emphasis>Copy of the Linux Yocto Kernel Bare Clone:</emphasis> <listitem><para><emphasis>Copy of the Linux Yocto Kernel Bare Clone:</emphasis>
@ -114,13 +112,13 @@
Any changes you make to files in this location need to ultimately be pushed Any changes you make to files in this location need to ultimately be pushed
to the bare clone using the <filename>git push</filename> command.</para> to the bare clone using the <filename>git push</filename> command.</para>
<para>See the bulleted item <para>See the bulleted item
"<link linkend='local-kernel-files'>Linux Yocto Kernel</link>" earlier in this manual "<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
for information on how to set up the bare clone. for information on how to set up the bare clone.
<note>Typically, Git workflows follow a scheme where changes made to a local area <note>Typically, Git workflows follow a scheme where changes made to a local area
are pulled into a Git repository. are pulled into a Git repository.
However, because the <filename>git pull</filename> command does not work However, because the <filename>git pull</filename> command does not work
with bare clones, this workflow pushes changes to the with bare clones, this workflow pushes changes to the
repository even though other more complicated methods do exist that repository even though you could use other more complicated methods to
get changes into the bare clone.</note> get changes into the bare clone.</note>
</para></listitem> </para></listitem>
</itemizedlist> </itemizedlist>
@ -136,8 +134,7 @@
This example uses <filename>poky</filename> as the root directory of the This example uses <filename>poky</filename> as the root directory of the
local Yocto Project files Git repository. local Yocto Project files Git repository.
See the bulleted item See the bulleted item
<link linkend='local-yp-release'>Yocto Project Release</link> in "<link linkend='local-yp-release'>Yocto Project Release</link>"
<xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual
for information on how to get these files. for information on how to get these files.
</para> </para>
@ -151,14 +148,14 @@
$ git branch -a $ git branch -a
$ git tag -l $ git tag -l
</literallayout> </literallayout>
This example uses the Yocto Project 1.1_M3 Release, This example uses the Yocto Project 1.1 Release code named "edison",
which maps to the <filename>1.1_M3</filename> branch in the repository. which maps to the <filename>edison</filename> branch in the repository.
The following commands create and checkout the local <filename>1.1_M3</filename> The following commands create and checkout the local <filename>edison</filename>
branch: branch:
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ git checkout -b 1.1_M3 origin/1.1_M3 $ git checkout -b edison origin/edison
Branch 1.1_M3 set up to track remote branch 1.1_M3 from origin. Branch edison set up to track remote branch edison from origin.
Switched to a new branch '1.1_M3' Switched to a new branch 'edison'
</literallayout> </literallayout>
</para> </para>
</section> </section>
@ -170,9 +167,8 @@
This example places the <filename>poky-extras</filename> Git repository inside This example places the <filename>poky-extras</filename> Git repository inside
of <filename>poky</filename>. of <filename>poky</filename>.
See the bulleted item See the bulleted item
<link linkend='poky-extras-repo'>The "<link linkend='poky-extras-repo'>The
<filename>poky-extras</filename> Git Repository</link> in <filename>poky-extras</filename> Git Repository</link>"
<xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual
for information on how to get the <filename>poky-extras</filename> repository. for information on how to get the <filename>poky-extras</filename> repository.
</para> </para>
</section> </section>
@ -185,8 +181,7 @@
Thus, you need to create a bare clone of that kernel and then make a copy of the Thus, you need to create a bare clone of that kernel and then make a copy of the
bare clone. bare clone.
See the bulleted item See the bulleted item
<link linkend='local-kernel-files'>Linux Yocto Kernel</link> in "<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
<xref linkend='getting-setup'>Getting Setup</xref> earlier in this manual
for information on how to do that. for information on how to do that.
</para> </para>
@ -230,7 +225,9 @@
of cores your machine supports and set <filename>PARALLEL_MAKE</filename> to one and of cores your machine supports and set <filename>PARALLEL_MAKE</filename> to one and
a half times the number of cores your machine supports. a half times the number of cores your machine supports.
</note> </note>
The following commands build the default <filename>qemux86</filename> image: The following two commands build the default <filename>qemux86</filename> image and
<filename>source</filename> build environment setup script.
If necessary, the script creates the build directory:
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ cd ~/poky $ cd ~/poky
$ source oe-init-build-env $ source oe-init-build-env
@ -248,15 +245,14 @@
meta-ide-support meta-ide-support
You can also run generated qemu images with a command like 'runqemu qemux86' You can also run generated qemu images with a command like 'runqemu qemux86'
$ bitbake -k core-image-minimal
</literallayout> </literallayout>
</para> </para>
<para> <para>
The <filename>source</filename> command sets up the build environment and, The following <filename>bitbake</filename> command starts the build:
if necessary, creates the build directory. <literallayout class='monospaced'>
The following <filename>bitbake</filename> command starts the build. $ bitbake -k core-image-minimal
</literallayout>
<note>Be sure to check the settings in the <filename>local.conf</filename> <note>Be sure to check the settings in the <filename>local.conf</filename>
before starting the build.</note> before starting the build.</note>
</para> </para>
@ -380,15 +376,16 @@
change the target architecture of the machine you are building or you move change the target architecture of the machine you are building or you move
the bare clone, copy of the clone, or the <filename>poky-extras</filename> repository: the bare clone, copy of the clone, or the <filename>poky-extras</filename> repository:
<itemizedlist> <itemizedlist>
<listitem><para><emphasis>Build for the Correct Target Architecture</emphasis> - The <listitem><para><emphasis>Build for the Correct Target Architecture:</emphasis> The
<filename>local.conf</filename> file in the build directory defines the build's <filename>local.conf</filename> file in the build directory defines the build's
target architecture. target architecture.
By default, <filename>MACHINE</filename> is set to By default, <filename>MACHINE</filename> is set to
<filename>qemux86</filename>, which specifies a 32-bit Intel Architecture <filename>qemux86</filename>, which specifies a 32-bit
<trademark class='registered'>Intel</trademark> Architecture
target machine suitable for the QEMU emulator. target machine suitable for the QEMU emulator.
In this example, <filename>MACHINE</filename> is correctly configured. In this example, <filename>MACHINE</filename> is correctly configured.
</para></listitem> </para></listitem>
<listitem><para><emphasis>Optimize Build Time</emphasis> - Also in the <listitem><para><emphasis>Optimize Build Time:</emphasis> Also in the
<filename>local.conf</filename> file are two variables that can speed your <filename>local.conf</filename> file are two variables that can speed your
build time if your host supports multi-core and multi-thread capabilities: build time if your host supports multi-core and multi-thread capabilities:
<filename>BB_NUMBER_THREADS</filename> and <filename>PARALLEL_MAKE</filename>. <filename>BB_NUMBER_THREADS</filename> and <filename>PARALLEL_MAKE</filename>.
@ -397,7 +394,7 @@
cores and setting <filename>PARALLEL_MAKE</filename> to one and a half times the cores and setting <filename>PARALLEL_MAKE</filename> to one and a half times the
number of cores.</para></listitem> number of cores.</para></listitem>
<listitem><para><emphasis>Identify Your <filename>meta-kernel-dev</filename> <listitem><para><emphasis>Identify Your <filename>meta-kernel-dev</filename>
Layer</emphasis> - The <filename>BBLAYERS</filename> variable in the Layer:</emphasis> The <filename>BBLAYERS</filename> variable in the
<filename>bblayers.conf</filename> file found in the <filename>bblayers.conf</filename> file found in the
<filename>poky/build/conf</filename> directory needs to have the path to your local <filename>poky/build/conf</filename> directory needs to have the path to your local
<filename>meta-kernel-dev</filename> layer. <filename>meta-kernel-dev</filename> layer.
@ -414,7 +411,7 @@
/home/scottrif/poky/poky-extras/meta-kernel-dev \ /home/scottrif/poky/poky-extras/meta-kernel-dev \
" "
</literallayout></para></listitem> </literallayout></para></listitem>
<listitem><para><emphasis>Identify Your Source Files</emphasis> - In the <listitem><para><emphasis>Identify Your Source Files:</emphasis> In the
<filename>linux-yocto_3.0.bbappend</filename> file located in the <filename>linux-yocto_3.0.bbappend</filename> file located in the
<filename>poky-extras/meta-kernel-dev/recipes-kernel/linux</filename> <filename>poky-extras/meta-kernel-dev/recipes-kernel/linux</filename>
directory, you need to identify the location of the directory, you need to identify the location of the
@ -427,7 +424,7 @@
<literallayout class='monospaced'> <literallayout class='monospaced'>
KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.0.git KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.0.git
</literallayout></para></listitem> </literallayout></para></listitem>
<listitem><para><emphasis>Specify the Kernel Machine</emphasis> - Also in the <listitem><para><emphasis>Specify the Kernel Machine:</emphasis> Also in the
<filename>linux-yocto_3.0.bbappend</filename> file, you need to specify <filename>linux-yocto_3.0.bbappend</filename> file, you need to specify
the kernel machine with the following statement: the kernel machine with the following statement:
<literallayout class='monospaced'> <literallayout class='monospaced'>
@ -457,14 +454,14 @@
<orderedlist> <orderedlist>
<listitem><para>Your environment should be set up since you previously sourced <listitem><para>Your environment should be set up since you previously sourced
the <filename>oe-init-build-env</filename> script. the <filename>oe-init-build-env</filename> script.
If it isn't, source the script again from <filename>poky</filename> If it isn't, source the script again from <filename>poky</filename>.
</para></listitem> </para></listitem>
<listitem><para>Be sure old images are cleaned out by running the <listitem><para>Be sure old images are cleaned out by running the
<filename>cleanall</filename> BitBake task as follows: <filename>cleanall</filename> BitBake task as follows:
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ bitbake -c cleanall linux-yocto $ bitbake -c cleanall linux-yocto
</literallayout></para> </literallayout></para>
<para><note>Never remove by hand any files from the <filename>tmp/deploy</filename> <para><note>Never remove any files by hand from the <filename>tmp/deploy</filename>
directory insided the local Yocto Project files build directory. directory insided the local Yocto Project files build directory.
Always use the BitBake <filename>cleanall</filename> task to clear Always use the BitBake <filename>cleanall</filename> task to clear
out previous builds.</note></para></listitem> out previous builds.</note></para></listitem>
@ -472,14 +469,12 @@
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ bitbake -k core-image-minimal $ bitbake -k core-image-minimal
</literallayout></para></listitem> </literallayout></para></listitem>
</orderedlist> <listitem><para>Finally, boot the modified image in the QEMU emulator
</para> using this command:
<literallayout class='monospaced'>
<para>
Finally, boot the modified image in the QEMU emulator using this command:
<literallayout class='monospaced'>
$ runqemu qemux86 $ runqemu qemux86
</literallayout> </literallayout></para></listitem>
</orderedlist>
</para> </para>
<para> <para>
@ -501,8 +496,8 @@
<title>Changing the Kernel Configuration</title> <title>Changing the Kernel Configuration</title>
<para> <para>
This example changes the default behavior (off) of the Symmetric Multi-processing Support This example changes the default behavior, which is "off", of the Symmetric
(<filename>CONFIG_SMP</filename>) to on. Multi-processing Support (<filename>CONFIG_SMP</filename>) to "on".
It is a simple example that demonstrates how to reconfigure the kernel. It is a simple example that demonstrates how to reconfigure the kernel.
</para> </para>
@ -511,31 +506,29 @@
<para> <para>
If you took the time to work through the example that modifies the kernel source code If you took the time to work through the example that modifies the kernel source code
in <xref linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source in "<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source
Code</xref> you are set up to quickly work through this example. Code</link>" you are already set up to quickly work through this example.
If not, then work through the following list to prepare: If not, then work through the following list to prepare:
<itemizedlist> <itemizedlist>
<listitem><para><emphasis>Understand the development environment:</emphasis> <listitem><para><emphasis>Understand the development environment:</emphasis>
See <xref linkend='understanding-the-files-you-need'> See "<link linkend='understanding-the-files-you-need'>Understanding
Understanding the Files You Need</xref> for information.</para></listitem> the Files You Need</link>" for information.</para></listitem>
<listitem><para><emphasis>Set up the local Yocto Project files Git <listitem><para><emphasis>Set up the local Yocto Project files Git
repository:</emphasis> repository:</emphasis>
See <xref linkend='setting-up-the-local-yocto-project-files-git-repository'> See "<link linkend='setting-up-the-local-yocto-project-files-git-repository'>Setting
Setting Up the Local Yocto Project Files Git Repository</xref> for Up the Local Yocto Project Files Git Repository</link>" for
information.</para></listitem> information.</para></listitem>
<listitem><para><emphasis>Set up the <filename>poky-extras</filename> Git <listitem><para><emphasis>Set up the <filename>poky-extras</filename> Git
repository:</emphasis> repository:</emphasis>
See <xref linkend='setting-up-the-poky-extras-git-repository'> See "<link linkend='setting-up-the-poky-extras-git-repository'>Setting
Setting Up <filename>poky-extras</filename> Git repository</xref> for Up <filename>poky-extras</filename> Git repository</link>" for
information.</para></listitem> information.</para></listitem>
<listitem><para><emphasis>Set up the the bare clone and its copy:</emphasis> <listitem><para><emphasis>Set up the the bare clone and its copy:</emphasis>
See <xref linkend='setting-up-the-bare-clone-and-its-copy'> See "<link linkend='setting-up-the-bare-clone-and-its-copy'>Setting Up the
Setting Up the Bare Clone and its Copy</xref> for information. Bare Clone and its Copy</link>" for information.</para></listitem>
</para></listitem>
<listitem><para><emphasis>Build the default QEMU kernel image:</emphasis> <listitem><para><emphasis>Build the default QEMU kernel image:</emphasis>
See <xref linkend='building-and-booting-the-default-qemu-kernel-image'> See "<link linkend='building-and-booting-the-default-qemu-kernel-image'>Building
Building and Booting the Default QEMU Kernel image</xref> and Booting the Default QEMU Kernel image</link>" for information.
for information.
Do not boot the image in the QEMU emulator at this point.</para></listitem> Do not boot the image in the QEMU emulator at this point.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
@ -546,7 +539,7 @@
<para> <para>
By default, <filename>CONFIG_SMP</filename> supports single processor machines. By default, <filename>CONFIG_SMP</filename> supports single processor machines.
To see this default setting from within the QEMU emulator boot your image using To see this default setting from within the QEMU emulator, boot your image using
the emulator as follows: the emulator as follows:
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ runqemu qemux86 $ runqemu qemux86
@ -572,7 +565,7 @@
<para> <para>
The <filename>menuconfig</filename> tool provides an interactive method with which The <filename>menuconfig</filename> tool provides an interactive method with which
to set kernel configurations. to set kernel configurations.
You need to run <filename>menuconfig</filename> inside the BitBake environment. You need to run <filename>menuconfig</filename> inside the Yocto BitBake environment.
Thus, the environment must be set up using the <filename>oe-init-build-env</filename> Thus, the environment must be set up using the <filename>oe-init-build-env</filename>
script found in the Yocto Project files Git repository build directory. script found in the Yocto Project files Git repository build directory.
If you have not sourced this script do so with the following commands: If you have not sourced this script do so with the following commands:
@ -585,7 +578,7 @@
<para> <para>
After setting up the environment to run <filename>menuconfig</filename>, you are ready After setting up the environment to run <filename>menuconfig</filename>, you are ready
to use the tool to interactively change the kernel configuration. to use the tool to interactively change the kernel configuration.
In this example we are basing our changes on the <filename>linux-yocto-3.0</filename> In this example, we are basing our changes on the <filename>linux-yocto-3.0</filename>
kernel. kernel.
The Yocto Project build environment recognizes this kernel as The Yocto Project build environment recognizes this kernel as
<filename>linux-yocto</filename>. <filename>linux-yocto</filename>.
@ -605,14 +598,15 @@
</para> </para>
<para> <para>
Once you save the selection the <filename>.config</filename> configuration file Once you save the selection, the <filename>.config</filename> configuration file
is updated. is updated.
This is the file that the build system uses to configure the Linux Yocto kernel This is the file that the build system uses to configure the Linux Yocto kernel
when it is built. when it is built.
You can find and examine this file in the Yocto Project files Git repository in You can find and examine this file in the Yocto Project files Git repository in
the build directory. the build directory.
This example uses the following. This example uses the following.
Note that this example directory is arificially split in order to make it more Note that this example directory is artificially split and many of the characters
in the actually filename are omitted in order to make it more
readable: readable:
<literallayout class='monospaced'> <literallayout class='monospaced'>
~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-2.6.37+git1+84f... ~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-2.6.37+git1+84f...
@ -621,7 +615,7 @@
</para> </para>
<para> <para>
Within the <filename>.config</filename> you can see the following setting: Within the <filename>.config</filename> file, you can see the following setting:
<literallayout class='monospaced'> <literallayout class='monospaced'>
CONFIG_SMP=y CONFIG_SMP=y
</literallayout> </literallayout>
@ -630,13 +624,12 @@
<para> <para>
A good method to isolate changed configurations is to use a combination of the A good method to isolate changed configurations is to use a combination of the
<filename>menuconfig</filename> tool and simple shell commands. <filename>menuconfig</filename> tool and simple shell commands.
Before changing configurations with <filename>menuconfig</filename> simply rename Before changing configurations with <filename>menuconfig</filename>, simply rename
the default <filename>.config</filename>, use <filename>menuconfig</filename> to make the default <filename>.config</filename>, use <filename>menuconfig</filename> to make
as many changes an you want and save them, then compare the renamed configuration as many changes an you want and save them, then compare the renamed configuration
file against the newly created file. file against the newly created file.
You can use the resulting differences as your base to create configuration fragments You can use the resulting differences as your base to create configuration fragments
to permanently save in your kernel layer. to permanently save in your kernel layer.
For an example of this procedure, see [WRITER'S NOTE: need forwarding link to section].
</para> </para>
</section> </section>
@ -644,7 +637,7 @@
<title>Recompiling the Kernel and Testing the New Configuration</title> <title>Recompiling the Kernel and Testing the New Configuration</title>
<para> <para>
At this point you are ready to recompile your kernel image with At this point, you are ready to recompile your kernel image with
the new setting in effect using the BitBake commands below: the new setting in effect using the BitBake commands below:
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ bitbake linux-yocto -c compile -f $ bitbake linux-yocto -c compile -f
@ -671,7 +664,7 @@
</para> </para>
<para> <para>
From the output you can see that you have successfully reconfigured the kernel. From the output, you can see that you have successfully reconfigured the kernel.
</para> </para>
</section> </section>
</section> </section>
@ -680,13 +673,14 @@
<title>Adding Kernel Recipes</title> <title>Adding Kernel Recipes</title>
<para> <para>
This section presents an example that adds kernel recipes, which provide A future release of this manual will present an example that adds kernel recipes, which provide
new functionality to the kernel. new functionality to the kernel.
</para> </para>
<para> <para>
[Example to be supplied] <imagedata fileref="figures/wip.png"
</para> width="2in" depth="3in" align="center" scalefit="1" />
</para>
</section> </section>