blob: ce8fa5c6572ae6a2ad61d73b425f31eb3621d818 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -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='ref-manual-intro'>
6<title>Introduction</title>
7
8<section id='intro-welcome'>
9 <title>Introduction</title>
10
11 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050012 This manual provides reference information for the current release
13 of the Yocto Project.
14 The Yocto Project is an open-source collaboration project focused
15 on embedded Linux developers.
16 Amongst other things, the Yocto Project uses the OpenEmbedded build
17 system, which is based on the Poky project, to construct complete
18 Linux images.
19 You can find complete introductory and getting started information
20 on the Yocto Project by reading the
Patrick Williamsc124f4f2015-09-15 14:41:29 -050021 <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050022 </para>
23
24 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050025 For task-based information using the Yocto Project, see the
26 <ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Manual</ulink>
27 and the <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>.
28 For Board Support Package (BSP) structure information, see the
29 <ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050030 For information on how to use a Software Development Kit, (SDK), see the
31 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050032 You can find information on tracing and profiling in the
33 <ulink url='&YOCTO_DOCS_PROF_URL;'>Yocto Project Profiling and Tracing Manual</ulink>.
34 For information on BitBake, which is the task execution tool the
35 OpenEmbedded build system is based on, see the
36 <ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual'>BitBake User Manual</ulink>.
37 Finally, you can also find lots of Yocto Project information on the
38 <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
39 </para>
40</section>
41
42<section id='intro-manualoverview'>
43 <title>Documentation Overview</title>
44 <para>
45 This reference manual consists of the following:
46 <itemizedlist>
47 <listitem><para><emphasis>
48 <link linkend='usingpoky'>Using the Yocto Project</link>:</emphasis>
49 Provides an overview of the components that make up the Yocto Project
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050050 followed by information about debugng images created in the Yocto Project.
Patrick Williamsc124f4f2015-09-15 14:41:29 -050051 </para></listitem>
52 <listitem><para><emphasis>
53 <link linkend='closer-look'>A Closer Look at the Yocto Project Development Environment</link>:</emphasis>
54 Provides a more detailed look at the Yocto Project development
55 environment within the context of development.
56 </para></listitem>
57 <listitem><para><emphasis>
58 <link linkend='technical-details'>Technical Details</link>:</emphasis>
59 Describes fundamental Yocto Project components as well as an explanation
60 behind how the Yocto Project uses shared state (sstate) cache to speed build time.
61 </para></listitem>
62 <listitem><para><emphasis>
63 <link linkend='migration'>Migrating to a Newer Yocto Project Release</link>:</emphasis>
64 Describes release-specific information that helps you move from
65 one Yocto Project Release to another.
66 </para></listitem>
67 <listitem><para><emphasis>
68 <link linkend='ref-structure'>Directory Structure</link>:</emphasis>
69 Describes the
70 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> created
71 either by unpacking a released Yocto Project tarball on your host development system,
72 or by cloning the upstream
73 <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> Git repository.
74 </para></listitem>
75 <listitem><para><emphasis>
76 <link linkend='ref-classes'>Classes</link>:</emphasis>
77 Describes the classes used in the Yocto Project.</para></listitem>
78 <listitem><para><emphasis>
79 <link linkend='ref-tasks'>Tasks</link>:</emphasis>
80 Describes the tasks defined by the OpenEmbedded build system.
81 </para></listitem>
82 <listitem><para><emphasis>
83 <link linkend='ref-qa-checks'>QA Error and Warning Messages</link>:</emphasis>
84 Lists and describes QA warning and error messages.
85 </para></listitem>
86 <listitem><para><emphasis>
87 <link linkend='ref-images'>Images</link>:</emphasis>
88 Describes the standard images that the Yocto Project supports.
89 </para></listitem>
90 <listitem><para><emphasis>
91 <link linkend='ref-features'>Features</link>:</emphasis>
92 Describes mechanisms for creating distribution, machine, and image
93 features during the build process using the OpenEmbedded build system.</para></listitem>
94 <listitem><para><emphasis>
95 <link linkend='ref-variables-glos'>Variables Glossary</link>:</emphasis>
96 Presents most variables used by the OpenEmbedded build system, which
97 uses BitBake.
98 Entries describe the function of the variable and how to apply them.
99 </para></listitem>
100 <listitem><para><emphasis>
101 <link linkend='ref-varlocality'>Variable Context</link>:</emphasis>
102 Provides variable locality or context.</para></listitem>
103 <listitem><para><emphasis>
104 <link linkend='faq'>FAQ</link>:</emphasis>
105 Provides answers for commonly asked questions in the Yocto Project
106 development environment.</para></listitem>
107 <listitem><para><emphasis>
108 <link linkend='resources'>Contributing to the Yocto Project</link>:</emphasis>
109 Provides guidance on how you can contribute back to the Yocto
110 Project.</para></listitem>
111 </itemizedlist>
112 </para>
113</section>
114
115
116<section id='intro-requirements'>
117<title>System Requirements</title>
118 <para>
119 For general Yocto Project system requirements, see the
120 "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>Setting Up to Use the Yocto Project</ulink>" section
121 in the Yocto Project Quick Start.
122 The remainder of this section provides details on system requirements
123 not covered in the Yocto Project Quick Start.
124 </para>
125
126 <section id='detailed-supported-distros'>
127 <title>Supported Linux Distributions</title>
128
129 <para>
130 Currently, the Yocto Project is supported on the following
131 distributions:
132 <note>
133 <para>
134 Yocto Project releases are tested against the stable Linux
135 distributions in the following list.
136 The Yocto Project should work on other distributions but
137 validation is not performed against them.
138 </para>
139
140 <para>
141 In particular, the Yocto Project does not support
142 and currently has no plans to support
143 rolling-releases or development distributions due to their
144 constantly changing nature.
145 We welcome patches and bug reports, but keep in mind that
146 our priority is on the supported platforms listed below.
147 </para>
148
149 <para>
150 If you encounter problems, please go to
151 <ulink url='&YOCTO_BUGZILLA_URL;'>Yocto Project Bugzilla</ulink>
152 and submit a bug.
153 We are interested in hearing about your experience.
154 </para>
155 </note>
156 <itemizedlist>
157<!--
158 <listitem><para>Ubuntu 10.04</para></listitem>
159 <listitem><para>Ubuntu 11.10</para></listitem>
160 <listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
161 <listitem><para>Ubuntu 13.10</para></listitem> -->
162 <listitem><para>Ubuntu 14.04 (LTS)</para></listitem>
163 <listitem><para>Ubuntu 14.10</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500164 <listitem><para>Ubuntu 15.04</para></listitem>
165 <listitem><para>Ubuntu 15.10</para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500166<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
167 <listitem><para>Fedora 17 (Spherical)</para></listitem>
168 <listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
169 <listitem><para>Fedora release 20 (Heisenbug)</para></listitem> -->
170 <listitem><para>Fedora release 21</para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500171 <listitem><para>Fedora release 22</para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500172<!-- <listitem><para>CentOS release 5.6 (Final)</para></listitem>
173 <listitem><para>CentOS release 5.7 (Final)</para></listitem>
174 <listitem><para>CentOS release 5.8 (Final)</para></listitem>
175 <listitem><para>CentOS release 6.3 (Final)</para></listitem> -->
176 <listitem><para>CentOS release 6.x</para></listitem>
177 <listitem><para>CentOS release 7.x</para></listitem>
178<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem> -->
179 <listitem><para>Debian GNU/Linux 7.x (Wheezy)</para></listitem>
180 <listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
181<!-- <listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
182 <listitem><para>Debian GNU/Linux 7.2 (Wheezy)</para></listitem>
183 <listitem><para>Debian GNU/Linux 7.3 (Wheezy)</para></listitem>
184 <listitem><para>Debian GNU/Linux 7.4 (Wheezy)</para></listitem>
185 <listitem><para>Debian GNU/Linux 7.5 (Wheezy)</para></listitem>
186 <listitem><para>Debian GNU/Linux 7.6 (Wheezy)</para></listitem> -->
187<!-- <listitem><para>openSUSE 11.4</para></listitem>
188 <listitem><para>openSUSE 12.1</para></listitem>
189 <listitem><para>openSUSE 12.2</para></listitem>
190 <listitem><para>openSUSE 12.3</para></listitem>
191 <listitem><para>openSUSE 13.1</para></listitem> -->
192 <listitem><para>openSUSE 13.2</para></listitem>
193 </itemizedlist>
194 </para>
195
196 <note>
197 While the Yocto Project Team attempts to ensure all Yocto Project
198 releases are one hundred percent compatible with each officially
199 supported Linux distribution, instances might exist where you
200 encounter a problem while using the Yocto Project on a specific
201 distribution.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500202 </note>
203 </section>
204
205 <section id='required-packages-for-the-host-development-system'>
206 <title>Required Packages for the Host Development System</title>
207
208 <para>
209 The list of packages you need on the host development system can
210 be large when covering all build scenarios using the Yocto Project.
211 This section provides required packages according to
212 Linux distribution and function.
213 </para>
214
215 <section id='ubuntu-packages'>
216 <title>Ubuntu and Debian</title>
217
218 <para>
219 The following list shows the required packages by function
220 given a supported Ubuntu or Debian Linux distribution:
221 <note>
222 If your build system has the
223 <filename>oss4-dev</filename> package installed, you
224 might experience QEMU build failures due to the package
225 installing its own custom
226 <filename>/usr/include/linux/soundcard.h</filename> on
227 the Debian system.
228 If you run into this situation, either of the following
229 solutions exist:
230 <literallayout class='monospaced'>
231 $ sudo apt-get build-dep qemu
232 $ sudo apt-get remove oss4-dev
233 </literallayout>
234 </note>
235 <itemizedlist>
236 <listitem><para><emphasis>Essentials:</emphasis>
237 Packages needed to build an image on a headless
238 system:
239 <literallayout class='monospaced'>
240 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
241 </literallayout></para></listitem>
242 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
243 Packages recommended if the host system has graphics
244 support or if you are going to use the Eclipse
245 IDE:
246 <literallayout class='monospaced'>
247 $ sudo apt-get install libsdl1.2-dev xterm
248 </literallayout></para></listitem>
249 <listitem><para><emphasis>Documentation:</emphasis>
250 Packages needed if you are going to build out the
251 Yocto Project documentation manuals:
252 <literallayout class='monospaced'>
253 $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
254 </literallayout></para></listitem>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500255 <listitem><para><emphasis>SDK Installer Extras:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500256 Packages needed if you are going to be using the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500257 the standard or extensible SDK:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500258 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500259 $ sudo apt-get install autoconf automake libtool libglib2.0-dev libarchive-dev
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500260 </literallayout></para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500261 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
262 Packages needed if you are going to run
263 <filename>oe-selftest</filename>:
264 <literallayout class='monospaced'>
265 $ sudo apt-get install python-git
266 </literallayout>
267 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500268 </itemizedlist>
269 </para>
270 </section>
271
272 <section id='fedora-packages'>
273 <title>Fedora Packages</title>
274
275 <para>
276 The following list shows the required packages by function
277 given a supported Fedora Linux distribution:
278 <itemizedlist>
279 <listitem><para><emphasis>Essentials:</emphasis>
280 Packages needed to build an image for a headless
281 system:
282 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500283 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500284 </literallayout></para></listitem>
285 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
286 Packages recommended if the host system has graphics
287 support or if you are going to use the Eclipse
288 IDE:
289 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500290 $ sudo dnf install SDL-devel xterm
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500291 </literallayout></para></listitem>
292 <listitem><para><emphasis>Documentation:</emphasis>
293 Packages needed if you are going to build out the
294 Yocto Project documentation manuals:
295 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500296 $ sudo dnf install make docbook-style-dsssl docbook-style-xsl \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500297 docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
298 </literallayout></para></listitem>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500299 <listitem><para><emphasis>SDK Installer Extras:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500300 Packages needed if you are going to be using the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500301 standard or extensible SDK:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500302 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500303 $ sudo dnf install autoconf automake libtool glib2-devel libarchive-devel
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500304 </literallayout></para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500305 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
306 Packages needed if you are going to run
307 <filename>oe-selftest</filename>:
308 <literallayout class='monospaced'>
309 $ sudo dnf install GitPython
310 </literallayout>
311 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500312 </itemizedlist>
313 </para>
314 </section>
315
316 <section id='opensuse-packages'>
317 <title>openSUSE Packages</title>
318
319 <para>
320 The following list shows the required packages by function
321 given a supported openSUSE Linux distribution:
322 <itemizedlist>
323 <listitem><para><emphasis>Essentials:</emphasis>
324 Packages needed to build an image for a headless
325 system:
326 <literallayout class='monospaced'>
327 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
328 </literallayout></para></listitem>
329 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
330 Packages recommended if the host system has graphics
331 support or if you are going to use the Eclipse
332 IDE:
333 <literallayout class='monospaced'>
334 $ sudo zypper install libSDL-devel xterm
335 </literallayout></para></listitem>
336 <listitem><para><emphasis>Documentation:</emphasis>
337 Packages needed if you are going to build out the
338 Yocto Project documentation manuals:
339 <literallayout class='monospaced'>
340 $ sudo zypper install make fop xsltproc dblatex xmlto
341 </literallayout></para></listitem>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500342 <listitem><para><emphasis>SDK Installer Extras:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500343 Packages needed if you are going to be using the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500344 standard or extensible SDK:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500345 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500346 $ sudo zypper install autoconf automake libtool glib2-devel libarchive-devel
347 </literallayout></para></listitem>
348 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
349 Packages needed if you are going to run
350 <filename>oe-selftest</filename>:
351 <literallayout class='monospaced'>
352 $ sudo zypper install python-GitPython
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500353 </literallayout></para></listitem>
354 </itemizedlist>
355 </para>
356 </section>
357
358 <section id='centos-packages'>
359 <title>CentOS Packages</title>
360
361 <para>
362 The following list shows the required packages by function
363 given a supported CentOS Linux distribution:
364 <note>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500365 For CentOS 6.x, some of the versions of the components
366 provided by the distribution are too old (e.g. Git, Python,
367 and tar).
368 It is recommended that you install the buildtools in order
369 to provide versions that will work with the OpenEmbedded
370 build system.
371 For information on how to install the buildtools tarball,
372 see the
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500373 "<link linkend='required-git-tar-and-python-versions'>Required Git, Tar, and Python Versions</link>"
374 section.
375 </note>
376 <itemizedlist>
377 <listitem><para><emphasis>Essentials:</emphasis>
378 Packages needed to build an image for a headless
379 system:
380 <literallayout class='monospaced'>
381 $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL;
382 </literallayout></para></listitem>
383 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
384 Packages recommended if the host system has graphics
385 support or if you are going to use the Eclipse
386 IDE:
387 <literallayout class='monospaced'>
388 $ sudo yum install SDL-devel xterm
389 </literallayout></para></listitem>
390 <listitem><para><emphasis>Documentation:</emphasis>
391 Packages needed if you are going to build out the
392 Yocto Project documentation manuals:
393 <literallayout class='monospaced'>
394 $ sudo yum install make docbook-style-dsssl docbook-style-xsl \
395 docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
396 </literallayout></para></listitem>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500397 <listitem><para><emphasis>SDK Installer Extras:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500398 Packages needed if you are going to be using the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500399 standard or extensible SDK:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500400 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500401 $ sudo yum install autoconf automake libtool glib2-devel libarchive-devel
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500402 </literallayout></para></listitem>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500403 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
404 Packages needed if you are going to run
405 <filename>oe-selftest</filename>:
406 <literallayout class='monospaced'>
407 $ sudo yum install GitPython
408 </literallayout>
409 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500410 </itemizedlist>
411 </para>
412 </section>
413 </section>
414
415 <section id='required-git-tar-and-python-versions'>
416 <title>Required Git, tar, and Python Versions</title>
417
418 <para>
419 In order to use the build system, your host development system
420 must meet the following version requirements for Git, tar, and
421 Python:
422 <itemizedlist>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500423 <listitem><para>Git 1.8.3.1 or greater</para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500424 <listitem><para>tar 1.24 or greater</para></listitem>
425 <listitem><para>Python 2.7.3 or greater not including
426 Python 3.x, which is not supported.</para></listitem>
427 </itemizedlist>
428 </para>
429
430 <para>
431 If your host development system does not meet all these requirements,
432 you can resolve this by installing a <filename>buildtools</filename>
433 tarball that contains these tools.
434 You can get the tarball one of two ways: download a pre-built
435 tarball or use BitBake to build the tarball.
436 </para>
437
438 <section id='downloading-a-pre-built-buildtools-tarball'>
439 <title>Downloading a Pre-Built <filename>buildtools</filename> Tarball</title>
440
441 <para>
442 Downloading and running a pre-built buildtools installer is
443 the easiest of the two methods by which you can get these tools:
444 <orderedlist>
445 <listitem><para>
446 Locate and download the <filename>*.sh</filename> at
447 <ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;/buildtools/'></ulink>.
448 </para></listitem>
449 <listitem><para>
450 Execute the installation script.
451 Here is an example:
452 <literallayout class='monospaced'>
453 $ sh poky-glibc-x86_64-buildtools-tarball-x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
454 </literallayout>
455 During execution, a prompt appears that allows you to
456 choose the installation directory.
457 For example, you could choose the following:
458 <literallayout class='monospaced'>
459 /home/<replaceable>your-username</replaceable>/buildtools
460 </literallayout>
461 </para></listitem>
462 <listitem><para>
463 Source the tools environment setup script by using a
464 command like the following:
465 <literallayout class='monospaced'>
466 $ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
467 </literallayout>
468 Of course, you need to supply your installation directory and be
469 sure to use the right file (i.e. i585 or x86-64).
470 </para>
471 <para>
472 After you have sourced the setup script,
473 the tools are added to <filename>PATH</filename>
474 and any other environment variables required to run the
475 tools are initialized.
476 The results are working versions versions of Git, tar,
477 Python and <filename>chrpath</filename>.
478 </para></listitem>
479 </orderedlist>
480 </para>
481 </section>
482
483 <section id='building-your-own-buildtools-tarball'>
484 <title>Building Your Own <filename>buildtools</filename> Tarball</title>
485
486 <para>
487 Building and running your own buildtools installer applies
488 only when you have a build host that can already run BitBake.
489 In this case, you use that machine to build the
490 <filename>.sh</filename> file and then
491 take steps to transfer and run it on a
492 machine that does not meet the minimal Git, tar, and Python
493 requirements.
494 </para>
495
496 <para>
497 Here are the steps to take to build and run your own
498 buildtools installer:
499 <orderedlist>
500 <listitem><para>
501 On the machine that is able to run BitBake,
502 be sure you have set up your build environment with
503 the setup script
504 (<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
505 or
506 <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
507 </para></listitem>
508 <listitem><para>
509 Run the BitBake command to build the tarball:
510 <literallayout class='monospaced'>
511 $ bitbake buildtools-tarball
512 </literallayout>
513 <note>
514 The
515 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>
516 variable in your <filename>local.conf</filename> file
517 determines whether you build tools for a 32-bit
518 or 64-bit system.
519 </note>
520 Once the build completes, you can find the
521 <filename>.sh</filename> file that installs
522 the tools in the <filename>tmp/deploy/sdk</filename>
523 subdirectory of the
524 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
525 The installer file has the string "buildtools"
526 in the name.
527 </para></listitem>
528 <listitem><para>
529 Transfer the <filename>.sh</filename> file from the
530 build host to the machine that does not meet the
531 Git, tar, or Python requirements.
532 </para></listitem>
533 <listitem><para>
534 On the machine that does not meet the requirements,
535 run the <filename>.sh</filename> file
536 to install the tools.
537 Here is an example:
538 <literallayout class='monospaced'>
539 $ sh poky-glibc-x86_64-buildtools-tarball-x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
540 </literallayout>
541 During execution, a prompt appears that allows you to
542 choose the installation directory.
543 For example, you could choose the following:
544 <literallayout class='monospaced'>
545 /home/<replaceable>your_username</replaceable>/buildtools
546 </literallayout>
547 </para></listitem>
548 <listitem><para>
549 Source the tools environment setup script by using a
550 command like the following:
551 <literallayout class='monospaced'>
552 $ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
553 </literallayout>
554 Of course, you need to supply your installation directory and be
555 sure to use the right file (i.e. i585 or x86-64).
556 </para>
557 <para>
558 After you have sourced the setup script,
559 the tools are added to <filename>PATH</filename>
560 and any other environment variables required to run the
561 tools are initialized.
562 The results are working versions versions of Git, tar,
563 Python and <filename>chrpath</filename>.
564 </para></listitem>
565 </orderedlist>
566 </para>
567 </section>
568 </section>
569</section>
570
571<section id='intro-getit'>
572 <title>Obtaining the Yocto Project</title>
573 <para>
574 The Yocto Project development team makes the Yocto Project available through a number
575 of methods:
576 <itemizedlist>
577 <listitem><para><emphasis>Source Repositories:</emphasis>
578 Working from a copy of the upstream
579 <filename>poky</filename> repository is the
580 preferred method for obtaining and using a Yocto Project
581 release.
582 You can view the Yocto Project Source Repositories at
583 <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.
584 In particular, you can find the
585 <filename>poky</filename> repository at
586 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/'></ulink>.
587 </para></listitem>
588 <listitem><para><emphasis>Releases:</emphasis> Stable, tested
589 releases are available as tarballs through
590 <ulink url='&YOCTO_DL_URL;/releases/yocto/'/>.</para></listitem>
591 <listitem><para><emphasis>Nightly Builds:</emphasis> These
592 tarball releases are available at
593 <ulink url='&YOCTO_AB_NIGHTLY_URL;'/>.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500594 These builds include Yocto Project releases, SDK installation
595 scripts, and experimental builds.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500596 </para></listitem>
597 <listitem><para><emphasis>Yocto Project Website:</emphasis> You can
598 find tarball releases of the Yocto Project and supported BSPs
599 at the
600 <ulink url='&YOCTO_HOME_URL;'>Yocto Project website</ulink>.
601 Along with these downloads, you can find lots of other
602 information at this site.
603 </para></listitem>
604 </itemizedlist>
605 </para>
606</section>
607
608<section id='intro-getit-dev'>
609 <title>Development Checkouts</title>
610 <para>
611 Development using the Yocto Project requires a local
612 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
613 You can set up the Source Directory by cloning a copy of the upstream
614 <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>poky</ulink> Git repository.
615 For information on how to do this, see the
616 "<ulink url='&YOCTO_DOCS_DEV_URL;#getting-setup'>Getting Set Up</ulink>"
617 section in the Yocto Project Development Manual.
618 </para>
619</section>
620
621</chapter>
622<!--
623vim: expandtab tw=80 ts=4
624-->