kernel-dev: Eliminated "Generating Configuration Files" section.

This section was largely redundant now.  The small things that did
add value I placed in other areas of the chapter 2.  One was a new
section on expanding variables using bitbake -e.  Another was a bit
about the defconfig file.  And a small procedure on how to create
config fragments using the "diffconfig" command was retained.

Links from the dev-manual and the ref-manual were adjusted as well.

(From yocto-docs rev: 7059d3eac1fec20089cabf197503f1bec747686d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark
2017-09-27 13:09:54 -07:00
committed by Richard Purdie
parent 2e21a56a8a
commit fae276ea09
6 changed files with 104 additions and 119 deletions

View File

@@ -6770,9 +6770,6 @@ Some notes from Cal:
<filename>scripts/kconfig</filename> directory.</para> <filename>scripts/kconfig</filename> directory.</para>
<para>For more information on configuration fragments, <para>For more information on configuration fragments,
see the see the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>"
section of the Yocto Project Linux Kernel Development
Manual and the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#creating-config-fragments'>Creating Configuration Fragments</ulink>" "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#creating-config-fragments'>Creating Configuration Fragments</ulink>"
section in the Yocto Project Linux Kernel Development section in the Yocto Project Linux Kernel Development
Manual. Manual.

View File

@@ -319,8 +319,6 @@
</literallayout> </literallayout>
You can find information on configuration fragment files in the You can find information on configuration fragment files in the
"<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>" "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>"
section and in
the "<link linkend='generating-configuration-files'>Generating Configuration Files</link>"
section. section.
</para> </para>
@@ -347,7 +345,7 @@
<para> <para>
As described in the As described in the
"<link linkend='generating-configuration-files'>Generating Configuration Files</link>" "<link linkend='validating-configuration'>Validating Configuration</link>"
section, you can use the following BitBake command to audit your section, you can use the following BitBake command to audit your
configuration: configuration:
<literallayout class='monospaced'> <literallayout class='monospaced'>
@@ -634,7 +632,7 @@
For information on how to break a complete For information on how to break a complete
<filename>.config</filename> file into the various <filename>.config</filename> file into the various
configuration fragments, see the configuration fragments, see the
"<link linkend='generating-configuration-files'>Generating Configuration Files</link>" "<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>"
section. section.
</para> </para>

View File

@@ -1479,8 +1479,8 @@
<title>Using&nbsp;&nbsp;<filename>menuconfig</filename></title> <title>Using&nbsp;&nbsp;<filename>menuconfig</filename></title>
<para> <para>
The easiest way to define kernel configurations is to set them through the The easiest way to define kernel configurations is to set
<filename>menuconfig</filename> tool. them through the <filename>menuconfig</filename> tool.
This tool provides an interactive method with which This tool provides an interactive method with which
to set kernel configurations. to set kernel configurations.
For general information on <filename>menuconfig</filename>, see For general information on <filename>menuconfig</filename>, see
@@ -1495,8 +1495,8 @@
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink> <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
script found in the script found in the
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>. <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>.
You must also be sure of the state of your build's configuration You must also be sure of the state of your build's
in the configuration in the
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>. <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
The following commands initialize the BitBake environment, The following commands initialize the BitBake environment,
run the run the
@@ -1516,6 +1516,17 @@
After making your changes, simply exit the tool and save your After making your changes, simply exit the tool and save your
changes to create an updated version of the changes to create an updated version of the
<filename>.config</filename> configuration file. <filename>.config</filename> configuration file.
<note>
You can use the entire <filename>.config</filename> file
as the <filename>defconfig</filename> file.
For information on <filename>defconfig</filename> files,
see the
"<link linkend='changing-the-configuration'>Changing the Configuration</link>",
"<link linkend='using-an-in-tree-defconfig-file'>Using an In-Tree <filename>defconfig</filename> File</link>,
and
"<link linkend='creating-a-defconfig-file'>Creating a <filename>defconfig</filename> File</link>"
sections.
</note>
</para> </para>
<para> <para>
@@ -1655,10 +1666,8 @@
after applying the existing defconfig file configurations. after applying the existing defconfig file configurations.
</note> </note>
For more information on configuring the kernel, see the For more information on configuring the kernel, see the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#changing-the-configuration'>Changing the Configuration</ulink>" "<link link='changing-the-configuration'>Changing the Configuration</link>"
and section.
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>"
sections.
</para> </para>
</section> </section>
@@ -1695,6 +1704,7 @@
<para> <para>
It is simple to create a configuration fragment. It is simple to create a configuration fragment.
One method is to use shell commands.
For example, issuing the following from the shell creates a For example, issuing the following from the shell creates a
configuration fragment file named configuration fragment file named
<filename>my_smp.cfg</filename> that enables multi-processor <filename>my_smp.cfg</filename> that enables multi-processor
@@ -1710,6 +1720,66 @@
</note> </note>
</para> </para>
<para>
Another method is to create a configuration fragment using the
differences between two configuration files: one previously
created and saved, and one freshly created using the
<filename>menuconfig</filename> tool.
</para>
<para>
To create a configuration fragment using this method, follow
these steps:
<orderedlist>
<listitem><para>
<emphasis>Complete a Build Through Kernel Configuration:</emphasis>
Complete a build at least through the kernel
configuration task as follows:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c kernel_configme -f
</literallayout>
This step ensures that you create a
<filename>.config</filename> file from a known state.
Because situations exist where your build state might
become unknown, it is best to run this task prior
to starting <filename>menuconfig</filename>.
</para></listitem>
<listitem><para>
<emphasis>Launch <filename>menuconfig</filename>:</emphasis>
Run the <filename>menuconfig</filename> command:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c menuconfig
</literallayout>
</para></listitem>
<listitem><para>
<emphasis>Create the Configuration Fragment:</emphasis>
Run the <filename>diffconfig</filename>
command to prepare a configuration fragment.
The resulting file <filename>fragment.cfg</filename>
is placed in the
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}</filename> directory:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c diffconfig
</literallayout>
</para></listitem>
</orderedlist>
</para>
<para>
The <filename>diffconfig</filename> command creates a file
that is a list of Linux kernel <filename>CONFIG_</filename>
assignments.
See the "<link linkend='changing-the-configuration'>Changing the Configuration</link>"
section for additional information on how to use the output
as a configuration fragment.
<note>
You can also use this method to create configuration
fragments for a BSP.
See the "<link linkend='bsp-descriptions'>BSP Descriptions</link>"
section for more information.
</note>
</para>
<para> <para>
Where do you put your configuration fragment files? Where do you put your configuration fragment files?
You can place these files in an area pointed to by You can place these files in an area pointed to by
@@ -1976,6 +2046,24 @@
</section> </section>
</section> </section>
<section id='expanding-variables'>
<title>Expanding Variables</title>
<para>
Sometimes it is helpful to determine what a variable expands
to during a build.
You can do examine the values of variables by examining the
output of the <filename>bitbake -e</filename> command.
The output is long and is more easily managed in a text file,
which allows for easy searches:
<literallayout class='monospaced'>
$ bitbake -e virtual/kernel > <replaceable>some_text_file</replaceable>
</literallayout>
Within the text file, you can see exactly how each variable is
expanded and used by the OpenEmbedded build system.
</para>
</section>
<section id='working-with-a-dirty-kernel-version-string'> <section id='working-with-a-dirty-kernel-version-string'>
<title>Working with a "Dirty" Kernel Version String</title> <title>Working with a "Dirty" Kernel Version String</title>
@@ -2045,102 +2133,6 @@
"linux-yocto". "linux-yocto".
</para> </para>
<section id='generating-configuration-files'>
<title>Generating Configuration Files</title>
<para>
You can manipulate the <filename>.config</filename> file
used to build a linux-yocto recipe with the
<filename>menuconfig</filename> command as follows:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c menuconfig
</literallayout>
This command starts the Linux kernel configuration tool,
which allows you to prepare a new
<filename>.config</filename> file for the build.
When you exit the tool, be sure to save your changes
at the prompt.
</para>
<para>
The resulting <filename>.config</filename> file is
located in the build directory,
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-B'><filename>B</filename></ulink><filename>}</filename>,
which expands to
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}</filename><filename>/linux-</filename><filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></ulink><filename>}-${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink><filename>}-build</filename>.
You can use the entire <filename>.config</filename> file as the
<filename>defconfig</filename> file as described in the
"<link linkend='changing-the-configuration'>Changing the Configuration</link>" section.
For more information on the <filename>.config</filename> file,
see the
"<link linkend='using-menuconfig'>Using <filename>menuconfig</filename></link>"
section.
<note>
You can determine what a variable expands to by looking
at the output of the <filename>bitbake -e</filename>
command:
<literallayout class='monospaced'>
$ bitbake -e virtual/kernel
</literallayout>
Search the output for the variable in which you are
interested to see exactly how it is expanded and used.
</note>
</para>
<para>
A better method is to create a configuration fragment using the
differences between two configuration files: one previously
created and saved, and one freshly created using the
<filename>menuconfig</filename> tool.
</para>
<para>
To create a configuration fragment using this method, follow
these steps:
<orderedlist>
<listitem><para>Complete a build at least through the kernel
configuration task as follows:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c kernel_configme -f
</literallayout>
This step ensures that you will be creating a
<filename>.config</filename> file from a known state.
Because situations exist where your build state might
become unknown, it is best to run the previous
command prior to starting up
<filename>menuconfig</filename>.
</para></listitem>
<listitem><para>Run the <filename>menuconfig</filename>
command:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c menuconfig
</literallayout></para></listitem>
<listitem><para>Run the <filename>diffconfig</filename>
command to prepare a configuration fragment.
The resulting file <filename>fragment.cfg</filename>
will be placed in the
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}</filename> directory:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c diffconfig
</literallayout></para></listitem>
</orderedlist>
</para>
<para>
The <filename>diffconfig</filename> command creates a file that is a
list of Linux kernel <filename>CONFIG_</filename> assignments.
See the "<link linkend='changing-the-configuration'>Changing the Configuration</link>"
section for information on how to use the output as a
configuration fragment.
<note>
You can also use this method to create configuration
fragments for a BSP.
See the "<link linkend='bsp-descriptions'>BSP Descriptions</link>"
section for more information.
</note>
</para>
</section>
<section id='modifying-source-code'> <section id='modifying-source-code'>
<title>Modifying Source Code</title> <title>Modifying Source Code</title>

