1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 2 3********************** 4Using the Standard SDK 5********************** 6 7This chapter describes the standard SDK and how to install it. 8Information includes unique installation and setup aspects for the 9standard SDK. 10 11.. note:: 12 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 ":ref:`sdk-manual/intro:introduction`" section. 16 17You can use a standard SDK to work on Makefile and Autotools-based 18projects. See the 19":ref:`sdk-manual/working-projects:using the sdk toolchain directly`" chapter 20for more information. 21 22Why use the Standard SDK and What is in It? 23=========================================== 24 25The Standard SDK provides a cross-development toolchain and libraries 26tailored to the contents of a specific image. You would use the Standard 27SDK if you want a more traditional toolchain experience as compared to 28the extensible SDK, which provides an internal build system and the 29``devtool`` functionality. 30 31The installed Standard SDK consists of several files and directories. 32Basically, it contains an SDK environment setup script, some 33configuration files, and host and target root filesystems to support 34usage. You can see the directory structure in the 35":ref:`sdk-manual/appendix-obtain:installed standard sdk directory structure`" 36section. 37 38Installing the SDK 39================== 40 41The first thing you need to do is install the SDK on your :term:`Build 42Host` by running the ``*.sh`` installation script. 43 44You can download a tarball installer, which includes the pre-built 45toolchain, the ``runqemu`` script, and support files from the 46appropriate :yocto_dl:`toolchain </releases/yocto/yocto-&DISTRO;/toolchain/>` directory within 47the Index of Releases. Toolchains are available for several 32-bit and 4864-bit architectures with the ``x86_64`` directories, respectively. The 49toolchains the Yocto Project provides are based off the 50``core-image-sato`` and ``core-image-minimal`` images and contain 51libraries appropriate for developing against the corresponding image. 52 53The names of the tarball installer scripts are such that a string 54representing the host system appears first in the filename and then is 55immediately followed by a string representing the target architecture:: 56 57 poky-glibc-host_system-image_type-arch-toolchain-release_version.sh 58 59 Where: 60 host_system is a string representing your development system: 61 62 i686 or x86_64. 63 64 image_type is the image for which the SDK was built: 65 66 core-image-minimal or core-image-sato. 67 68 arch is a string representing the tuned target architecture: 69 70 aarch64, armv5e, core2-64, i586, mips32r2, mips64, ppc7400, or cortexa8hf-neon. 71 72 release_version is a string representing the release number of the Yocto Project: 73 74 &DISTRO;, &DISTRO;+snapshot 75 76For example, the following SDK installer is for a 64-bit 77development host system and a i586-tuned target architecture based off 78the SDK for ``core-image-sato`` and using the current DISTRO snapshot:: 79 80 poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh 81 82.. note:: 83 84 As an alternative to downloading an SDK, you can build the SDK 85 installer. For information on building the installer, see the 86 ":ref:`sdk-manual/appendix-obtain:building an sdk installer`" 87 section. 88 89The SDK and toolchains are self-contained and by default are installed 90into the ``poky_sdk`` folder in your home directory. You can choose to 91install the extensible SDK in any location when you run the installer. 92However, because files need to be written under that directory during 93the normal course of operation, the location you choose for installation 94must be writable for whichever users need to use the SDK. 95 96The following command shows how to run the installer given a toolchain 97tarball for a 64-bit x86 development host system and a 64-bit x86 target 98architecture. The example assumes the SDK installer is located in 99``~/Downloads/`` and has execution rights:: 100 101 $ ./Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh 102 Poky (Yocto Project Reference Distro) SDK installer version &DISTRO; 103 =============================================================== 104 Enter target directory for SDK (default: /opt/poky/&DISTRO;): 105 You are about to install the SDK to "/opt/poky/&DISTRO;". Proceed [Y/n]? Y 106 Extracting SDK........................................ ..............................done 107 Setting it up...done 108 SDK has been successfully set up and is ready to be used. 109 Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. 110 $ . /opt/poky/&DISTRO;/environment-setup-i586-poky-linux 111 112.. note:: 113 114 If you do not have write permissions for the directory into which you 115 are installing the SDK, the installer notifies you and exits. For 116 that case, set up the proper permissions in the directory and run the 117 installer again. 118 119Again, reference the 120":ref:`sdk-manual/appendix-obtain:installed standard sdk directory structure`" 121section for more details on the resulting directory structure of the installed 122SDK. 123 124Running the SDK Environment Setup Script 125======================================== 126 127Once you have the SDK installed, you must run the SDK environment setup 128script before you can actually use the SDK. This setup script resides in 129the directory you chose when you installed the SDK, which is either the 130default ``/opt/poky/&DISTRO;`` directory or the directory you chose during 131installation. 132 133Before running the script, be sure it is the one that matches the 134architecture for which you are developing. Environment setup scripts 135begin with the string "``environment-setup``" and include as part of 136their name the tuned target architecture. As an example, the following 137commands set the working directory to where the SDK was installed and 138then source the environment setup script. In this example, the setup 139script is for an IA-based target machine using i586 tuning:: 140 141 $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux 142 143When you run the 144setup script, the same environment variables are defined as are when you 145run the setup script for an extensible SDK. See the 146":ref:`sdk-manual/appendix-obtain:installed extensible sdk directory structure`" 147section for more information. 148