mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 00:59:48 +00:00
kernel-dev: working with kernel using devtool does not require building and installing eSDK
In fact, all the same tasks can be done directly from a Yocto build. Let's just drop the steps to produce and install the eSDK - if someone wants it, the SDK manual covers everything. (From yocto-docs rev: 582aa6a8e461bbd698b121403dcd25ddb563a464) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
f7763317f8
commit
ea613c8f70
@@ -52,8 +52,8 @@ image and ready to make modifications as described in the
|
|||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section:
|
section:
|
||||||
|
|
||||||
1. *Initialize the BitBake Environment:* Before building an extensible
|
1. *Initialize the BitBake Environment:*
|
||||||
SDK, you need to initialize the BitBake build environment by sourcing
|
you need to initialize the BitBake build environment by sourcing
|
||||||
the build environment script (i.e. :ref:`structure-core-script`)::
|
the build environment script (i.e. :ref:`structure-core-script`)::
|
||||||
|
|
||||||
$ cd poky
|
$ cd poky
|
||||||
@@ -120,67 +120,10 @@ section:
|
|||||||
NOTE: Starting bitbake server...
|
NOTE: Starting bitbake server...
|
||||||
$
|
$
|
||||||
|
|
||||||
5. *Build the Extensible SDK:* Use BitBake to build the extensible SDK
|
5. *Build the Clean Image:* The final step in preparing to work on the
|
||||||
specifically for use with images to be run using QEMU::
|
kernel is to build an initial image using ``bitbake``::
|
||||||
|
|
||||||
$ cd poky/build
|
$ bitbake core-image-minimal
|
||||||
$ bitbake core-image-minimal -c populate_sdk_ext
|
|
||||||
|
|
||||||
Once
|
|
||||||
the build finishes, you can find the SDK installer file (i.e.
|
|
||||||
``*.sh`` file) in the following directory::
|
|
||||||
|
|
||||||
poky/build/tmp/deploy/sdk
|
|
||||||
|
|
||||||
For this example, the installer file is named
|
|
||||||
``poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh``.
|
|
||||||
|
|
||||||
6. *Install the Extensible SDK:* Use the following command to install
|
|
||||||
the SDK. For this example, install the SDK in the default
|
|
||||||
``poky_sdk`` directory::
|
|
||||||
|
|
||||||
$ cd poky/build/tmp/deploy/sdk
|
|
||||||
$ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh
|
|
||||||
Poky (Yocto Project Reference Distro) Extensible SDK installer version &DISTRO;
|
|
||||||
============================================================================
|
|
||||||
Enter target directory for SDK (default: poky_sdk):
|
|
||||||
You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed [Y/n]? Y
|
|
||||||
Extracting SDK......................................done
|
|
||||||
Setting it up...
|
|
||||||
Extracting buildtools...
|
|
||||||
Preparing build system...
|
|
||||||
Parsing recipes: 100% |#################################################################| Time: 0:00:52
|
|
||||||
Initializing tasks: 100% |############## ###############################################| Time: 0:00:04
|
|
||||||
Checking sstate mirror object availability: 100% |######################################| Time: 0:00:00
|
|
||||||
Parsing recipes: 100% |#################################################################| Time: 0:00:33
|
|
||||||
Initializing tasks: 100% |##############################################################| Time: 0:00:00
|
|
||||||
done
|
|
||||||
SDK has been successfully set up and is ready to be used.
|
|
||||||
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
|
|
||||||
$ . /home/scottrif/poky_sdk/environment-setup-i586-poky-linux
|
|
||||||
|
|
||||||
|
|
||||||
7. *Set Up a New Terminal to Work With the Extensible SDK:* You must set
|
|
||||||
up a new terminal to work with the SDK. You cannot use the same
|
|
||||||
BitBake shell used to build the installer.
|
|
||||||
|
|
||||||
After opening a new shell, run the SDK environment setup script as
|
|
||||||
directed by the output from installing the SDK::
|
|
||||||
|
|
||||||
$ source poky_sdk/environment-setup-i586-poky-linux
|
|
||||||
"SDK environment now set up; additionally you may now run devtool to perform development tasks.
|
|
||||||
Run devtool --help for further details.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
If you get a warning about attempting to use the extensible SDK in
|
|
||||||
an environment set up to run BitBake, you did not use a new shell.
|
|
||||||
|
|
||||||
8. *Build the Clean Image:* The final step in preparing to work on the
|
|
||||||
kernel is to build an initial image using ``devtool`` in the new
|
|
||||||
terminal you just set up and initialized for SDK work::
|
|
||||||
|
|
||||||
$ devtool build-image
|
|
||||||
Parsing recipes: 100% |##########################################| Time: 0:00:05
|
Parsing recipes: 100% |##########################################| Time: 0:00:05
|
||||||
Parsing of 830 .bb files complete (0 cached, 830 parsed). 1299 targets, 47 skipped, 0 masked, 0 errors.
|
Parsing of 830 .bb files complete (0 cached, 830 parsed). 1299 targets, 47 skipped, 0 masked, 0 errors.
|
||||||
WARNING: No packages to add, building image core-image-minimal unmodified
|
WARNING: No packages to add, building image core-image-minimal unmodified
|
||||||
@@ -192,7 +135,6 @@ section:
|
|||||||
NOTE: Executing SetScene Tasks
|
NOTE: Executing SetScene Tasks
|
||||||
NOTE: Executing RunQueue Tasks
|
NOTE: Executing RunQueue Tasks
|
||||||
NOTE: Tasks Summary: Attempted 2866 tasks of which 2604 didn't need to be rerun and all succeeded.
|
NOTE: Tasks Summary: Attempted 2866 tasks of which 2604 didn't need to be rerun and all succeeded.
|
||||||
NOTE: Successfully built core-image-minimal. You can find output files in /home/scottrif/poky_sdk/tmp/deploy/images/qemux86
|
|
||||||
|
|
||||||
If you were
|
If you were
|
||||||
building for actual hardware and not for emulation, you could flash
|
building for actual hardware and not for emulation, you could flash
|
||||||
@@ -202,7 +144,7 @@ section:
|
|||||||
Wiki page.
|
Wiki page.
|
||||||
|
|
||||||
At this point you have set up to start making modifications to the
|
At this point you have set up to start making modifications to the
|
||||||
kernel by using the extensible SDK. For a continued example, see the
|
kernel. For a continued example, see the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
@@ -744,7 +686,7 @@ Using ``devtool`` to Patch the Kernel
|
|||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
The steps in this procedure show you how you can patch the kernel using
|
The steps in this procedure show you how you can patch the kernel using
|
||||||
the extensible SDK and ``devtool``.
|
``devtool``.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -766,8 +708,7 @@ console. The example is a continuation of the setup procedure found in
|
|||||||
the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Section.
|
the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Section.
|
||||||
|
|
||||||
1. *Check Out the Kernel Source Files:* First you must use ``devtool``
|
1. *Check Out the Kernel Source Files:* First you must use ``devtool``
|
||||||
to checkout the kernel source code in its workspace. Be sure you are
|
to checkout the kernel source code in its workspace.
|
||||||
in the terminal set up to do work with the extensible SDK.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -867,7 +808,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
|
|||||||
the results of your ``printk`` statements as part of the output
|
the results of your ``printk`` statements as part of the output
|
||||||
when you scroll down the console window.
|
when you scroll down the console window.
|
||||||
|
|
||||||
6. *Stage and commit your changes*: Within your eSDK terminal, change
|
6. *Stage and commit your changes*: Change
|
||||||
your working directory to where you modified the ``calibrate.c`` file
|
your working directory to where you modified the ``calibrate.c`` file
|
||||||
and use these Git commands to stage and commit your changes::
|
and use these Git commands to stage and commit your changes::
|
||||||
|
|
||||||
@@ -878,8 +819,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
|
|||||||
|
|
||||||
7. *Export the Patches and Create an Append File:* To export your
|
7. *Export the Patches and Create an Append File:* To export your
|
||||||
commits as patches and create a ``.bbappend`` file, use the following
|
commits as patches and create a ``.bbappend`` file, use the following
|
||||||
command in the terminal used to work with the extensible SDK. This
|
command. This example uses the previously established layer named ``meta-mylayer``.
|
||||||
example uses the previously established layer named ``meta-mylayer``.
|
|
||||||
::
|
::
|
||||||
|
|
||||||
$ devtool finish linux-yocto ~/meta-mylayer
|
$ devtool finish linux-yocto ~/meta-mylayer
|
||||||
@@ -907,8 +847,8 @@ Using Traditional Kernel Development to Patch the Kernel
|
|||||||
========================================================
|
========================================================
|
||||||
|
|
||||||
The steps in this procedure show you how you can patch the kernel using
|
The steps in this procedure show you how you can patch the kernel using
|
||||||
traditional kernel development (i.e. not using ``devtool`` and the
|
traditional kernel development (i.e. not using ``devtool``
|
||||||
extensible SDK as described in the
|
as described in the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section).
|
section).
|
||||||
|
|
||||||
|
|||||||
@@ -114,13 +114,13 @@ general information and references for further information.
|
|||||||
a build host ready to use the Yocto Project.
|
a build host ready to use the Yocto Project.
|
||||||
|
|
||||||
2. *Set Up Your Host Development System for Kernel Development:* It is
|
2. *Set Up Your Host Development System for Kernel Development:* It is
|
||||||
recommended that you use ``devtool`` and an extensible SDK for kernel
|
recommended that you use ``devtool`` for kernel
|
||||||
development. Alternatively, you can use traditional kernel
|
development. Alternatively, you can use traditional kernel
|
||||||
development methods with the Yocto Project. Either way, there are
|
development methods with the Yocto Project. Either way, there are
|
||||||
steps you need to take to get the development environment ready.
|
steps you need to take to get the development environment ready.
|
||||||
|
|
||||||
Using ``devtool`` and the eSDK requires that you have a clean build
|
Using ``devtool`` requires that you have a clean build
|
||||||
of the image and that you are set up with the appropriate eSDK. For
|
of the image. For
|
||||||
more information, see the
|
more information, see the
|
||||||
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
|
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
|
||||||
section.
|
section.
|
||||||
@@ -134,7 +134,7 @@ general information and references for further information.
|
|||||||
3. *Make Changes to the Kernel Source Code if applicable:* Modifying the
|
3. *Make Changes to the Kernel Source Code if applicable:* Modifying the
|
||||||
kernel does not always mean directly changing source files. However,
|
kernel does not always mean directly changing source files. However,
|
||||||
if you have to do this, you make the changes to the files in the
|
if you have to do this, you make the changes to the files in the
|
||||||
eSDK's Build Directory if you are using ``devtool``. For more
|
Yocto's Build Directory if you are using ``devtool``. For more
|
||||||
information, see the
|
information, see the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section.
|
section.
|
||||||
|
|||||||
Reference in New Issue
Block a user