diff options
Diffstat (limited to 'documentation/adt-manual/adt-prepare.xml')
-rw-r--r-- | documentation/adt-manual/adt-prepare.xml | 330 |
1 files changed, 165 insertions, 165 deletions
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> |