diff --git a/documentation/sdk-manual/sdk-appendix-customizing.xml b/documentation/sdk-manual/sdk-appendix-customizing.xml
index 3ee0d7c90a..7a438725b6 100644
--- a/documentation/sdk-manual/sdk-appendix-customizing.xml
+++ b/documentation/sdk-manual/sdk-appendix-customizing.xml
@@ -17,11 +17,11 @@
The extensible SDK primarily consists of a pre-configured copy of
- the build system from which it was produced.
+ the OpenEmbedded build system from which it was produced.
Thus, the SDK's configuration is derived using that build system.
- However, filters exist that are applied such as the following that
- are applied to local.conf and
- auto.conf when present:
+ However, filters such as the following exist that the OpenEmbedded
+ build system applies to local.conf and
+ auto.conf when these files are present:
Variables whose values start with "/" are excluded since the
@@ -44,8 +44,9 @@
Variables listed in
SDK_LOCAL_CONF_WHITELIST
are included.
- Including these variables overrides either of the above two
- conditions.
+ Including a variable in the value of
+ SDK_LOCAL_CONF_WHITELIST overrides either
+ of the above two conditions.
The default value is blank.
@@ -68,9 +69,9 @@
when present, are appended to the end of
conf/local.conf within the produced SDK, without
any filtering.
- Not filtering these contents is particularly useful if you want to
- set a variable value just for the SDK and not the build system used to
- create the SDK.
+ The sdk-extra.conf file is particularly useful
+ if you want to set a variable value just for the SDK and not the
+ OpenEmbedded build system used to create the SDK.
@@ -141,14 +142,14 @@
appear in
COREBASE
(other than layers that are enabled through
- bblayers.conf), then must list these
+ bblayers.conf), then you must list these
files in
COREBASE_FILES
so that the files are copied into the SDK.
- If your build system setup uses a different environment setup
- script other than
+ If your OpenEmbedded build system setup uses a different
+ environment setup script other than
&OE_INIT_FILE;
or
oe-init-build-env-memres,
@@ -270,15 +271,16 @@
If the mirror value you are setting is appropriate to
- be set for both the build system that is actually
- building the SDK and the SDK itself (i.e. the mirror
- is accessible in both places or it will fail quickly
- on the build system side, and its contents will not
- interfere with the build), then you can set the
- variable in your local.conf
- or custom distro configuration file.
- You can "whitelist" the variable through the SDK by
- adding the following:
+ be set for both the OpenEmbedded build system that is
+ actually building the SDK and the SDK itself (i.e. the
+ mirror is accessible in both places or it will fail
+ quickly on the OpenEmbedded build system side, and its
+ contents will not interfere with the build), then you
+ can set the variable in your
+ local.conf or custom distro
+ configuration file.
+ You can then "whitelist" the variable through
+ to the SDK by adding the following:
SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS"
@@ -324,8 +326,8 @@
SDK_EXT_TYPE
to "minimal" produces an SDK installer that is around 35 Mbytes in
size, which downloads and installs quickly.
- You need to realize, though, that the installer does not install any
- libraries or tools out of the box.
+ You need to realize, though, that the minimal installer does not
+ install any libraries or tools out of the box.
These must be installed either "on the fly" or through actions you
perform using devtool or explicitly with the
devtool sdk-install command.
diff --git a/documentation/sdk-manual/sdk-appendix-obtain.xml b/documentation/sdk-manual/sdk-appendix-obtain.xml
index daa5e79fe8..3d4e364bf6 100644
--- a/documentation/sdk-manual/sdk-appendix-obtain.xml
+++ b/documentation/sdk-manual/sdk-appendix-obtain.xml
@@ -222,15 +222,15 @@
different than the installed structure for the standard SDK.
The extensible SDK does not separate host and target parts in the
same manner as does the standard SDK.
- The extensible SDK uses an embedded copy of the build system, which
- has its own sysroots.
+ The extensible SDK uses an embedded copy of the OpenEmbedded
+ build system, which has its own sysroots.
Of note in the directory structure are an environment setup script
for the SDK, a configuration file for the target, a version file for
- the target, and a log file for the build system preparation script run
- by the installer.
+ the target, and a log file for the OpenEmbedded build system
+ preparation script run by the installer.
diff --git a/documentation/sdk-manual/sdk-extensible.xml b/documentation/sdk-manual/sdk-extensible.xml
index f9f04072d7..58d2aec977 100644
--- a/documentation/sdk-manual/sdk-extensible.xml
+++ b/documentation/sdk-manual/sdk-extensible.xml
@@ -10,8 +10,8 @@
This chapter describes the extensible SDK and how to use it.
The extensible SDK makes it easy to add new applications and libraries
to an image, modify the source for an existing component, test
- changes on the target hardware, and ease integration into the rest
- of the build system.
+ changes on the target hardware, and ease integration into the rest of the
+ OpenEmbedded build system.
@@ -45,12 +45,17 @@
poky_sdk folder of your home directory.
As with the standard SDK, you can choose to install the
extensible SDK in any location when you run the installer.
+ However, unlike the standard SDK, the location you choose needs
+ to be writable for whichever users need to use the SDK,
+ since files will need to be written under that directory during
+ the normal course of operation.
Build Tools and Build System:
The extensible SDK installer performs additional tasks as
compared to the standard SDK installer.
The extensible SDK installer extracts build tools specific
- to the SDK and the installer also prepares the build system.
+ to the SDK and the installer also prepares the OpenEmbedded
+ build system.
Here is example output for running the extensible SDK
installer:
@@ -86,458 +91,478 @@
-
-
- Edit the Source:
- Once you have used the devtool modify
- command, you are free to make changes to the source
- files.
- You can use any editor you like to make and save
- your source code modifications.
-
- Build the Recipe:
- Once you have updated the source files, you can build
- the recipe.
- You can either use devtool build or
- bitbake.
- Either method produces build output that is stored
- in
- TMPDIR.
-
- Deploy the Build Output:
- When you use the devtool build
- command or bitbake to build out your
- recipe, you probably want to see if the resulting build
- output works as expected on target hardware.
-
- This step assumes you have a previously built
- image that is already either running in QEMU or
- running on actual hardware.
- Also, it is assumed that for deployment of the image
- to the target, SSH is installed in the image and if
- the image is running on real hardware that you have
- network access to and from your development machine.
-
- You can deploy your build output to that target hardware by
- using the devtool deploy-target command:
-
+
+ Edit the Recipe:
+ At this point, you can use devtool edit-recipe
+ to open up the editor as defined by the
+ $EDITOR environment variable
+ and modify the file:
+
+ $ devtool edit-recipe recipe
+
+ From within the editor, you can make modifications to the
+ recipe that take affect when you build it later.
+
+ Build the Recipe or Rebuild the Image:
+ At this point in the flow, the next step you
+ take depends on what you are going to do with
+ the new code.
+ If you need to take the build output and eventually
+ move it to the target hardware, you would use
+ devtool build:
+
+ You could use bitbake to build
+ the recipe as well.
+
+
+ $ devtool build recipe
+
+ On the other hand, if you want an image to
+ contain the recipe's packages for immediate deployment
+ onto a device (e.g. for testing purposes), you can use
+ the devtool build-image command:
+
+ $ devtool build-image image
+
+
+ Deploy the Build Output:
+ When you use the devtool build
+ command to build out your recipe, you probably want to
+ see if the resulting build output works as expected on target
+ hardware.
+
+ This step assumes you have a previously built
+ image that is already either running in QEMU or
+ running on actual hardware.
+ Also, it is assumed that for deployment of the image
+ to the target, SSH is installed in the image and if
+ the image is running on real hardware that you have
+ network access to and from your development machine.
+
+ You can deploy your build output to that target hardware by
+ using the devtool deploy-target command:
+
$ devtool deploy-target recipe target
-
- The target is a live target machine
- running as an SSH server.
+
+ The target is a live target machine
+ running as an SSH server.
- You can, of course, also deploy the image you build
- using the devtool build-image command
- to actual hardware.
- However, devtool does not provide a
- specific command that allows you to do this.
-
- Optionally Create Patch Files for Your Changes:
- After you have debugged your changes, you can
- use devtool update-recipe to
- generate patch files for all the commits you have
- made.
-
- Patch files are generated only for changes
- you have committed.
-
-
+ You can, of course, also deploy the image you build
+ using the devtool build-image command
+ to actual hardware.
+ However, devtool does not provide a
+ specific command that allows you to do this.
+
+ Optionally Update the Recipe With Patch Files:
+ Once you are satisfied with the recipe, if you have made
+ any changes to the source tree that you want to have
+ applied by the recipe, you need to generate patches
+ from those changes.
+ You do this before moving the recipe
+ to its final layer and cleaning up the workspace area
+ devtool uses.
+ This optional step is especially relevant if you are
+ using or adding third-party software.
+ To convert commits created using Git to patch files,
+ use the devtool update-recipe command.
+
+ Any changes you want to turn into patches must be
+ committed to the Git repository in the source tree.
+
+
$ devtool update-recipe recipe
-
- By default, the
- devtool update-recipe command
- creates the patch files in a folder named the same
- as the recipe beneath the folder in which the recipe
- resides, and updates the recipe's
- SRC_URI
- statement to point to the generated patch files.
-
- You can use the
- "--append LAYERDIR"
- option to cause the command to create append files
- in a specific layer rather than the default
- recipe layer.
-
-
- Restore the Workspace:
- The devtool reset restores the
- state so that standard layers and upstream sources are
- used to build the recipe rather than what is in the
- workspace.
-
+
+
+ Move the Recipe to its Permanent Layer:
+ Before cleaning up the workspace, you need to move the
+ final recipe to its permanent layer.
+ You must do this before using the
+ devtool reset command if you want to
+ retain the recipe.
+
+ Reset the Recipe:
+ As a final step, you can restore the state such that
+ standard layers and the upstream source is used to build
+ the recipe rather than data in the workspace.
+ To reset the recipe, use the devtool reset
+ command:
+
$ devtool reset recipe
-
-
-
-
+
+
+
+
+
+
+
@@ -574,7 +599,7 @@
It is important to remember that building the item from source takes
significantly longer than installing the pre-built artifact.
Also, if no recipe exists for the item you want to add to the SDK, you
- must add it using the devtool add command.
+ must instead add it using the devtool add command.
@@ -635,8 +660,8 @@
constructs a new SDK installer containing those recipes and the
resulting binary artifacts.
The recipes go into their own separate layer in the constructed
- derivative SDK, leaving the workspace clean and ready for you
- to add your own recipes.
+ derivative SDK, leaving the workspace clean and ready for users
+ to add their own recipes.
diff --git a/documentation/sdk-manual/sdk-intro.xml b/documentation/sdk-manual/sdk-intro.xml
index d71aafeba1..ae27562037 100644
--- a/documentation/sdk-manual/sdk-intro.xml
+++ b/documentation/sdk-manual/sdk-intro.xml
@@ -42,7 +42,7 @@
tools that allow you to easily add new applications and libraries to
an image, modify the source of an existing component, test changes on
the target hardware, and easily integrate an application into the
- the Yocto Project build system.
+ OpenEmbedded build system.
@@ -79,7 +79,7 @@
An architecture-specific cross-toolchain and
matching sysroots (target and native) all built by the
- OpenEmbedded build system.
+ OpenEmbedded build system.
The toolchain and sysroots are based on a
Metadata
configuration and extensions,
diff --git a/documentation/sdk-manual/sdk-using.xml b/documentation/sdk-manual/sdk-using.xml
index c752656ce4..10089ca3ae 100644
--- a/documentation/sdk-manual/sdk-using.xml
+++ b/documentation/sdk-manual/sdk-using.xml
@@ -24,18 +24,10 @@
Why use the Standard SDK and What is in It?
- Fundamentally, the standard SDK exists so that you can access
- cross-development tools.
- This paragraph describes why you use the Standard SDK.
- Probably need to compare that against why you would not be interested
- in the extensible SDK here as well.
- According to Paul, the most interest lies in the extensible SDK.
- So providing this comparison would be helpful.
- Currently, my understanding boils down to this: The only reason to use
- the Standard SDK is if you want to build and debug source code that
- you have.
- That pretty much sums it up.
- If there is more detail, I need to know about it.
+ The Standard SDK provides a cross-development toolchain and libraries
+ tailored to the contents of a specific image.
+ You would use the Standard SDK if you want a more traditional toolchain
+ experience.
@@ -125,6 +117,10 @@
You must change the permissions on the toolchain
installer script so that it is executable.
+ Here is an example:
+
+ $ chmod +x poky-glibc-x86_64-core-image-sato-i586-toolchain-2.1.sh
+
@@ -440,7 +436,7 @@
- Devloping Applications Using Eclipse
+ Developing Applications Using Eclipse
If you are familiar with the popular Eclipse IDE, you can use an