View File

@@ -36,7 +36,8 @@
</question> </question>
<answer> <answer>
<para> <para>
Refer to the "<link linkend='generating-configuration-files'>Generating Configuration Files</link>" Refer to the
"<link linkend='creating-config-fragments'>Creating Configuration Fragments</link>"
section for information. section for information.
</para> </para>
</answer> </answer>

View File

@@ -212,7 +212,7 @@
Applicable:</emphasis> Applicable:</emphasis>
If your situation calls for changing the kernel's If your situation calls for changing the kernel's
configuration, you can use configuration, you can use
<link linkend='generating-configuration-files'><filename>menuconfig</filename></link>, <link linkend='using-menuconfig'><filename>menuconfig</filename></link>,
which allows you to interactively develop and test the which allows you to interactively develop and test the
configuration changes you are making to the kernel. configuration changes you are making to the kernel.
Saving changes you make with <filename>menuconfig</filename> Saving changes you make with <filename>menuconfig</filename>

View File

@@ -883,7 +883,7 @@
$ bitbake linux-yocto -c diffconfig $ bitbake linux-yocto -c diffconfig
</literallayout> </literallayout>
For more information, see the For more information, see the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#creating-config-fragments'>Creating Configuration Fragments</ulink>"
section in the Yocto Project Linux Kernel Development Manual. section in the Yocto Project Linux Kernel Development Manual.
</para> </para>
</section> </section>
@@ -918,7 +918,7 @@
$ bitbake linux-yocto -c kernel_configcheck -f $ bitbake linux-yocto -c kernel_configcheck -f
</literallayout> </literallayout>
For more information, see the For more information, see the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#validating-configuration'>Validating Configuration</ulink>"
section in the Yocto Project Linux Kernel Development Manual. section in the Yocto Project Linux Kernel Development Manual.
</para> </para>
</section> </section>
@@ -956,12 +956,9 @@
</literallayout> </literallayout>
</note> </note>
See the See the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-menuconfig'>Using <filename>menuconfig</filename></ulink>"
section in the Yocto Project Linux Kernel Development Manual section in the Yocto Project Linux Kernel Development Manual
for more information on this configuration tool. for more information on this configuration tool.
You can also reference the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#using-menuconfig'>Using <filename>menuconfig</filename></ulink>"
section in the Yocto Project Linux Kernel Development Manual.
</para> </para>
</section> </section>