blob: 66b15cd6cec74f614b0cb8d93f1a08a08229fb50 [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<chapter id='sdk-using-the-standard-sdk'>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06006 <title>Using the Standard SDK</title>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007
8 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06009 This chapter describes the standard SDK and how to install it.
10 Information includes unique installation and setup aspects for the
11 standard SDK.
12 <note>
13 For a side-by-side comparison of main features supported for a
14 standard SDK as compared to an extensible SDK, see the
15 "<link linkend='sdk-manual-intro'>Introduction</link>"
16 section.
17 </note>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050018 </para>
19
20 <para>
Brad Bishopc342db32019-05-15 21:57:59 -040021 You can use a standard SDK to work on Makefile and Autotools-based
22 projects.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060023 See the
Brad Bishop316dfdd2018-06-25 12:45:53 -040024 "<link linkend='sdk-working-projects'>Using the SDK Toolchain Directly</link>"
Patrick Williamsc0f7c042017-02-23 20:41:17 -060025 chapter for more information.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050026 </para>
27
Patrick Williamsc0f7c042017-02-23 20:41:17 -060028 <section id='sdk-standard-sdk-intro'>
29 <title>Why use the Standard SDK and What is in It?</title>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050030
Patrick Williamsc0f7c042017-02-23 20:41:17 -060031 <para>
32 The Standard SDK provides a cross-development toolchain and
33 libraries tailored to the contents of a specific image.
34 You would use the Standard SDK if you want a more traditional
35 toolchain experience as compared to the extensible SDK, which
36 provides an internal build system and the
37 <filename>devtool</filename> functionality.
38 </para>
39
40 <para>
41 The installed Standard SDK consists of several files and
42 directories.
43 Basically, it contains an SDK environment setup script, some
44 configuration files, and host and target root filesystems to
45 support usage.
46 You can see the directory structure in the
47 "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
48 section.
49 </para>
50 </section>
51
52 <section id='sdk-installing-the-sdk'>
53 <title>Installing the SDK</title>
54
55 <para>
Brad Bishop316dfdd2018-06-25 12:45:53 -040056 The first thing you need to do is install the SDK on your
57 <ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>Build Host</ulink>
58 by running the <filename>*.sh</filename> installation script.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060059 </para>
60
61 <para>
62 You can download a tarball installer, which includes the
63 pre-built toolchain, the <filename>runqemu</filename>
Brad Bishop316dfdd2018-06-25 12:45:53 -040064 script, and support files from the appropriate
65 <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'>toolchain</ulink>
66 directory within the Index of Releases.
67 Toolchains are available for several 32-bit and 64-bit
68 architectures with the <filename>x86_64</filename> directories,
69 respectively.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060070 The toolchains the Yocto Project provides are based off the
Brad Bishop316dfdd2018-06-25 12:45:53 -040071 <filename>core-image-sato</filename> and
72 <filename>core-image-minimal</filename> images and contain
Patrick Williamsc0f7c042017-02-23 20:41:17 -060073 libraries appropriate for developing against that image.
Patrick Williamsc0f7c042017-02-23 20:41:17 -060074 </para>
75
76 <para>
77 The names of the tarball installer scripts are such that a
78 string representing the host system appears first in the
79 filename and then is immediately followed by a string
80 representing the target architecture.
81 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050082 poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-<replaceable>release_version</replaceable>.sh
83
84 Where:
85 <replaceable>host_system</replaceable> is a string representing your development system:
86
87 i686 or x86_64.
88
Brad Bishop316dfdd2018-06-25 12:45:53 -040089 <replaceable>image_type</replaceable> is the image for which the SDK was built:
90
91 core-image-minimal or core-image-sato.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050092
93 <replaceable>arch</replaceable> is a string representing the tuned target architecture:
94
Brad Bishop316dfdd2018-06-25 12:45:53 -040095 aarch64, armv5e, core2-64, i586, mips32r2, mips64, ppc7400, or cortexa8hf-neon.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050096
Brad Bishop316dfdd2018-06-25 12:45:53 -040097 <replaceable>release_version</replaceable> is a string representing the release number of the Yocto Project:
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050098
99 &DISTRO;, &DISTRO;+snapshot
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500100 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600101 For example, the following SDK installer is for a 64-bit
102 development host system and a i586-tuned target architecture
103 based off the SDK for <filename>core-image-sato</filename> and
104 using the current &DISTRO; snapshot:
105 <literallayout class='monospaced'>
106 poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
107 </literallayout>
108 <note>
109 As an alternative to downloading an SDK, you can build the
110 SDK installer.
111 For information on building the installer, see the
112 "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
113 section.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600114 </note>
115 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500116
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600117 <para>
118 The SDK and toolchains are self-contained and by default are
Brad Bishop316dfdd2018-06-25 12:45:53 -0400119 installed into the <filename>poky_sdk</filename> folder in your
120 home directory.
121 You can choose to install the extensible SDK in any location when
122 you run the installer.
123 However, because files need to be written under that directory
124 during the normal course of operation, the location you choose
125 for installation must be writable for whichever
126 users need to use the SDK.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600127 </para>
128
129 <para>
130 The following command shows how to run the installer given a
131 toolchain tarball for a 64-bit x86 development host system and
Brad Bishop316dfdd2018-06-25 12:45:53 -0400132 a 64-bit x86 target architecture.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600133 The example assumes the SDK installer is located in
Brad Bishop316dfdd2018-06-25 12:45:53 -0400134 <filename>~/Downloads/</filename> and has execution rights.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600135 <note>
136 If you do not have write permissions for the directory
137 into which you are installing the SDK, the installer
138 notifies you and exits.
Brad Bishop316dfdd2018-06-25 12:45:53 -0400139 For that case, set up the proper permissions in the directory
140 and run the installer again.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600141 </note>
142 <literallayout class='monospaced'>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400143 $ ./Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600144 Poky (Yocto Project Reference Distro) SDK installer version &DISTRO;
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500145 ===============================================================
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600146 Enter target directory for SDK (default: /opt/poky/&DISTRO;):
Brad Bishopd89cb5f2019-04-10 09:02:41 -0400147 You are about to install the SDK to "/opt/poky/&DISTRO;". Proceed [Y/n]? Y
Brad Bishop316dfdd2018-06-25 12:45:53 -0400148 Extracting SDK........................................ ..............................done
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500149 Setting it up...done
150 SDK has been successfully set up and is ready to be used.
151 Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600152 $ . /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500153 </literallayout>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500154 </para>
155
156 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600157 Again, reference the
158 "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
159 section for more details on the resulting directory structure of
160 the installed SDK.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500161 </para>
162 </section>
163
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600164 <section id='sdk-running-the-sdk-environment-setup-script'>
165 <title>Running the SDK Environment Setup Script</title>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500166
167 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600168 Once you have the SDK installed, you must run the SDK environment
Brad Bishop316dfdd2018-06-25 12:45:53 -0400169 setup script before you can actually use the SDK.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600170 This setup script resides in the directory you chose when you
Brad Bishop316dfdd2018-06-25 12:45:53 -0400171 installed the SDK, which is either the default
172 <filename>/opt/poky/&DISTRO;</filename> directory or the directory
173 you chose during installation.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500174 </para>
175
176 <para>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600177 Before running the script, be sure it is the one that matches the
178 architecture for which you are developing.
179 Environment setup scripts begin with the string
180 "<filename>environment-setup</filename>" and include as part of
181 their name the tuned target architecture.
Brad Bishop316dfdd2018-06-25 12:45:53 -0400182 As an example, the following commands set the working directory
183 to where the SDK was installed and then source the environment
184 setup script.
185 In this example, the setup script is for an IA-based
186 target machine using i586 tuning:
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600187 <literallayout class='monospaced'>
188 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
189 </literallayout>
190 When you run the setup script, the same environment variables are
191 defined as are when you run the setup script for an extensible SDK.
192 See the
193 "<link linkend='sdk-running-the-extensible-sdk-environment-setup-script'>Running the Extensible SDK Environment Setup Script</link>"
194 section for more information.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500195 </para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500196 </section>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500197</chapter>
198<!--
199vim: expandtab tw=80 ts=4
200-->