diff options
| -rw-r--r-- | documentation/adt-manual/adt-command.xml | 88 | ||||
| -rw-r--r-- | documentation/adt-manual/adt-intro.xml | 128 | ||||
| -rw-r--r-- | documentation/adt-manual/adt-manual.xml | 16 | ||||
| -rw-r--r-- | documentation/adt-manual/adt-package.xml | 54 | ||||
| -rw-r--r-- | documentation/adt-manual/adt-prepare.xml | 330 |
5 files changed, 308 insertions, 308 deletions
diff --git a/documentation/adt-manual/adt-command.xml b/documentation/adt-manual/adt-command.xml index c6609193d1..e5b2cdb420 100644 --- a/documentation/adt-manual/adt-command.xml +++ b/documentation/adt-manual/adt-command.xml | |||
| @@ -6,22 +6,22 @@ | |||
| 6 | <title>Using the Command Line</title> | 6 | <title>Using the Command Line</title> |
| 7 | 7 | ||
| 8 | <para> | 8 | <para> |
| 9 | Recall that earlier the manual discussed how to use an existing toolchain | 9 | Recall that earlier the manual discussed how to use an existing toolchain |
| 10 | tarball that had been installed into <filename>/opt/poky</filename>, | 10 | tarball that had been installed into <filename>/opt/poky</filename>, |
| 11 | which is outside of the | 11 | which is outside of the |
| 12 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | 12 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> |
| 13 | (see the section "<link linkend='using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball)</link>". | 13 | (see the section "<link linkend='using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball)</link>". |
| 14 | And, that sourcing your architecture-specific environment setup script | 14 | And, that sourcing your architecture-specific environment setup script |
| 15 | initializes a suitable cross-toolchain development environment. | 15 | initializes a suitable cross-toolchain development environment. |
| 16 | During the setup, locations for the compiler, QEMU scripts, QEMU binary, | 16 | During the setup, locations for the compiler, QEMU scripts, QEMU binary, |
| 17 | a special version of <filename>pkgconfig</filename> and other useful | 17 | a special version of <filename>pkgconfig</filename> and other useful |
| 18 | utilities are added to the <filename>PATH</filename> variable. | 18 | utilities are added to the <filename>PATH</filename> variable. |
| 19 | Variables to assist <filename>pkgconfig</filename> and <filename>autotools</filename> | 19 | Variables to assist <filename>pkgconfig</filename> and <filename>autotools</filename> |
| 20 | are also defined so that, | 20 | are also defined so that, |
| 21 | for example, <filename>configure.sh</filename> can find pre-generated | 21 | for example, <filename>configure.sh</filename> can find pre-generated |
| 22 | test results for tests that need target hardware on which to run. | 22 | test results for tests that need target hardware on which to run. |
| 23 | These conditions allow you to easily use the toolchain outside of the | 23 | These conditions allow you to easily use the toolchain outside of the |
| 24 | OpenEmbedded build environment on both autotools-based projects and | 24 | OpenEmbedded build environment on both autotools-based projects and |
| 25 | Makefile-based projects. | 25 | Makefile-based projects. |
| 26 | </para> | 26 | </para> |
| 27 | 27 | ||
| @@ -29,9 +29,9 @@ | |||
| 29 | <title>Autotools-Based Projects</title> | 29 | <title>Autotools-Based Projects</title> |
| 30 | 30 | ||
| 31 | <para> | 31 | <para> |
| 32 | Once you have a suitable cross-toolchain installed, it is very easy to | 32 | Once you have a suitable cross-toolchain installed, it is very easy to |
| 33 | develop a project outside of the OpenEmbedded build system. | 33 | develop a project outside of the OpenEmbedded build system. |
| 34 | This section presents a simple "Helloworld" example that shows how | 34 | This section presents a simple "Helloworld" example that shows how |
| 35 | to set up, compile, and run the project. | 35 | to set up, compile, and run the project. |
| 36 | </para> | 36 | </para> |
| 37 | 37 | ||
| @@ -42,7 +42,7 @@ | |||
| 42 | Follow these steps to create a simple autotools-based project: | 42 | Follow these steps to create a simple autotools-based project: |
| 43 | <orderedlist> | 43 | <orderedlist> |
| 44 | <listitem><para><emphasis>Create your directory:</emphasis> | 44 | <listitem><para><emphasis>Create your directory:</emphasis> |
| 45 | Create a clean directory for your project and then make | 45 | Create a clean directory for your project and then make |
| 46 | that directory your working location: | 46 | that directory your working location: |
| 47 | <literallayout class='monospaced'> | 47 | <literallayout class='monospaced'> |
| 48 | $ mkdir $HOME/helloworld | 48 | $ mkdir $HOME/helloworld |
| @@ -78,25 +78,25 @@ | |||
| 78 | AC_OUTPUT(Makefile) | 78 | AC_OUTPUT(Makefile) |
| 79 | </literallayout></para></listitem> | 79 | </literallayout></para></listitem> |
| 80 | </itemizedlist></para></listitem> | 80 | </itemizedlist></para></listitem> |
| 81 | <listitem><para><emphasis>Source the cross-toolchain | 81 | <listitem><para><emphasis>Source the cross-toolchain |
| 82 | environment setup file:</emphasis> | 82 | environment setup file:</emphasis> |
| 83 | Installation of the cross-toolchain creates a cross-toolchain | 83 | Installation of the cross-toolchain creates a cross-toolchain |
| 84 | environment setup script in <filename>/opt/poky/<release></filename>. | 84 | environment setup script in <filename>/opt/poky/<release></filename>. |
| 85 | Before you can use the tools to develop your project, you must | 85 | Before you can use the tools to develop your project, you must |
| 86 | source this setup script. | 86 | source this setup script. |
| 87 | The script begins with the string "environment-setup" and contains | 87 | The script begins with the string "environment-setup" and contains |
| 88 | the machine architecture, which is followed by the string | 88 | the machine architecture, which is followed by the string |
| 89 | "poky-linux". | 89 | "poky-linux". |
| 90 | Here is an example for an environment setup using the | 90 | Here is an example for an environment setup using the |
| 91 | 32-bit Intel x86 Architecture and using the | 91 | 32-bit Intel x86 Architecture and using the |
| 92 | &DISTRO_NAME; Yocto Project release: | 92 | &DISTRO_NAME; Yocto Project release: |
| 93 | <literallayout class='monospaced'> | 93 | <literallayout class='monospaced'> |
| 94 | $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux | 94 | $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux |
| 95 | </literallayout></para></listitem> | 95 | </literallayout></para></listitem> |
| 96 | <listitem><para><emphasis>Generate the local <filename>aclocal.m4</filename> | 96 | <listitem><para><emphasis>Generate the local <filename>aclocal.m4</filename> |
| 97 | files and create the configure script:</emphasis> | 97 | files and create the configure script:</emphasis> |
| 98 | The following GNU Autotools generate the local | 98 | The following GNU Autotools generate the local |
| 99 | <filename>aclocal.m4</filename> files and create the | 99 | <filename>aclocal.m4</filename> files and create the |
| 100 | configure script: | 100 | configure script: |
| 101 | <literallayout class='monospaced'> | 101 | <literallayout class='monospaced'> |
| 102 | $ aclocal | 102 | $ aclocal |
| @@ -104,8 +104,8 @@ | |||
| 104 | </literallayout></para></listitem> | 104 | </literallayout></para></listitem> |
| 105 | <listitem><para><emphasis>Generate files needed by GNU | 105 | <listitem><para><emphasis>Generate files needed by GNU |
| 106 | coding standards:</emphasis> | 106 | coding standards:</emphasis> |
| 107 | GNU coding standards require certain files in order for the | 107 | GNU coding standards require certain files in order for the |
| 108 | project to be compliant. | 108 | project to be compliant. |
| 109 | This command creates those files: | 109 | This command creates those files: |
| 110 | <literallayout class='monospaced'> | 110 | <literallayout class='monospaced'> |
| 111 | $ touch NEWS README AUTHORS ChangeLog | 111 | $ touch NEWS README AUTHORS ChangeLog |
| @@ -122,7 +122,7 @@ | |||
| 122 | $ ./configure ${CONFIGURE_FLAGS} | 122 | $ ./configure ${CONFIGURE_FLAGS} |
| 123 | </literallayout></para></listitem> | 123 | </literallayout></para></listitem> |
| 124 | <listitem><para><emphasis>Make and install the project:</emphasis> | 124 | <listitem><para><emphasis>Make and install the project:</emphasis> |
| 125 | These two commands generate and install the project into the | 125 | These two commands generate and install the project into the |
| 126 | destination directory: | 126 | destination directory: |
| 127 | <literallayout class='monospaced'> | 127 | <literallayout class='monospaced'> |
| 128 | $ make | 128 | $ make |
| @@ -130,16 +130,16 @@ | |||
| 130 | </literallayout></para></listitem> | 130 | </literallayout></para></listitem> |
| 131 | <listitem><para><emphasis>Verify the installation:</emphasis> | 131 | <listitem><para><emphasis>Verify the installation:</emphasis> |
| 132 | This command is a simple way to verify the installation | 132 | This command is a simple way to verify the installation |
| 133 | of your project. | 133 | of your project. |
| 134 | Running the command prints the architecture on which | 134 | Running the command prints the architecture on which |
| 135 | the binary file can run. | 135 | the binary file can run. |
| 136 | This architecture should be the same architecture that | 136 | This architecture should be the same architecture that |
| 137 | the installed cross-toolchain supports. | 137 | the installed cross-toolchain supports. |
| 138 | <literallayout class='monospaced'> | 138 | <literallayout class='monospaced'> |
| 139 | $ file ./tmp/usr/local/bin/hello | 139 | $ file ./tmp/usr/local/bin/hello |
| 140 | </literallayout></para></listitem> | 140 | </literallayout></para></listitem> |
| 141 | <listitem><para><emphasis>Execute your project:</emphasis> | 141 | <listitem><para><emphasis>Execute your project:</emphasis> |
| 142 | To execute the project in the shell, simply enter the name. | 142 | To execute the project in the shell, simply enter the name. |
| 143 | You could also copy the binary to the actual target hardware | 143 | You could also copy the binary to the actual target hardware |
| 144 | and run the project there as well: | 144 | and run the project there as well: |
| 145 | <literallayout class='monospaced'> | 145 | <literallayout class='monospaced'> |
| @@ -155,14 +155,14 @@ | |||
| 155 | <title>Passing Host Options</title> | 155 | <title>Passing Host Options</title> |
| 156 | 156 | ||
| 157 | <para> | 157 | <para> |
| 158 | For an Autotools-based project, you can use the cross-toolchain by just | 158 | For an Autotools-based project, you can use the cross-toolchain by just |
| 159 | passing the appropriate host option to <filename>configure.sh</filename>. | 159 | passing the appropriate host option to <filename>configure.sh</filename>. |
| 160 | The host option you use is derived from the name of the environment setup | 160 | The host option you use is derived from the name of the environment setup |
| 161 | script in <filename>/opt/poky</filename> resulting from installation of the | 161 | script in <filename>/opt/poky</filename> resulting from installation of the |
| 162 | cross-toolchain tarball. | 162 | cross-toolchain tarball. |
| 163 | For example, the host option for an ARM-based target that uses the GNU EABI | 163 | For example, the host option for an ARM-based target that uses the GNU EABI |
| 164 | is <filename>armv5te-poky-linux-gnueabi</filename>. | 164 | is <filename>armv5te-poky-linux-gnueabi</filename>. |
| 165 | You will notice that the name of the script is | 165 | You will notice that the name of the script is |
| 166 | <filename>environment-setup-armv5te-poky-linux-gnueabi</filename>. | 166 | <filename>environment-setup-armv5te-poky-linux-gnueabi</filename>. |
| 167 | Thus, the following command works: | 167 | Thus, the following command works: |
| 168 | <literallayout class='monospaced'> | 168 | <literallayout class='monospaced'> |
| @@ -172,12 +172,12 @@ | |||
| 172 | </para> | 172 | </para> |
| 173 | 173 | ||
| 174 | <para> | 174 | <para> |
| 175 | This single command updates your project and rebuilds it using the appropriate | 175 | This single command updates your project and rebuilds it using the appropriate |
| 176 | cross-toolchain tools. | 176 | cross-toolchain tools. |
| 177 | <note> | 177 | <note> |
| 178 | If <filename>configure</filename> script results in problems recognizing the | 178 | If <filename>configure</filename> script results in problems recognizing the |
| 179 | <filename>--with-libtool-sysroot=<sysroot-dir></filename> option, | 179 | <filename>--with-libtool-sysroot=<sysroot-dir></filename> option, |
| 180 | regenerate the script to enable the support by doing the following and then | 180 | regenerate the script to enable the support by doing the following and then |
| 181 | re-running the script: | 181 | re-running the script: |
| 182 | <literallayout class='monospaced'> | 182 | <literallayout class='monospaced'> |
| 183 | $ libtoolize --automake | 183 | $ libtoolize --automake |
| @@ -187,17 +187,17 @@ | |||
| 187 | $ autoheader | 187 | $ autoheader |
| 188 | $ automake -a | 188 | $ automake -a |
| 189 | </literallayout> | 189 | </literallayout> |
| 190 | </note> | 190 | </note> |
| 191 | </para> | 191 | </para> |
| 192 | </section> | 192 | </section> |
| 193 | </section> | 193 | </section> |
| 194 | 194 | ||
| 195 | <section id='makefile-based-projects'> | 195 | <section id='makefile-based-projects'> |
| 196 | <title>Makefile-Based Projects</title> | 196 | <title>Makefile-Based Projects</title> |
| 197 | 197 | ||
| 198 | <para> | 198 | <para> |
| 199 | For a Makefile-based project, you use the cross-toolchain by making sure | 199 | For a Makefile-based project, you use the cross-toolchain by making sure |
| 200 | the tools are used. | 200 | the tools are used. |
| 201 | You can do this as follows: | 201 | You can do this as follows: |
| 202 | <literallayout class='monospaced'> | 202 | <literallayout class='monospaced'> |
| 203 | CC=arm-poky-linux-gnueabi-gcc | 203 | CC=arm-poky-linux-gnueabi-gcc |
diff --git a/documentation/adt-manual/adt-intro.xml b/documentation/adt-manual/adt-intro.xml index d8527b3aef..fcbceb4de1 100644 --- a/documentation/adt-manual/adt-intro.xml +++ b/documentation/adt-manual/adt-intro.xml | |||
| @@ -6,44 +6,44 @@ | |||
| 6 | <title>Introduction</title> | 6 | <title>Introduction</title> |
| 7 | 7 | ||
| 8 | <para> | 8 | <para> |
| 9 | Welcome to the Yocto Project Application Developer's Guide. | 9 | Welcome to the Yocto Project Application Developer's Guide. |
| 10 | This manual provides information that lets you begin developing applications | 10 | This manual provides information that lets you begin developing applications |
| 11 | using the Yocto Project. | 11 | using the Yocto Project. |
| 12 | </para> | 12 | </para> |
| 13 | 13 | ||
| 14 | <para> | 14 | <para> |
| 15 | The Yocto Project provides an application development environment based on | 15 | The Yocto Project provides an application development environment based on |
| 16 | an Application Development Toolkit (ADT) and the availability of stand-alone | 16 | an Application Development Toolkit (ADT) and the availability of stand-alone |
| 17 | cross-development toolchains and other tools. | 17 | cross-development toolchains and other tools. |
| 18 | This manual describes the ADT and how you can configure and install it, | 18 | This manual describes the ADT and how you can configure and install it, |
| 19 | how to access and use the cross-development toolchains, how to | 19 | how to access and use the cross-development toolchains, how to |
| 20 | customize the development packages installation, | 20 | customize the development packages installation, |
| 21 | how to use command line development for both Autotools-based and Makefile-based projects, | 21 | how to use command line development for both Autotools-based and Makefile-based projects, |
| 22 | and an introduction to the Eclipse Yocto Plug-in. | 22 | and an introduction to the Eclipse Yocto Plug-in. |
| 23 | </para> | 23 | </para> |
| 24 | 24 | ||
| 25 | <section id='adt-intro-section'> | 25 | <section id='adt-intro-section'> |
| 26 | <title>The Application Development Toolkit (ADT)</title> | 26 | <title>The Application Development Toolkit (ADT)</title> |
| 27 | 27 | ||
| 28 | <para> | 28 | <para> |
| 29 | Part of the Yocto Project development solution is an Application Development | 29 | Part of the Yocto Project development solution is an Application Development |
| 30 | Toolkit (ADT). | 30 | Toolkit (ADT). |
| 31 | The ADT provides you with a custom-built, cross-development | 31 | The ADT provides you with a custom-built, cross-development |
| 32 | platform suited for developing a user-targeted product application. | 32 | platform suited for developing a user-targeted product application. |
| 33 | </para> | 33 | </para> |
| 34 | 34 | ||
| 35 | <para> | 35 | <para> |
| 36 | Fundamentally, the ADT consists of the following: | 36 | Fundamentally, the ADT consists of the following: |
| 37 | <itemizedlist> | 37 | <itemizedlist> |
| 38 | <listitem><para>An architecture-specific cross-toolchain and matching | 38 | <listitem><para>An architecture-specific cross-toolchain and matching |
| 39 | sysroot both built by the OpenEmbedded build system, which uses Poky. | 39 | sysroot both built by the OpenEmbedded build system, which uses Poky. |
| 40 | The toolchain and sysroot are based on a metadata configuration and extensions, | 40 | The toolchain and sysroot are based on a metadata configuration and extensions, |
| 41 | which allows you to cross-develop on the host machine for the target hardware. | 41 | which allows you to cross-develop on the host machine for the target hardware. |
| 42 | </para></listitem> | 42 | </para></listitem> |
| 43 | <listitem><para>The Eclipse IDE Yocto Plug-in.</para></listitem> | 43 | <listitem><para>The Eclipse IDE Yocto Plug-in.</para></listitem> |
| 44 | <listitem><para>The Quick EMUlator (QEMU), which lets you simulate target hardware. | 44 | <listitem><para>The Quick EMUlator (QEMU), which lets you simulate target hardware. |
| 45 | </para></listitem> | 45 | </para></listitem> |
| 46 | <listitem><para>Various user-space tools that greatly enhance your application | 46 | <listitem><para>Various user-space tools that greatly enhance your application |
| 47 | development experience.</para></listitem> | 47 | development experience.</para></listitem> |
| 48 | </itemizedlist> | 48 | </itemizedlist> |
| 49 | </para> | 49 | </para> |
| @@ -52,13 +52,13 @@ | |||
| 52 | <title>The Cross-Toolchain</title> | 52 | <title>The Cross-Toolchain</title> |
| 53 | 53 | ||
| 54 | <para> | 54 | <para> |
| 55 | The cross-toolchain consists of a cross-compiler, cross-linker, and cross-debugger | 55 | The cross-toolchain consists of a cross-compiler, cross-linker, and cross-debugger |
| 56 | that are used to develop user-space applications for targeted hardware. | 56 | that are used to develop user-space applications for targeted hardware. |
| 57 | This toolchain is created either by running the ADT Installer script, a toolchain installer | 57 | This toolchain is created either by running the ADT Installer script, a toolchain installer |
| 58 | script, or through a | 58 | script, or through a |
| 59 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> that | 59 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> that |
| 60 | is based on your metadata | 60 | is based on your metadata |
| 61 | configuration or extension for your targeted device. | 61 | configuration or extension for your targeted device. |
| 62 | The cross-toolchain works with a matching target sysroot. | 62 | The cross-toolchain works with a matching target sysroot. |
| 63 | </para> | 63 | </para> |
| 64 | </section> | 64 | </section> |
| @@ -67,10 +67,10 @@ | |||
| 67 | <title>Sysroot</title> | 67 | <title>Sysroot</title> |
| 68 | 68 | ||
| 69 | <para> | 69 | <para> |
| 70 | The matching target sysroot contains needed headers and libraries for generating | 70 | The matching target sysroot contains needed headers and libraries for generating |
| 71 | binaries that run on the target architecture. | 71 | binaries that run on the target architecture. |
| 72 | The sysroot is based on the target root filesystem image that is built by | 72 | The sysroot is based on the target root filesystem image that is built by |
| 73 | the OpenEmbedded build system Poky and uses the same metadata configuration | 73 | the OpenEmbedded build system Poky and uses the same metadata configuration |
| 74 | used to build the cross-toolchain. | 74 | used to build the cross-toolchain. |
| 75 | </para> | 75 | </para> |
| 76 | </section> | 76 | </section> |
| @@ -79,24 +79,24 @@ | |||
| 79 | <title>Eclipse Yocto Plug-in</title> | 79 | <title>Eclipse Yocto Plug-in</title> |
| 80 | 80 | ||
| 81 | <para> | 81 | <para> |
| 82 | The Eclipse IDE is a popular development environment and it fully supports | 82 | The Eclipse IDE is a popular development environment and it fully supports |
| 83 | development using the Yocto Project. | 83 | development using the Yocto Project. |
| 84 | When you install and configure the Eclipse Yocto Project Plug-in into | 84 | When you install and configure the Eclipse Yocto Project Plug-in into |
| 85 | the Eclipse IDE, you maximize your Yocto Project experience. | 85 | the Eclipse IDE, you maximize your Yocto Project experience. |
| 86 | Installing and configuring the Plug-in results in an environment that | 86 | Installing and configuring the Plug-in results in an environment that |
| 87 | has extensions specifically designed to let you more easily develop software. | 87 | has extensions specifically designed to let you more easily develop software. |
| 88 | These extensions allow for cross-compilation, deployment, and execution of | 88 | These extensions allow for cross-compilation, deployment, and execution of |
| 89 | your output into a QEMU emulation session. | 89 | your output into a QEMU emulation session. |
| 90 | You can also perform cross-debugging and profiling. | 90 | You can also perform cross-debugging and profiling. |
| 91 | The environment also supports a suite of tools that allows you to perform | 91 | The environment also supports a suite of tools that allows you to perform |
| 92 | remote profiling, tracing, collection of power data, collection of | 92 | remote profiling, tracing, collection of power data, collection of |
| 93 | latency data, and collection of performance data. | 93 | latency data, and collection of performance data. |
| 94 | </para> | 94 | </para> |
| 95 | 95 | ||
| 96 | <para> | 96 | <para> |
| 97 | For information about the application development workflow that uses the Eclipse | 97 | For information about the application development workflow that uses the Eclipse |
| 98 | IDE and for a detailed example of how to install and configure the Eclipse | 98 | IDE and for a detailed example of how to install and configure the Eclipse |
| 99 | Yocto Project Plug-in, see the | 99 | Yocto Project Plug-in, see the |
| 100 | "<ulink url='&YOCTO_DOCS_DEV_URL;#adt-eclipse'>Working Within Eclipse</ulink>" section | 100 | "<ulink url='&YOCTO_DOCS_DEV_URL;#adt-eclipse'>Working Within Eclipse</ulink>" section |
| 101 | of the Yocto Project Development Manual. | 101 | of the Yocto Project Development Manual. |
| 102 | </para> | 102 | </para> |
| @@ -106,19 +106,19 @@ | |||
| 106 | <title>The QEMU Emulator</title> | 106 | <title>The QEMU Emulator</title> |
| 107 | 107 | ||
| 108 | <para> | 108 | <para> |
| 109 | The QEMU emulator allows you to simulate your hardware while running your | 109 | The QEMU emulator allows you to simulate your hardware while running your |
| 110 | application or image. | 110 | application or image. |
| 111 | QEMU is made available a number of ways: | 111 | QEMU is made available a number of ways: |
| 112 | <itemizedlist> | 112 | <itemizedlist> |
| 113 | <listitem><para>If you use the ADT Installer script to install ADT, you can | 113 | <listitem><para>If you use the ADT Installer script to install ADT, you can |
| 114 | specify whether or not to install QEMU.</para></listitem> | 114 | specify whether or not to install QEMU.</para></listitem> |
| 115 | <listitem><para>If you have downloaded a Yocto Project release and unpacked | 115 | <listitem><para>If you have downloaded a Yocto Project release and unpacked |
| 116 | it to create a | 116 | it to create a |
| 117 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> and | 117 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> and |
| 118 | you have sourced | 118 | you have sourced |
| 119 | the environment setup script, QEMU is installed and automatically | 119 | the environment setup script, QEMU is installed and automatically |
| 120 | available.</para></listitem> | 120 | available.</para></listitem> |
| 121 | <listitem><para>If you have installed the cross-toolchain | 121 | <listitem><para>If you have installed the cross-toolchain |
| 122 | tarball and you have sourcing the toolchain's setup environment script, QEMU | 122 | tarball and you have sourcing the toolchain's setup environment script, QEMU |
| 123 | is also installed and automatically available.</para></listitem> | 123 | is also installed and automatically available.</para></listitem> |
| 124 | </itemizedlist> | 124 | </itemizedlist> |
| @@ -129,38 +129,38 @@ | |||
| 129 | <title>User-Space Tools</title> | 129 | <title>User-Space Tools</title> |
| 130 | 130 | ||
| 131 | <para> | 131 | <para> |
| 132 | User-space tools are included as part of the distribution. | 132 | User-space tools are included as part of the distribution. |
| 133 | You will find these tools helpful during development. | 133 | You will find these tools helpful during development. |
| 134 | The tools include LatencyTOP, PowerTOP, OProfile, Perf, SystemTap, and Lttng-ust. | 134 | The tools include LatencyTOP, PowerTOP, OProfile, Perf, SystemTap, and Lttng-ust. |
| 135 | These tools are common development tools for the Linux platform. | 135 | These tools are common development tools for the Linux platform. |
| 136 | <itemizedlist> | 136 | <itemizedlist> |
| 137 | <listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP focuses on latency | 137 | <listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP focuses on latency |
| 138 | that causes skips in audio, | 138 | that causes skips in audio, |
| 139 | stutters in your desktop experience, or situations that overload your server | 139 | stutters in your desktop experience, or situations that overload your server |
| 140 | even when you have plenty of CPU power left. | 140 | even when you have plenty of CPU power left. |
| 141 | You can find out more about LatencyTOP at | 141 | You can find out more about LatencyTOP at |
| 142 | <ulink url='http://www.latencytop.org/'></ulink>.</para></listitem> | 142 | <ulink url='http://www.latencytop.org/'></ulink>.</para></listitem> |
| 143 | <listitem><para><emphasis>PowerTOP:</emphasis> Helps you determine what | 143 | <listitem><para><emphasis>PowerTOP:</emphasis> Helps you determine what |
| 144 | software is using the most power. | 144 | software is using the most power. |
| 145 | You can find out more about PowerTOP at | 145 | You can find out more about PowerTOP at |
| 146 | <ulink url='https://01.org/powertop/'></ulink>.</para></listitem> | 146 | <ulink url='https://01.org/powertop/'></ulink>.</para></listitem> |
| 147 | <listitem><para><emphasis>OProfile:</emphasis> A system-wide profiler for Linux | 147 | <listitem><para><emphasis>OProfile:</emphasis> A system-wide profiler for Linux |
| 148 | systems that is capable of profiling all running code at low overhead. | 148 | systems that is capable of profiling all running code at low overhead. |
| 149 | You can find out more about OProfile at | 149 | You can find out more about OProfile at |
| 150 | <ulink url='http://oprofile.sourceforge.net/about/'></ulink>.</para></listitem> | 150 | <ulink url='http://oprofile.sourceforge.net/about/'></ulink>.</para></listitem> |
| 151 | <listitem><para><emphasis>Perf:</emphasis> Performance counters for Linux used | 151 | <listitem><para><emphasis>Perf:</emphasis> Performance counters for Linux used |
| 152 | to keep track of certain types of hardware and software events. | 152 | to keep track of certain types of hardware and software events. |
| 153 | For more information on these types of counters see | 153 | For more information on these types of counters see |
| 154 | <ulink url='https://perf.wiki.kernel.org/'></ulink> and click | 154 | <ulink url='https://perf.wiki.kernel.org/'></ulink> and click |
| 155 | on “Perf tools.”</para></listitem> | 155 | on “Perf tools.”</para></listitem> |
| 156 | <listitem><para><emphasis>SystemTap:</emphasis> A free software infrastructure | 156 | <listitem><para><emphasis>SystemTap:</emphasis> A free software infrastructure |
| 157 | that simplifies information gathering about a running Linux system. | 157 | that simplifies information gathering about a running Linux system. |
| 158 | This information helps you diagnose performance or functional problems. | 158 | This information helps you diagnose performance or functional problems. |
| 159 | SystemTap is not available as a user-space tool through the Eclipse IDE Yocto Plug-in. | 159 | SystemTap is not available as a user-space tool through the Eclipse IDE Yocto Plug-in. |
| 160 | See <ulink url='http://sourceware.org/systemtap'></ulink> for more information | 160 | See <ulink url='http://sourceware.org/systemtap'></ulink> for more information |
| 161 | on SystemTap.</para></listitem> | 161 | on SystemTap.</para></listitem> |
| 162 | <listitem><para><emphasis>Lttng-ust:</emphasis> A User-space Tracer designed to | 162 | <listitem><para><emphasis>Lttng-ust:</emphasis> A User-space Tracer designed to |
| 163 | provide detailed information on user-space activity. | 163 | provide detailed information on user-space activity. |
| 164 | See <ulink url='http://lttng.org/ust'></ulink> for more information on Lttng-ust. | 164 | See <ulink url='http://lttng.org/ust'></ulink> for more information on Lttng-ust. |
| 165 | </para></listitem> | 165 | </para></listitem> |
| 166 | </itemizedlist> | 166 | </itemizedlist> |
diff --git a/documentation/adt-manual/adt-manual.xml b/documentation/adt-manual/adt-manual.xml index 25bc27e4c5..ac98d43bca 100644 --- a/documentation/adt-manual/adt-manual.xml +++ b/documentation/adt-manual/adt-manual.xml | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" | 2 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" |
| 3 | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > | 3 | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > |
| 4 | 4 | ||
| 5 | <book id='adt-manual' lang='en' | 5 | <book id='adt-manual' lang='en' |
| 6 | xmlns:xi="http://www.w3.org/2003/XInclude" | 6 | xmlns:xi="http://www.w3.org/2003/XInclude" |
| 7 | xmlns="http://docbook.org/ns/docbook" | 7 | xmlns="http://docbook.org/ns/docbook" |
| 8 | > | 8 | > |
| @@ -10,10 +10,10 @@ | |||
| 10 | 10 | ||
| 11 | <mediaobject> | 11 | <mediaobject> |
| 12 | <imageobject> | 12 | <imageobject> |
| 13 | <imagedata fileref='figures/adt-title.png' | 13 | <imagedata fileref='figures/adt-title.png' |
| 14 | format='SVG' | 14 | format='SVG' |
| 15 | align='left' scalefit='1' width='100%'/> | 15 | align='left' scalefit='1' width='100%'/> |
| 16 | </imageobject> | 16 | </imageobject> |
| 17 | </mediaobject> | 17 | </mediaobject> |
| 18 | 18 | ||
| 19 | <title></title> | 19 | <title></title> |
| @@ -68,12 +68,12 @@ | |||
| 68 | 68 | ||
| 69 | <legalnotice> | 69 | <legalnotice> |
| 70 | <para> | 70 | <para> |
| 71 | Permission is granted to copy, distribute and/or modify this document under | 71 | Permission is granted to copy, distribute and/or modify this document under |
| 72 | the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England & Wales</ulink> as published by Creative Commons. | 72 | the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England & Wales</ulink> as published by Creative Commons. |
| 73 | </para> | 73 | </para> |
| 74 | <note> | 74 | <note> |
| 75 | Due to production processes, there could be differences between the Yocto Project | 75 | Due to production processes, there could be differences between the Yocto Project |
| 76 | documentation bundled in the release tarball and the | 76 | documentation bundled in the release tarball and the |
| 77 | <ulink url='&YOCTO_DOCS_ADT_URL;'>Yocto Project Application Developer's Guide</ulink> on | 77 | <ulink url='&YOCTO_DOCS_ADT_URL;'>Yocto Project Application Developer's Guide</ulink> on |
| 78 | the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website. | 78 | the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website. |
| 79 | For the latest version of this manual, see the manual on the website. | 79 | For the latest version of this manual, see the manual on the website. |
| @@ -97,6 +97,6 @@ | |||
| 97 | --> | 97 | --> |
| 98 | 98 | ||
| 99 | </book> | 99 | </book> |
| 100 | <!-- | 100 | <!-- |
| 101 | vim: expandtab tw=80 ts=4 | 101 | vim: expandtab tw=80 ts=4 |
| 102 | --> | 102 | --> |
diff --git a/documentation/adt-manual/adt-package.xml b/documentation/adt-manual/adt-package.xml index da8d10fa4b..9e68c3131e 100644 --- a/documentation/adt-manual/adt-package.xml +++ b/documentation/adt-manual/adt-package.xml | |||
| @@ -6,10 +6,10 @@ | |||
| 6 | <title>Optionally Customizing the Development Packages Installation</title> | 6 | <title>Optionally Customizing the Development Packages Installation</title> |
| 7 | 7 | ||
| 8 | <para> | 8 | <para> |
| 9 | Because the Yocto Project is suited for embedded Linux development, it is | 9 | Because the Yocto Project is suited for embedded Linux development, it is |
| 10 | likely that you will need to customize your development packages installation. | 10 | likely that you will need to customize your development packages installation. |
| 11 | For example, if you are developing a minimal image, then you might not need | 11 | For example, if you are developing a minimal image, then you might not need |
| 12 | certain packages (e.g. graphics support packages). | 12 | certain packages (e.g. graphics support packages). |
| 13 | Thus, you would like to be able to remove those packages from your target sysroot. | 13 | Thus, you would like to be able to remove those packages from your target sysroot. |
| 14 | </para> | 14 | </para> |
| 15 | 15 | ||
| @@ -17,24 +17,24 @@ | |||
| 17 | <title>Package Management Systems</title> | 17 | <title>Package Management Systems</title> |
| 18 | 18 | ||
| 19 | <para> | 19 | <para> |
| 20 | The OpenEmbedded build system supports the generation of sysroot files using | 20 | The OpenEmbedded build system supports the generation of sysroot files using |
| 21 | three different Package Management Systems (PMS): | 21 | three different Package Management Systems (PMS): |
| 22 | <itemizedlist> | 22 | <itemizedlist> |
| 23 | <listitem><para><emphasis>OPKG:</emphasis> A less well known PMS whose use | 23 | <listitem><para><emphasis>OPKG:</emphasis> A less well known PMS whose use |
| 24 | originated in the OpenEmbedded and OpenWrt embedded Linux projects. | 24 | originated in the OpenEmbedded and OpenWrt embedded Linux projects. |
| 25 | This PMS works with files packaged in an <filename>.ipk</filename> format. | 25 | This PMS works with files packaged in an <filename>.ipk</filename> format. |
| 26 | See <ulink url='http://en.wikipedia.org/wiki/Opkg'></ulink> for more | 26 | See <ulink url='http://en.wikipedia.org/wiki/Opkg'></ulink> for more |
| 27 | information about OPKG.</para></listitem> | 27 | information about OPKG.</para></listitem> |
| 28 | <listitem><para><emphasis>RPM:</emphasis> A more widely known PMS intended for GNU/Linux | 28 | <listitem><para><emphasis>RPM:</emphasis> A more widely known PMS intended for GNU/Linux |
| 29 | distributions. | 29 | distributions. |
| 30 | This PMS works with files packaged in an <filename>.rms</filename> format. | 30 | This PMS works with files packaged in an <filename>.rms</filename> format. |
| 31 | The build system currently installs through this PMS by default. | 31 | The build system currently installs through this PMS by default. |
| 32 | See <ulink url='http://en.wikipedia.org/wiki/RPM_Package_Manager'></ulink> | 32 | See <ulink url='http://en.wikipedia.org/wiki/RPM_Package_Manager'></ulink> |
| 33 | for more information about RPM.</para></listitem> | 33 | for more information about RPM.</para></listitem> |
| 34 | <listitem><para><emphasis>Debian:</emphasis> The PMS for Debian-based systems | 34 | <listitem><para><emphasis>Debian:</emphasis> The PMS for Debian-based systems |
| 35 | is built on many PMS tools. | 35 | is built on many PMS tools. |
| 36 | The lower-level PMS tool <filename>dpkg</filename> forms the base of the Debian PMS. | 36 | The lower-level PMS tool <filename>dpkg</filename> forms the base of the Debian PMS. |
| 37 | For information on dpkg see | 37 | For information on dpkg see |
| 38 | <ulink url='http://en.wikipedia.org/wiki/Dpkg'></ulink>.</para></listitem> | 38 | <ulink url='http://en.wikipedia.org/wiki/Dpkg'></ulink>.</para></listitem> |
| 39 | </itemizedlist> | 39 | </itemizedlist> |
| 40 | </para> | 40 | </para> |
| @@ -44,13 +44,13 @@ | |||
| 44 | <title>Configuring the PMS</title> | 44 | <title>Configuring the PMS</title> |
| 45 | 45 | ||
| 46 | <para> | 46 | <para> |
| 47 | Whichever PMS you are using, you need to be sure that the | 47 | Whichever PMS you are using, you need to be sure that the |
| 48 | <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink> | 48 | <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink> |
| 49 | variable in the <filename>conf/local.conf</filename> | 49 | variable in the <filename>conf/local.conf</filename> |
| 50 | file is set to reflect that system. | 50 | file is set to reflect that system. |
| 51 | The first value you choose for the variable specifies the package file format for the root | 51 | The first value you choose for the variable specifies the package file format for the root |
| 52 | filesystem at sysroot. | 52 | filesystem at sysroot. |
| 53 | Additional values specify additional formats for convenience or testing. | 53 | Additional values specify additional formats for convenience or testing. |
| 54 | See the configuration file for details. | 54 | See the configuration file for details. |
| 55 | </para> | 55 | </para> |
| 56 | 56 | ||
| @@ -61,14 +61,14 @@ | |||
| 61 | </note> | 61 | </note> |
| 62 | 62 | ||
| 63 | <para> | 63 | <para> |
| 64 | As an example, consider a scenario where you are using OPKG and you want to add | 64 | As an example, consider a scenario where you are using OPKG and you want to add |
| 65 | the <filename>libglade</filename> package to the target sysroot. | 65 | the <filename>libglade</filename> package to the target sysroot. |
| 66 | </para> | 66 | </para> |
| 67 | 67 | ||
| 68 | <para> | 68 | <para> |
| 69 | First, you should generate the <filename>ipk</filename> file for the | 69 | First, you should generate the <filename>ipk</filename> file for the |
| 70 | <filename>libglade</filename> package and add it | 70 | <filename>libglade</filename> package and add it |
| 71 | into a working <filename>opkg</filename> repository. | 71 | into a working <filename>opkg</filename> repository. |
| 72 | Use these commands: | 72 | Use these commands: |
| 73 | <literallayout class='monospaced'> | 73 | <literallayout class='monospaced'> |
| 74 | $ bitbake libglade | 74 | $ bitbake libglade |
| @@ -77,12 +77,12 @@ | |||
| 77 | </para> | 77 | </para> |
| 78 | 78 | ||
| 79 | <para> | 79 | <para> |
| 80 | Next, source the environment setup script found in the | 80 | Next, source the environment setup script found in the |
| 81 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>. | 81 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>. |
| 82 | Follow that by setting up the installation destination to point to your | 82 | Follow that by setting up the installation destination to point to your |
| 83 | sysroot as <filename><sysroot_dir></filename>. | 83 | sysroot as <filename><sysroot_dir></filename>. |
| 84 | Finally, have an OPKG configuration file <filename><conf_file></filename> | 84 | Finally, have an OPKG configuration file <filename><conf_file></filename> |
| 85 | that corresponds to the <filename>opkg</filename> repository you have just created. | 85 | that corresponds to the <filename>opkg</filename> repository you have just created. |
| 86 | The following command forms should now work: | 86 | The following command forms should now work: |
| 87 | <literallayout class='monospaced'> | 87 | <literallayout class='monospaced'> |
| 88 | $ opkg-cl –f <conf_file> -o <sysroot_dir> update | 88 | $ opkg-cl –f <conf_file> -o <sysroot_dir> update |
diff --git a/documentation/adt-manual/adt-prepare.xml b/documentation/adt-manual/adt-prepare.xml index 040618482f..fa191da002 100644 --- a/documentation/adt-manual/adt-prepare.xml +++ b/documentation/adt-manual/adt-prepare.xml | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | <para> | 9 | <para> |
| 10 | In order to develop applications, you need set up your host development system. | 10 | In order to develop applications, you need set up your host development system. |
| 11 | Several ways exist that allow you to install cross-development tools, QEMU, the | 11 | Several ways exist that allow you to install cross-development tools, QEMU, the |
| 12 | Eclipse Yocto Plug-in, and other tools. | 12 | Eclipse Yocto Plug-in, and other tools. |
| 13 | This chapter describes how to prepare for application development. | 13 | This chapter describes how to prepare for application development. |
| 14 | </para> | 14 | </para> |
| @@ -22,39 +22,39 @@ | |||
| 22 | Regardless of the installation method you choose, | 22 | Regardless of the installation method you choose, |
| 23 | you must <filename>source</filename> the cross-toolchain | 23 | you must <filename>source</filename> the cross-toolchain |
| 24 | environment setup script before you use a toolchain. | 24 | environment setup script before you use a toolchain. |
| 25 | See the "<link linkend='setting-up-the-cross-development-environment'>Setting Up the | 25 | See the "<link linkend='setting-up-the-cross-development-environment'>Setting Up the |
| 26 | Cross-Development Environment</link>" section for more information. | 26 | Cross-Development Environment</link>" section for more information. |
| 27 | </para> | 27 | </para> |
| 28 | 28 | ||
| 29 | <note> | 29 | <note> |
| 30 | <para>Avoid mixing installation methods when installing toolchains for different architectures. | 30 | <para>Avoid mixing installation methods when installing toolchains for different architectures. |
| 31 | For example, avoid using the ADT Installer to install some toolchains and then hand-installing | 31 | For example, avoid using the ADT Installer to install some toolchains and then hand-installing |
| 32 | cross-development toolchains by running the toolchain installer for different architectures. | 32 | cross-development toolchains by running the toolchain installer for different architectures. |
| 33 | Mixing installation methods can result in situations where the ADT Installer becomes | 33 | Mixing installation methods can result in situations where the ADT Installer becomes |
| 34 | unreliable and might not install the toolchain.</para> | 34 | unreliable and might not install the toolchain.</para> |
| 35 | <para>If you must mix installation methods, you might avoid problems by deleting | 35 | <para>If you must mix installation methods, you might avoid problems by deleting |
| 36 | <filename>/var/lib/opkg</filename>, thus purging the <filename>opkg</filename> package | 36 | <filename>/var/lib/opkg</filename>, thus purging the <filename>opkg</filename> package |
| 37 | metadata</para> | 37 | metadata</para> |
| 38 | </note> | 38 | </note> |
| 39 | 39 | ||
| 40 | <para> | 40 | <para> |
| 41 | <itemizedlist> | 41 | <itemizedlist> |
| 42 | <listitem><para><emphasis>Use the ADT Installer Script:</emphasis> | 42 | <listitem><para><emphasis>Use the ADT Installer Script:</emphasis> |
| 43 | This method is the recommended way to install the ADT because it | 43 | This method is the recommended way to install the ADT because it |
| 44 | automates much of the process for you. | 44 | automates much of the process for you. |
| 45 | For example, you can configure the installation to install the QEMU emulator | 45 | For example, you can configure the installation to install the QEMU emulator |
| 46 | and the user-space NFS, specify which root filesystem profiles to download, | 46 | and the user-space NFS, specify which root filesystem profiles to download, |
| 47 | and define the target sysroot location.</para></listitem> | 47 | and define the target sysroot location.</para></listitem> |
| 48 | <listitem><para><emphasis>Use an Existing Toolchain:</emphasis> | 48 | <listitem><para><emphasis>Use an Existing Toolchain:</emphasis> |
| 49 | Using this method, you select and download an architecture-specific | 49 | Using this method, you select and download an architecture-specific |
| 50 | toolchain installer and then run the script to hand-install the toolchain. | 50 | toolchain installer and then run the script to hand-install the toolchain. |
| 51 | If you use this method, you just get the cross-toolchain and QEMU - you do not | 51 | If you use this method, you just get the cross-toolchain and QEMU - you do not |
| 52 | get any of the other mentioned benefits had you run the ADT Installer script.</para></listitem> | 52 | get any of the other mentioned benefits had you run the ADT Installer script.</para></listitem> |
| 53 | <listitem><para><emphasis>Use the Toolchain from within the Build Directory:</emphasis> | 53 | <listitem><para><emphasis>Use the Toolchain from within the Build Directory:</emphasis> |
| 54 | If you already have a | 54 | If you already have a |
| 55 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, | 55 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, |
| 56 | you can build the cross-toolchain within the directory. | 56 | you can build the cross-toolchain within the directory. |
| 57 | However, like the previous method mentioned, you only get the cross-toolchain and QEMU - you | 57 | However, like the previous method mentioned, you only get the cross-toolchain and QEMU - you |
| 58 | do not get any of the other benefits without taking separate steps.</para></listitem> | 58 | do not get any of the other benefits without taking separate steps.</para></listitem> |
| 59 | </itemizedlist> | 59 | </itemizedlist> |
| 60 | </para> | 60 | </para> |
| @@ -63,14 +63,14 @@ | |||
| 63 | <title>Using the ADT Installer</title> | 63 | <title>Using the ADT Installer</title> |
| 64 | 64 | ||
| 65 | <para> | 65 | <para> |
| 66 | To run the ADT Installer, you need to get the ADT Installer tarball, be sure | 66 | To run the ADT Installer, you need to get the ADT Installer tarball, be sure |
| 67 | you have the necessary host development packages that support the ADT Installer, | 67 | you have the necessary host development packages that support the ADT Installer, |
| 68 | and then run the ADT Installer Script. | 68 | and then run the ADT Installer Script. |
| 69 | </para> | 69 | </para> |
| 70 | 70 | ||
| 71 | <para> | 71 | <para> |
| 72 | For a list of the host packages needed to support ADT installation and use, see the | 72 | For a list of the host packages needed to support ADT installation and use, see the |
| 73 | "ADT Installer Extras" lists in the | 73 | "ADT Installer Extras" lists in the |
| 74 | "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>" section | 74 | "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>" section |
| 75 | of the Yocto Project Reference Manual. | 75 | of the Yocto Project Reference Manual. |
| 76 | </para> | 76 | </para> |
| @@ -80,27 +80,27 @@ | |||
| 80 | 80 | ||
| 81 | <para> | 81 | <para> |
| 82 | The ADT Installer is contained in the ADT Installer tarball. | 82 | The ADT Installer is contained in the ADT Installer tarball. |
| 83 | You can download the tarball into any directory from the | 83 | You can download the tarball into any directory from the |
| 84 | <ulink url='&YOCTO_DL_URL;/releases'>Index of Releases</ulink>, specifically | 84 | <ulink url='&YOCTO_DL_URL;/releases'>Index of Releases</ulink>, specifically |
| 85 | at | 85 | at |
| 86 | <ulink url='&YOCTO_ADTINSTALLER_DL_URL;'></ulink>. | 86 | <ulink url='&YOCTO_ADTINSTALLER_DL_URL;'></ulink>. |
| 87 | Or, you can use BitBake to generate the tarball inside the existing | 87 | Or, you can use BitBake to generate the tarball inside the existing |
| 88 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. | 88 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. |
| 89 | </para> | 89 | </para> |
| 90 | 90 | ||
| 91 | <para> | 91 | <para> |
| 92 | If you use BitBake to generate the ADT Installer tarball, you must | 92 | If you use BitBake to generate the ADT Installer tarball, you must |
| 93 | <filename>source</filename> the environment setup script | 93 | <filename>source</filename> the environment setup script |
| 94 | (<filename>&OE_INIT_FILE;</filename>) located | 94 | (<filename>&OE_INIT_FILE;</filename>) located |
| 95 | in the Source Directory before running the <filename>bitbake</filename> | 95 | in the Source Directory before running the <filename>bitbake</filename> |
| 96 | command that creates the tarball. | 96 | command that creates the tarball. |
| 97 | </para> | 97 | </para> |
| 98 | 98 | ||
| 99 | <para> | 99 | <para> |
| 100 | The following example commands download the Poky tarball, set up the | 100 | The following example commands download the Poky tarball, set up the |
| 101 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>, | 101 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>, |
| 102 | set up the environment while also creating the default Build Directory, | 102 | set up the environment while also creating the default Build Directory, |
| 103 | and run the <filename>bitbake</filename> command that results in the tarball | 103 | and run the <filename>bitbake</filename> command that results in the tarball |
| 104 | <filename>~/yocto-project/build/tmp/deploy/sdk/adt_installer.tar.bz2</filename>: | 104 | <filename>~/yocto-project/build/tmp/deploy/sdk/adt_installer.tar.bz2</filename>: |
| 105 | <literallayout class='monospaced'> | 105 | <literallayout class='monospaced'> |
| 106 | $ cd ~ | 106 | $ cd ~ |
| @@ -120,97 +120,97 @@ | |||
| 120 | <para> | 120 | <para> |
| 121 | Before running the ADT Installer script, you need to unpack the tarball. | 121 | Before running the ADT Installer script, you need to unpack the tarball. |
| 122 | You can unpack the tarball in any directory you wish. | 122 | You can unpack the tarball in any directory you wish. |
| 123 | For example, this command copies the ADT Installer tarball from where | 123 | For example, this command copies the ADT Installer tarball from where |
| 124 | it was built into the home directory and then unpacks the tarball into | 124 | it was built into the home directory and then unpacks the tarball into |
| 125 | a top-level directory named <filename>adt-installer</filename>: | 125 | a top-level directory named <filename>adt-installer</filename>: |
| 126 | <literallayout class='monospaced'> | 126 | <literallayout class='monospaced'> |
| 127 | $ cd ~ | 127 | $ cd ~ |
| 128 | $ cp ~/poky/build/tmp/deploy/sdk/adt_installer.tar.bz2 $HOME | 128 | $ cp ~/poky/build/tmp/deploy/sdk/adt_installer.tar.bz2 $HOME |
| 129 | $ tar -xjf adt_installer.tar.bz2 | 129 | $ tar -xjf adt_installer.tar.bz2 |
| 130 | </literallayout> | 130 | </literallayout> |
| 131 | Unpacking it creates the directory <filename>adt-installer</filename>, | 131 | Unpacking it creates the directory <filename>adt-installer</filename>, |
| 132 | which contains the ADT Installer script (<filename>adt_installer</filename>) | 132 | which contains the ADT Installer script (<filename>adt_installer</filename>) |
| 133 | and its configuration file (<filename>adt_installer.conf</filename>). | 133 | and its configuration file (<filename>adt_installer.conf</filename>). |
| 134 | </para> | 134 | </para> |
| 135 | 135 | ||
| 136 | <para> | 136 | <para> |
| 137 | Before you run the script, however, you should examine the ADT Installer configuration | 137 | Before you run the script, however, you should examine the ADT Installer configuration |
| 138 | file and be sure you are going to get what you want. | 138 | file and be sure you are going to get what you want. |
| 139 | Your configurations determine which kernel and filesystem image are downloaded. | 139 | Your configurations determine which kernel and filesystem image are downloaded. |
| 140 | </para> | 140 | </para> |
| 141 | 141 | ||
| 142 | <para> | 142 | <para> |
| 143 | The following list describes the configurations you can define for the ADT Installer. | 143 | The following list describes the configurations you can define for the ADT Installer. |
| 144 | For configuration values and restrictions, see the comments in | 144 | For configuration values and restrictions, see the comments in |
| 145 | the <filename>adt-installer.conf</filename> file: | 145 | the <filename>adt-installer.conf</filename> file: |
| 146 | 146 | ||
| 147 | <itemizedlist> | 147 | <itemizedlist> |
| 148 | <listitem><para><filename>YOCTOADT_REPO</filename>: This area | 148 | <listitem><para><filename>YOCTOADT_REPO</filename>: This area |
| 149 | includes the IPKG-based packages and the root filesystem upon which | 149 | includes the IPKG-based packages and the root filesystem upon which |
| 150 | the installation is based. | 150 | the installation is based. |
| 151 | If you want to set up your own IPKG repository pointed to by | 151 | If you want to set up your own IPKG repository pointed to by |
| 152 | <filename>YOCTOADT_REPO</filename>, you need to be sure that the | 152 | <filename>YOCTOADT_REPO</filename>, you need to be sure that the |
| 153 | directory structure follows the same layout as the reference directory | 153 | directory structure follows the same layout as the reference directory |
| 154 | set up at <ulink url='http://adtrepo.yoctoproject.org'></ulink>. | 154 | set up at <ulink url='http://adtrepo.yoctoproject.org'></ulink>. |
| 155 | Also, your repository needs to be accessible through HTTP.</para></listitem> | 155 | Also, your repository needs to be accessible through HTTP.</para></listitem> |
| 156 | <listitem><para><filename>YOCTOADT_TARGETS</filename>: The machine | 156 | <listitem><para><filename>YOCTOADT_TARGETS</filename>: The machine |
| 157 | target architectures for which you want to set up cross-development | 157 | target architectures for which you want to set up cross-development |
| 158 | environments.</para></listitem> | 158 | environments.</para></listitem> |
| 159 | <listitem><para><filename>YOCTOADT_QEMU</filename>: Indicates whether | 159 | <listitem><para><filename>YOCTOADT_QEMU</filename>: Indicates whether |
| 160 | or not to install the emulator QEMU.</para></listitem> | 160 | or not to install the emulator QEMU.</para></listitem> |
| 161 | <listitem><para><filename>YOCTOADT_NFS_UTIL</filename>: Indicates whether | 161 | <listitem><para><filename>YOCTOADT_NFS_UTIL</filename>: Indicates whether |
| 162 | or not to install user-mode NFS. | 162 | or not to install user-mode NFS. |
| 163 | If you plan to use the Eclipse IDE Yocto plug-in against QEMU, | 163 | If you plan to use the Eclipse IDE Yocto plug-in against QEMU, |
| 164 | you should install NFS. | 164 | you should install NFS. |
| 165 | <note>To boot QEMU images using our userspace NFS server, you need | 165 | <note>To boot QEMU images using our userspace NFS server, you need |
| 166 | to be running <filename>portmap</filename> or <filename>rpcbind</filename>. | 166 | to be running <filename>portmap</filename> or <filename>rpcbind</filename>. |
| 167 | If you are running <filename>rpcbind</filename>, you will also need to add the | 167 | If you are running <filename>rpcbind</filename>, you will also need to add the |
| 168 | <filename>-i</filename> option when <filename>rpcbind</filename> starts up. | 168 | <filename>-i</filename> option when <filename>rpcbind</filename> starts up. |
| 169 | Please make sure you understand the security implications of doing this. | 169 | Please make sure you understand the security implications of doing this. |
| 170 | You might also have to modify your firewall settings to allow | 170 | You might also have to modify your firewall settings to allow |
| 171 | NFS booting to work.</note></para></listitem> | 171 | NFS booting to work.</note></para></listitem> |
| 172 | <listitem><para><filename>YOCTOADT_ROOTFS_<arch></filename>: The root | 172 | <listitem><para><filename>YOCTOADT_ROOTFS_<arch></filename>: The root |
| 173 | filesystem images you want to download from the | 173 | filesystem images you want to download from the |
| 174 | <filename>YOCTOADT_IPKG_REPO</filename> repository.</para></listitem> | 174 | <filename>YOCTOADT_IPKG_REPO</filename> repository.</para></listitem> |
| 175 | <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_IMAGE_<arch></filename>: The | 175 | <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_IMAGE_<arch></filename>: The |
| 176 | particular root filesystem used to extract and create the target sysroot. | 176 | particular root filesystem used to extract and create the target sysroot. |
| 177 | The value of this variable must have been specified with | 177 | The value of this variable must have been specified with |
| 178 | <filename>YOCTOADT_ROOTFS_<arch></filename>. | 178 | <filename>YOCTOADT_ROOTFS_<arch></filename>. |
| 179 | For example, if you downloaded both <filename>minimal</filename> and | 179 | For example, if you downloaded both <filename>minimal</filename> and |
| 180 | <filename>sato-sdk</filename> images by setting | 180 | <filename>sato-sdk</filename> images by setting |
| 181 | <filename>YOCTOADT_ROOTFS_<arch></filename> | 181 | <filename>YOCTOADT_ROOTFS_<arch></filename> |
| 182 | to "minimal sato-sdk", then <filename>YOCTOADT_ROOTFS_<arch></filename> | 182 | to "minimal sato-sdk", then <filename>YOCTOADT_ROOTFS_<arch></filename> |
| 183 | must be set to either <filename>minimal</filename> or | 183 | must be set to either <filename>minimal</filename> or |
| 184 | <filename>sato-sdk</filename>.</para></listitem> | 184 | <filename>sato-sdk</filename>.</para></listitem> |
| 185 | <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_LOC_<arch></filename>: The | 185 | <listitem><para><filename>YOCTOADT_TARGET_SYSROOT_LOC_<arch></filename>: The |
| 186 | location on the development host where the target sysroot is created. | 186 | location on the development host where the target sysroot is created. |
| 187 | </para></listitem> | 187 | </para></listitem> |
| 188 | </itemizedlist> | 188 | </itemizedlist> |
| 189 | </para> | 189 | </para> |
| 190 | 190 | ||
| 191 | <para> | 191 | <para> |
| 192 | After you have configured the <filename>adt_installer.conf</filename> file, | 192 | After you have configured the <filename>adt_installer.conf</filename> file, |
| 193 | run the installer using the following command. | 193 | run the installer using the following command. |
| 194 | Be sure that you are not trying to use cross-compilation tools. | 194 | Be sure that you are not trying to use cross-compilation tools. |
| 195 | When you run the installer, the environment must use a | 195 | When you run the installer, the environment must use a |
| 196 | host <filename>gcc</filename>: | 196 | host <filename>gcc</filename>: |
| 197 | <literallayout class='monospaced'> | 197 | <literallayout class='monospaced'> |
| 198 | $ cd ~/adt-installer | 198 | $ cd ~/adt-installer |
| 199 | $ ./adt_installer | 199 | $ ./adt_installer |
| 200 | </literallayout> | 200 | </literallayout> |
| 201 | Once the installer begins to run, you are asked to enter the location for | 201 | Once the installer begins to run, you are asked to enter the location for |
| 202 | cross-toolchain installation. | 202 | cross-toolchain installation. |
| 203 | The default location is <filename>/opt/poky/<release></filename>. | 203 | The default location is <filename>/opt/poky/<release></filename>. |
| 204 | After selecting the location, you are prompted to run in | 204 | After selecting the location, you are prompted to run in |
| 205 | interactive or silent mode. | 205 | interactive or silent mode. |
| 206 | If you want to closely monitor the installation, choose “I” for interactive | 206 | If you want to closely monitor the installation, choose “I” for interactive |
| 207 | mode rather than “S” for silent mode. | 207 | mode rather than “S” for silent mode. |
| 208 | Follow the prompts from the script to complete the installation. | 208 | Follow the prompts from the script to complete the installation. |
| 209 | </para> | 209 | </para> |
| 210 | 210 | ||
| 211 | <para> | 211 | <para> |
| 212 | Once the installation completes, the ADT, which includes the cross-toolchain, is installed. | 212 | Once the installation completes, the ADT, which includes the cross-toolchain, is installed. |
| 213 | You will notice environment setup files for the cross-toolchain in | 213 | You will notice environment setup files for the cross-toolchain in |
| 214 | <filename>&YOCTO_ADTPATH_DIR;</filename>, | 214 | <filename>&YOCTO_ADTPATH_DIR;</filename>, |
| 215 | and image tarballs in the <filename>adt-installer</filename> | 215 | and image tarballs in the <filename>adt-installer</filename> |
| 216 | directory according to your installer configurations, and the target sysroot located | 216 | directory according to your installer configurations, and the target sysroot located |
| @@ -224,65 +224,65 @@ | |||
| 224 | <title>Using a Cross-Toolchain Tarball</title> | 224 | <title>Using a Cross-Toolchain Tarball</title> |
| 225 | 225 | ||
| 226 | <para> | 226 | <para> |
| 227 | If you want to simply install the cross-toolchain by hand, you can do so by running the | 227 | If you want to simply install the cross-toolchain by hand, you can do so by running the |
| 228 | toolchain installer. | 228 | toolchain installer. |
| 229 | If you use this method to install the cross-toolchain and you still need to install the target | 229 | If you use this method to install the cross-toolchain and you still need to install the target |
| 230 | sysroot, you will have to extract and install sysroot separately. | 230 | sysroot, you will have to extract and install sysroot separately. |
| 231 | For information on how to do this, see the | 231 | For information on how to do this, see the |
| 232 | "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" section. | 232 | "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" section. |
| 233 | </para> | 233 | </para> |
| 234 | 234 | ||
| 235 | <para> | 235 | <para> |
| 236 | Follow these steps: | 236 | Follow these steps: |
| 237 | <orderedlist> | 237 | <orderedlist> |
| 238 | <listitem><para>Go to | 238 | <listitem><para>Go to |
| 239 | <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink> | 239 | <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink> |
| 240 | and find the folder that matches your host development system | 240 | and find the folder that matches your host development system |
| 241 | (i.e. <filename>i686</filename> for 32-bit machines or | 241 | (i.e. <filename>i686</filename> for 32-bit machines or |
| 242 | <filename>x86-64</filename> for 64-bit machines).</para></listitem> | 242 | <filename>x86-64</filename> for 64-bit machines).</para></listitem> |
| 243 | <listitem><para>Go into that folder and download the toolchain installer whose name | 243 | <listitem><para>Go into that folder and download the toolchain installer whose name |
| 244 | includes the appropriate target architecture. | 244 | includes the appropriate target architecture. |
| 245 | For example, if your host development system is an Intel-based 64-bit system and | 245 | For example, if your host development system is an Intel-based 64-bit system and |
| 246 | you are going to use your cross-toolchain for an Intel-based 32-bit target, go into the | 246 | you are going to use your cross-toolchain for an Intel-based 32-bit target, go into the |
| 247 | <filename>x86_64</filename> folder and download the following installer: | 247 | <filename>x86_64</filename> folder and download the following installer: |
| 248 | <literallayout class='monospaced'> | 248 | <literallayout class='monospaced'> |
| 249 | poky-eglibc-x86_64-i586-toolchain-gmae-&DISTRO;.sh | 249 | poky-eglibc-x86_64-i586-toolchain-gmae-&DISTRO;.sh |
| 250 | </literallayout> | 250 | </literallayout> |
| 251 | <note><para>As an alternative to steps one and two, you can build the toolchain installer | 251 | <note><para>As an alternative to steps one and two, you can build the toolchain installer |
| 252 | if you have a <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. | 252 | if you have a <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. |
| 253 | If you need GMAE, you should use the <filename>bitbake meta-toolchain-gmae</filename> | 253 | If you need GMAE, you should use the <filename>bitbake meta-toolchain-gmae</filename> |
| 254 | command. | 254 | command. |
| 255 | The resulting installation script when run will support such development. | 255 | The resulting installation script when run will support such development. |
| 256 | However, if you are not concerned with GMAE, | 256 | However, if you are not concerned with GMAE, |
| 257 | you can generate the toolchain installer using | 257 | you can generate the toolchain installer using |
| 258 | <filename>bitbake meta-toolchain</filename>.</para> | 258 | <filename>bitbake meta-toolchain</filename>.</para> |
| 259 | <para>Use the appropriate <filename>bitbake</filename> command only after you have | 259 | <para>Use the appropriate <filename>bitbake</filename> command only after you have |
| 260 | sourced the <filename>&OE_INIT_PATH;</filename> script located in the Source | 260 | sourced the <filename>&OE_INIT_PATH;</filename> script located in the Source |
| 261 | Directory and you have made sure your <filename>conf/local.conf</filename> | 261 | Directory and you have made sure your <filename>conf/local.conf</filename> |
| 262 | variables are correct. | 262 | variables are correct. |
| 263 | In particular, you need to be sure the | 263 | In particular, you need to be sure the |
| 264 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | 264 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> |
| 265 | variable matches the architecture for which you are building and that the | 265 | variable matches the architecture for which you are building and that the |
| 266 | <filename>SDKMACHINE</filename> variable is correctly set if you are building | 266 | <filename>SDKMACHINE</filename> variable is correctly set if you are building |
| 267 | a toolchain for an architecture that differs from your current | 267 | a toolchain for an architecture that differs from your current |
| 268 | development host machine.</para> | 268 | development host machine.</para> |
| 269 | <para>When the <filename>bitbake</filename> command completes, the | 269 | <para>When the <filename>bitbake</filename> command completes, the |
| 270 | toolchain installer will be in <filename>tmp/deploy/sdk</filename> in the | 270 | toolchain installer will be in <filename>tmp/deploy/sdk</filename> in the |
| 271 | Build Directory. | 271 | Build Directory. |
| 272 | </para></note> | 272 | </para></note> |
| 273 | </para></listitem> | 273 | </para></listitem> |
| 274 | <listitem><para>Once you have the installer, run it to install the toolchain. | 274 | <listitem><para>Once you have the installer, run it to install the toolchain. |
| 275 | You must change the permissions on the toolchain installer | 275 | You must change the permissions on the toolchain installer |
| 276 | script so that it is executable.</para> | 276 | script so that it is executable.</para> |
| 277 | <para>The following command shows how to run the installer given a toolchain tarball | 277 | <para>The following command shows how to run the installer given a toolchain tarball |
| 278 | for a 64-bit development host system and a 32-bit target architecture. | 278 | for a 64-bit development host system and a 32-bit target architecture. |
| 279 | The example assumes the toolchain installer is located in <filename>~/Downloads/</filename>. | 279 | The example assumes the toolchain installer is located in <filename>~/Downloads/</filename>. |
| 280 | <literallayout class='monospaced'> | 280 | <literallayout class='monospaced'> |
| 281 | $ ~/Downloads/poky-eglibc-x86_64-i586-toolchain-gmae-&DISTRO;.sh | 281 | $ ~/Downloads/poky-eglibc-x86_64-i586-toolchain-gmae-&DISTRO;.sh |
| 282 | </literallayout> | 282 | </literallayout> |
| 283 | <note> | 283 | <note> |
| 284 | If you do not have write permissions for the directory into which you are installing | 284 | If you do not have write permissions for the directory into which you are installing |
| 285 | the toolchain, the toolchain installer notifies you and exits. | 285 | the toolchain, the toolchain installer notifies you and exits. |
| 286 | Be sure you have write permissions in the directory and run the installer again. | 286 | Be sure you have write permissions in the directory and run the installer again. |
| 287 | </note> | 287 | </note> |
| 288 | Once the tarball is expanded, the cross-toolchain is installed. | 288 | Once the tarball is expanded, the cross-toolchain is installed. |
| @@ -296,50 +296,50 @@ | |||
| 296 | <title>Using BitBake and the Build Directory</title> | 296 | <title>Using BitBake and the Build Directory</title> |
| 297 | 297 | ||
| 298 | <para> | 298 | <para> |
| 299 | A final way of making the cross-toolchain available is to use BitBake | 299 | A final way of making the cross-toolchain available is to use BitBake |
| 300 | to generate the toolchain within an existing | 300 | to generate the toolchain within an existing |
| 301 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. | 301 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. |
| 302 | This method does not install the toolchain into the | 302 | This method does not install the toolchain into the |
| 303 | <filename>/opt</filename> directory. | 303 | <filename>/opt</filename> directory. |
| 304 | As with the previous method, if you need to install the target sysroot, you must | 304 | As with the previous method, if you need to install the target sysroot, you must |
| 305 | do that separately as well. | 305 | do that separately as well. |
| 306 | </para> | 306 | </para> |
| 307 | 307 | ||
| 308 | <para> | 308 | <para> |
| 309 | Follow these steps to generate the toolchain into the Build Directory: | 309 | Follow these steps to generate the toolchain into the Build Directory: |
| 310 | <orderedlist> | 310 | <orderedlist> |
| 311 | <listitem><para>Source the environment setup script | 311 | <listitem><para>Source the environment setup script |
| 312 | <filename>&OE_INIT_FILE;</filename> located in the | 312 | <filename>&OE_INIT_FILE;</filename> located in the |
| 313 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>. | 313 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>. |
| 314 | </para></listitem> | 314 | </para></listitem> |
| 315 | <listitem><para>At this point, you should be sure that the | 315 | <listitem><para>At this point, you should be sure that the |
| 316 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> variable | 316 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> variable |
| 317 | in the <filename>local.conf</filename> file found in the | 317 | in the <filename>local.conf</filename> file found in the |
| 318 | <filename>conf</filename> directory of the Build Directory | 318 | <filename>conf</filename> directory of the Build Directory |
| 319 | is set for the target architecture. | 319 | is set for the target architecture. |
| 320 | Comments within the <filename>local.conf</filename> file list the values you | 320 | Comments within the <filename>local.conf</filename> file list the values you |
| 321 | can use for the <filename>MACHINE</filename> variable. | 321 | can use for the <filename>MACHINE</filename> variable. |
| 322 | <note>You can populate the Build Directory with the cross-toolchains for more | 322 | <note>You can populate the Build Directory with the cross-toolchains for more |
| 323 | than a single architecture. | 323 | than a single architecture. |
| 324 | You just need to edit the <filename>MACHINE</filename> variable in the | 324 | You just need to edit the <filename>MACHINE</filename> variable in the |
| 325 | <filename>local.conf</filename> file and re-run the BitBake | 325 | <filename>local.conf</filename> file and re-run the BitBake |
| 326 | command.</note></para></listitem> | 326 | command.</note></para></listitem> |
| 327 | <listitem><para>Run <filename>bitbake meta-ide-support</filename> to complete the | 327 | <listitem><para>Run <filename>bitbake meta-ide-support</filename> to complete the |
| 328 | cross-toolchain generation. | 328 | cross-toolchain generation. |
| 329 | <note>If you change out of your working directory after you | 329 | <note>If you change out of your working directory after you |
| 330 | <filename>source</filename> the environment setup script and before you run | 330 | <filename>source</filename> the environment setup script and before you run |
| 331 | the <filename>bitbake</filename> command, the command might not work. | 331 | the <filename>bitbake</filename> command, the command might not work. |
| 332 | Be sure to run the <filename>bitbake</filename> command immediately | 332 | Be sure to run the <filename>bitbake</filename> command immediately |
| 333 | after checking or editing the <filename>local.conf</filename> but without | 333 | after checking or editing the <filename>local.conf</filename> but without |
| 334 | changing out of your working directory.</note> | 334 | changing out of your working directory.</note> |
| 335 | Once the <filename>bitbake</filename> command finishes, | 335 | Once the <filename>bitbake</filename> command finishes, |
| 336 | the cross-toolchain is generated and populated within the Build Directory. | 336 | the cross-toolchain is generated and populated within the Build Directory. |
| 337 | You will notice environment setup files for the cross-toolchain in the | 337 | You will notice environment setup files for the cross-toolchain in the |
| 338 | Build Directory in the <filename>tmp</filename> directory. | 338 | Build Directory in the <filename>tmp</filename> directory. |
| 339 | Setup script filenames contain the strings <filename>environment-setup</filename>.</para> | 339 | Setup script filenames contain the strings <filename>environment-setup</filename>.</para> |
| 340 | <para>Be aware that when you use this method to install the toolchain you still need | 340 | <para>Be aware that when you use this method to install the toolchain you still need |
| 341 | to separately extract and install the sysroot filesystem. | 341 | to separately extract and install the sysroot filesystem. |
| 342 | For information on how to do this, see the | 342 | For information on how to do this, see the |
| 343 | "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" section. | 343 | "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" section. |
| 344 | </para></listitem> | 344 | </para></listitem> |
| 345 | </orderedlist> | 345 | </orderedlist> |
| @@ -351,24 +351,24 @@ | |||
| 351 | <title>Setting Up the Cross-Development Environment</title> | 351 | <title>Setting Up the Cross-Development Environment</title> |
| 352 | 352 | ||
| 353 | <para> | 353 | <para> |
| 354 | Before you can develop using the cross-toolchain, you need to set up the | 354 | Before you can develop using the cross-toolchain, you need to set up the |
| 355 | cross-development environment by sourcing the toolchain's environment setup script. | 355 | cross-development environment by sourcing the toolchain's environment setup script. |
| 356 | If you used the ADT Installer or hand-installed cross-toolchain, | 356 | If you used the ADT Installer or hand-installed cross-toolchain, |
| 357 | then you can find this script in the <filename>&YOCTO_ADTPATH_DIR;</filename> | 357 | then you can find this script in the <filename>&YOCTO_ADTPATH_DIR;</filename> |
| 358 | directory. | 358 | directory. |
| 359 | If you installed the toolchain in the | 359 | If you installed the toolchain in the |
| 360 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, | 360 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>, |
| 361 | you can find the environment setup | 361 | you can find the environment setup |
| 362 | script for the toolchain in the Build Directory's <filename>tmp</filename> directory. | 362 | script for the toolchain in the Build Directory's <filename>tmp</filename> directory. |
| 363 | </para> | 363 | </para> |
| 364 | 364 | ||
| 365 | <para> | 365 | <para> |
| 366 | Be sure to run the environment setup script that matches the architecture for | 366 | Be sure to run the environment setup script that matches the architecture for |
| 367 | which you are developing. | 367 | which you are developing. |
| 368 | Environment setup scripts begin with the string “<filename>environment-setup</filename>” | 368 | Environment setup scripts begin with the string “<filename>environment-setup</filename>” |
| 369 | and include as part of their name the architecture. | 369 | and include as part of their name the architecture. |
| 370 | For example, the toolchain environment setup script for a 64-bit IA-based architecture would | 370 | For example, the toolchain environment setup script for a 64-bit IA-based architecture would |
| 371 | be the following: | 371 | be the following: |
| 372 | <literallayout class='monospaced'> | 372 | <literallayout class='monospaced'> |
| 373 | &YOCTO_ADTPATH_DIR;/environment-setup-x86_64-poky-linux | 373 | &YOCTO_ADTPATH_DIR;/environment-setup-x86_64-poky-linux |
| 374 | </literallayout> | 374 | </literallayout> |
| @@ -379,7 +379,7 @@ | |||
| 379 | <title>Securing Kernel and Filesystem Images</title> | 379 | <title>Securing Kernel and Filesystem Images</title> |
| 380 | 380 | ||
| 381 | <para> | 381 | <para> |
| 382 | You will need to have a kernel and filesystem image to boot using your | 382 | You will need to have a kernel and filesystem image to boot using your |
| 383 | hardware or the QEMU emulator. | 383 | hardware or the QEMU emulator. |
| 384 | Furthermore, if you plan on booting your image using NFS or you want to use the root filesystem | 384 | Furthermore, if you plan on booting your image using NFS or you want to use the root filesystem |
| 385 | as the target sysroot, you need to extract the root filesystem. | 385 | as the target sysroot, you need to extract the root filesystem. |
| @@ -391,62 +391,62 @@ | |||
| 391 | <para> | 391 | <para> |
| 392 | To get the kernel and filesystem images, you either have to build them or download | 392 | To get the kernel and filesystem images, you either have to build them or download |
| 393 | pre-built versions. | 393 | pre-built versions. |
| 394 | You can find examples for both these situations in the | 394 | You can find examples for both these situations in the |
| 395 | "<ulink url='&YOCTO_DOCS_QS_URL;#test-run'>A Quick Test Run</ulink>" section of | 395 | "<ulink url='&YOCTO_DOCS_QS_URL;#test-run'>A Quick Test Run</ulink>" section of |
| 396 | the Yocto Project Quick Start. | 396 | the Yocto Project Quick Start. |
| 397 | </para> | 397 | </para> |
| 398 | 398 | ||
| 399 | <para> | 399 | <para> |
| 400 | The Yocto Project ships basic kernel and filesystem images for several | 400 | The Yocto Project ships basic kernel and filesystem images for several |
| 401 | architectures (<filename>x86</filename>, <filename>x86-64</filename>, | 401 | architectures (<filename>x86</filename>, <filename>x86-64</filename>, |
| 402 | <filename>mips</filename>, <filename>powerpc</filename>, and <filename>arm</filename>) | 402 | <filename>mips</filename>, <filename>powerpc</filename>, and <filename>arm</filename>) |
| 403 | that you can use unaltered in the QEMU emulator. | 403 | that you can use unaltered in the QEMU emulator. |
| 404 | These kernel images reside in the release | 404 | These kernel images reside in the release |
| 405 | area - <ulink url='&YOCTO_MACHINES_DL_URL;'></ulink> | 405 | area - <ulink url='&YOCTO_MACHINES_DL_URL;'></ulink> |
| 406 | and are ideal for experimentation using Yocto Project. | 406 | and are ideal for experimentation using Yocto Project. |
| 407 | For information on the image types you can build using the OpenEmbedded build system, | 407 | For information on the image types you can build using the OpenEmbedded build system, |
| 408 | see the | 408 | see the |
| 409 | "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in | 409 | "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in |
| 410 | the Yocto Project Reference Manual. | 410 | the Yocto Project Reference Manual. |
| 411 | </para> | 411 | </para> |
| 412 | 412 | ||
| 413 | <para> | 413 | <para> |
| 414 | If you are planning on developing against your image and you are not | 414 | If you are planning on developing against your image and you are not |
| 415 | building or using one of the Yocto Project development images | 415 | building or using one of the Yocto Project development images |
| 416 | (e.g. core-image-*-dev), you must be sure to include the development | 416 | (e.g. core-image-*-dev), you must be sure to include the development |
| 417 | packages as part of your image recipe. | 417 | packages as part of your image recipe. |
| 418 | </para> | 418 | </para> |
| 419 | 419 | ||
| 420 | <para> | 420 | <para> |
| 421 | Furthermore, if you plan on remotely deploying and debugging your | 421 | Furthermore, if you plan on remotely deploying and debugging your |
| 422 | application from within the | 422 | application from within the |
| 423 | Eclipse IDE, you must have an image that contains the Yocto Target Communication | 423 | Eclipse IDE, you must have an image that contains the Yocto Target Communication |
| 424 | Framework (TCF) agent (<filename>tcf-agent</filename>). | 424 | Framework (TCF) agent (<filename>tcf-agent</filename>). |
| 425 | By default, the Yocto Project provides only one type pre-built image that contains the | 425 | By default, the Yocto Project provides only one type pre-built image that contains the |
| 426 | <filename>tcf-agent</filename>. | 426 | <filename>tcf-agent</filename>. |
| 427 | And, those images are SDK (e.g.<filename>core-image-sato-sdk</filename>). | 427 | And, those images are SDK (e.g.<filename>core-image-sato-sdk</filename>). |
| 428 | </para> | 428 | </para> |
| 429 | 429 | ||
| 430 | <para> | 430 | <para> |
| 431 | If you want to use a different image type that contains the <filename>tcf-agent</filename>, | 431 | If you want to use a different image type that contains the <filename>tcf-agent</filename>, |
| 432 | you can do so one of two ways: | 432 | you can do so one of two ways: |
| 433 | <itemizedlist> | 433 | <itemizedlist> |
| 434 | <listitem><para>Modify the <filename>conf/local.conf</filename> configuration in | 434 | <listitem><para>Modify the <filename>conf/local.conf</filename> configuration in |
| 435 | the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | 435 | the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> |
| 436 | and then rebuild the image. | 436 | and then rebuild the image. |
| 437 | With this method, you need to modify the | 437 | With this method, you need to modify the |
| 438 | <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink> | 438 | <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink> |
| 439 | variable to have the value of "tools-debug" before rebuilding the image. | 439 | variable to have the value of "tools-debug" before rebuilding the image. |
| 440 | Once the image is rebuilt, the <filename>tcf-agent</filename> will be included | 440 | Once the image is rebuilt, the <filename>tcf-agent</filename> will be included |
| 441 | in the image and is launched automatically after the boot.</para></listitem> | 441 | in the image and is launched automatically after the boot.</para></listitem> |
| 442 | <listitem><para>Manually build the <filename>tcf-agent</filename>. | 442 | <listitem><para>Manually build the <filename>tcf-agent</filename>. |
| 443 | To build the agent, follow these steps: | 443 | To build the agent, follow these steps: |
| 444 | <orderedlist> | 444 | <orderedlist> |
| 445 | <listitem><para>Be sure the ADT is installed as described in the | 445 | <listitem><para>Be sure the ADT is installed as described in the |
| 446 | "<link linkend='installing-the-adt'>Installing the ADT and Toolchains</link>" section. | 446 | "<link linkend='installing-the-adt'>Installing the ADT and Toolchains</link>" section. |
| 447 | </para></listitem> | 447 | </para></listitem> |
| 448 | <listitem><para>Set up the cross-development environment as described in the | 448 | <listitem><para>Set up the cross-development environment as described in the |
| 449 | "<link linkend='setting-up-the-cross-development-environment'>Setting | 449 | "<link linkend='setting-up-the-cross-development-environment'>Setting |
| 450 | Up the Cross-Development Environment</link>" section.</para></listitem> | 450 | Up the Cross-Development Environment</link>" section.</para></listitem> |
| 451 | <listitem><para>Get the <filename>tcf-agent</filename> source code using | 451 | <listitem><para>Get the <filename>tcf-agent</filename> source code using |
| 452 | the following commands: | 452 | the following commands: |
| @@ -455,17 +455,17 @@ | |||
| 455 | $ cd agent | 455 | $ cd agent |
| 456 | </literallayout></para></listitem> | 456 | </literallayout></para></listitem> |
| 457 | <listitem><para>Modify the <filename>Makefile.inc</filename> file | 457 | <listitem><para>Modify the <filename>Makefile.inc</filename> file |
| 458 | for the cross-compilation environment by setting the | 458 | for the cross-compilation environment by setting the |
| 459 | <filename>OPSYS</filename> and | 459 | <filename>OPSYS</filename> and |
| 460 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | 460 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> |
| 461 | variables according to your target.</para></listitem> | 461 | variables according to your target.</para></listitem> |
| 462 | <listitem><para>Use the cross-development tools to build the | 462 | <listitem><para>Use the cross-development tools to build the |
| 463 | <filename>tcf-agent</filename>. | 463 | <filename>tcf-agent</filename>. |
| 464 | Before you "Make" the file, be sure your cross-tools are set up first. | 464 | Before you "Make" the file, be sure your cross-tools are set up first. |
| 465 | See the "<link linkend='makefile-based-projects'>Makefile-Based Projects</link>" | 465 | See the "<link linkend='makefile-based-projects'>Makefile-Based Projects</link>" |
| 466 | section for information on how to make sure the cross-tools are set up | 466 | section for information on how to make sure the cross-tools are set up |
| 467 | correctly.</para> | 467 | correctly.</para> |
| 468 | <para>If the build is successful, the <filename>tcf-agent</filename> output will | 468 | <para>If the build is successful, the <filename>tcf-agent</filename> output will |
| 469 | be <filename>obj/$(OPSYS)/$(MACHINE)/Debug/agent</filename>.</para></listitem> | 469 | be <filename>obj/$(OPSYS)/$(MACHINE)/Debug/agent</filename>.</para></listitem> |
| 470 | <listitem><para>Deploy the agent into the image's root filesystem.</para></listitem> | 470 | <listitem><para>Deploy the agent into the image's root filesystem.</para></listitem> |
| 471 | </orderedlist> | 471 | </orderedlist> |
| @@ -480,19 +480,19 @@ | |||
| 480 | <para> | 480 | <para> |
| 481 | You must extract the root filesystem if you want to boot the image using NFS | 481 | You must extract the root filesystem if you want to boot the image using NFS |
| 482 | or you want to use the root filesystem as the target sysroot. | 482 | or you want to use the root filesystem as the target sysroot. |
| 483 | For example, the Eclipse IDE environment with the Eclipse Yocto Plug-in installed allows you | 483 | For example, the Eclipse IDE environment with the Eclipse Yocto Plug-in installed allows you |
| 484 | to use QEMU to boot under NFS. | 484 | to use QEMU to boot under NFS. |
| 485 | Another example is if you want to develop your target application using the | 485 | Another example is if you want to develop your target application using the |
| 486 | root filesystem as the target sysroot. | 486 | root filesystem as the target sysroot. |
| 487 | </para> | 487 | </para> |
| 488 | 488 | ||
| 489 | <para> | 489 | <para> |
| 490 | To extract the root filesystem, first <filename>source</filename> | 490 | To extract the root filesystem, first <filename>source</filename> |
| 491 | the cross-development environment setup script and then | 491 | the cross-development environment setup script and then |
| 492 | use the <filename>runqemu-extract-sdk</filename> command on the | 492 | use the <filename>runqemu-extract-sdk</filename> command on the |
| 493 | filesystem image. | 493 | filesystem image. |
| 494 | For example, the following commands set up the environment and then extract | 494 | For example, the following commands set up the environment and then extract |
| 495 | the root filesystem from a previously built filesystem image tarball named | 495 | the root filesystem from a previously built filesystem image tarball named |
| 496 | <filename>core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2</filename>. | 496 | <filename>core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2</filename>. |
| 497 | The example extracts the root filesystem into the <filename>$HOME/qemux86-sato</filename> | 497 | The example extracts the root filesystem into the <filename>$HOME/qemux86-sato</filename> |
| 498 | directory: | 498 | directory: |
| @@ -502,7 +502,7 @@ | |||
| 502 | tmp/deploy/images/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 \ | 502 | tmp/deploy/images/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 \ |
| 503 | $HOME/qemux86-sato | 503 | $HOME/qemux86-sato |
| 504 | </literallayout> | 504 | </literallayout> |
| 505 | In this case, you could now point to the target sysroot at | 505 | In this case, you could now point to the target sysroot at |
| 506 | <filename>$HOME/qemux86-sato</filename>. | 506 | <filename>$HOME/qemux86-sato</filename>. |
| 507 | </para> | 507 | </para> |
| 508 | </section> | 508 | </section> |
