summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/introduction.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual/introduction.xml')
-rw-r--r--documentation/ref-manual/introduction.xml444
1 files changed, 444 insertions, 0 deletions
diff --git a/documentation/ref-manual/introduction.xml b/documentation/ref-manual/introduction.xml
new file mode 100644
index 0000000000..b1a5c0e175
--- /dev/null
+++ b/documentation/ref-manual/introduction.xml
@@ -0,0 +1,444 @@
1<!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='intro'>
6<title>Introduction</title>
7
8<section id='intro-welcome'>
9 <title>Introduction</title>
10
11 <para>
12 This manual provides reference information for the current release of the Yocto Project.
13 The Yocto Project is an open-source collaboration project focused on embedded Linux
14 developers.
15 Amongst other things, the Yocto Project uses the OpenEmbedded build system, which
16 is based on the Poky project, to construct complete Linux images.
17 You can find complete introductory and getting started information on the Yocto Project
18 by reading the
19 <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
20 For task-based information using the Yocto Project, see the
21 <ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Manual</ulink>
22 and the <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>.
23 For Board Support Package (BSP) structure information, see the
24 <ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>.
25 You can also find lots of Yocto Project information on the
26 <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
27 </para>
28</section>
29
30<section id='intro-manualoverview'>
31 <title>Documentation Overview</title>
32 <para>
33 This reference manual consists of the following:
34 <itemizedlist>
35 <listitem><para><emphasis>
36 <link linkend='usingpoky'>Using the Yocto Project</link>:</emphasis>
37 Provides an overview of the components that make up the Yocto Project
38 followed by information about debugging images created in the Yocto Project.
39 </para></listitem>
40 <listitem><para><emphasis>
41 <link linkend='technical-details'>Technical Details</link>:</emphasis>
42 Describes fundamental Yocto Project components as well as an explanation
43 behind how the Yocto Project uses shared state (sstate) cache to speed build time.
44 </para></listitem>
45 <listitem><para><emphasis>
46 <link linkend='ref-structure'>Directory Structure</link>:</emphasis>
47 Describes the
48 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> created
49 either by unpacking a released Yocto Project tarball on your host development system,
50 or by cloning the upstream
51 <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> Git repository.
52 </para></listitem>
53 <listitem><para><emphasis>
54 <link linkend='ref-bitbake'>BitBake</link>:</emphasis>
55 Provides an overview of the BitBake tool and its role within
56 the Yocto Project.</para></listitem>
57 <listitem><para><emphasis>
58 <link linkend='ref-classes'>Classes</link>:</emphasis>
59 Describes the classes used in the Yocto Project.</para></listitem>
60 <listitem><para><emphasis>
61 <link linkend='ref-images'>Images</link>:</emphasis>
62 Describes the standard images that the Yocto Project supports.
63 </para></listitem>
64 <listitem><para><emphasis>
65 <link linkend='ref-features'>Features</link>:</emphasis>
66 Describes mechanisms for creating distribution, machine, and image
67 features during the build process using the OpenEmbedded build system.</para></listitem>
68 <listitem><para><emphasis>
69 <link linkend='ref-variables-glos'>Variables Glossary</link>:</emphasis>
70 Presents most variables used by the OpenEmbedded build system, which
71 uses BitBake.
72 Entries describe the function of the variable and how to apply them.
73 </para></listitem>
74 <listitem><para><emphasis>
75 <link linkend='ref-varlocality'>Variable Context</link>:</emphasis>
76 Provides variable locality or context.</para></listitem>
77 <listitem><para><emphasis>
78 <link linkend='faq'>FAQ</link>:</emphasis>
79 Provides answers for commonly asked questions in the Yocto Project
80 development environment.</para></listitem>
81 <listitem><para><emphasis>
82 <link linkend='resources'>Contributing to the Yocto Project</link>:</emphasis>
83 Provides guidance on how you can contribute back to the Yocto
84 Project.</para></listitem>
85 </itemizedlist>
86 </para>
87</section>
88
89
90<section id='intro-requirements'>
91<title>System Requirements</title>
92 <para>
93 For general Yocto Project system requirements, see the
94 "<ulink url='&YOCTO_DOCS_QS_URL;#yp-resources'>What You Need and How You Get It</ulink>" section
95 in the Yocto Project Quick Start.
96 The remainder of this section provides details on system requirements
97 not covered in the Yocto Project Quick Start.
98 </para>
99
100 <section id='detailed-supported-distros'>
101 <title>Supported Linux Distributions</title>
102
103 <para>
104 Currently, the Yocto Project is supported on the following
105 distributions:
106 <note>
107 <para>
108 Yocto Project releases are tested against the stable Linux
109 distributions in the following list.
110 The Yocto Project should work on other distributions but
111 validation is not performed against them.
112 </para>
113
114 <para>
115 In particular, the Yocto Project does not support
116 and currently has no plans to support
117 rolling-releases or development distributions due to their
118 constantly changing nature.
119 We welcome patches and bug reports, but keep in mind that
120 our priority is on the supported platforms listed below.
121 </para>
122
123 <para>
124 Refer to
125 <ulink url='&OE_HOME_URL;/index.php?title=OEandYourDistro'>OE and Your Distro</ulink> and
126 <ulink url='&OE_HOME_URL;/index.php?title=Required_software'>Required Software</ulink>
127 for information for information about dependencies and
128 requirements.
129 If you encounter problems, please go to
130 <ulink url='&YOCTO_BUGZILLA_URL;'>Yocto Project Bugzilla</ulink>
131 and submit a bug.
132 We are interested in hearing about your experience.
133 </para>
134 </note>
135 <itemizedlist>
136<!-- <listitem><para>Ubuntu 10.04</para></listitem>
137 <listitem><para>Ubuntu 11.10</para></listitem> -->
138 <listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
139 <listitem><para>Ubuntu 12.10</para></listitem>
140 <listitem><para>Ubuntu 13.04</para></listitem>
141<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
142 <listitem><para>Fedora 17 (Spherical)</para></listitem> -->
143 <listitem><para>Fedora release 18 (Spherical Cow)</para></listitem>
144 <listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
145<!-- <listitem><para>CentOS release 5.6 (Final)</para></listitem>
146 <listitem><para>CentOS release 5.7 (Final)</para></listitem>
147 <listitem><para>CentOS release 5.8 (Final)</para></listitem>
148 <listitem><para>CentOS release 6.3 (Final)</para></listitem> -->
149 <listitem><para>CentOS release 6.4</para></listitem>
150<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem> -->
151 <listitem><para>Debian GNU/Linux 6.0.7 (Squeeze)</para></listitem>
152 <listitem><para>Debian GNU/Linux 7.0 (Wheezy)</para></listitem>
153 <listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
154<!-- <listitem><para>openSUSE 11.4</para></listitem>
155 <listitem><para>openSUSE 12.1</para></listitem> -->
156 <listitem><para>openSUSE 12.2</para></listitem>
157 <listitem><para>openSUSE 12.3</para></listitem>
158 </itemizedlist>
159 </para>
160
161 <note>
162 While the Yocto Project Team attempts to ensure all Yocto Project
163 releases are one hundred percent compatible with each officially
164 supported Linux distribution, instances might exist where you
165 encounter a problem while using the Yocto Project on a specific
166 distribution.
167 For example, the CentOS 6.4 distribution does not include the
168 Gtk+ 2.20.0 and PyGtk 2.21.0 (or higher) packages, which are
169 required to run
170 <ulink url='&YOCTO_HOME_URL;/tools-resources/projects/hob'>Hob</ulink>.
171 </note>
172 </section>
173
174 <section id='required-packages-for-the-host-development-system'>
175 <title>Required Packages for the Host Development System</title>
176
177 <para>
178 The list of packages you need on the host development system can
179 be large when covering all build scenarios using the Yocto Project.
180 This section provides required packages according to
181 Linux distribution and function.
182 </para>
183
184 <section id='ubuntu-packages'>
185 <title>Ubuntu and Debian</title>
186
187 <para>
188 The following list shows the required packages by function
189 given a supported Ubuntu or Debian Linux distribution:
190 <itemizedlist>
191 <listitem><para><emphasis>Essentials:</emphasis>
192 Packages needed to build an image on a headless
193 system:
194 <literallayout class='monospaced'>
195 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
196 </literallayout></para></listitem>
197 <listitem><para><emphasis>Graphical Extras:</emphasis>
198 Packages recommended if the host system has graphics support:
199 <literallayout class='monospaced'>
200 $ sudo apt-get install libsdl1.2-dev xterm
201 </literallayout></para></listitem>
202 <listitem><para><emphasis>Documentation:</emphasis>
203 Packages needed if you are going to build out the
204 Yocto Project documentation manuals:
205 <literallayout class='monospaced'>
206 $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
207 </literallayout></para></listitem>
208 <listitem><para><emphasis>ADT Installer Extras:</emphasis>
209 Packages needed if you are going to be using the
210 <ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
211 <literallayout class='monospaced'>
212 $ sudo apt-get install autoconf automake libtool libglib2.0-dev
213 </literallayout></para></listitem>
214 </itemizedlist>
215 </para>
216 </section>
217
218 <section id='fedora-packages'>
219 <title>Fedora Packages</title>
220
221 <para>
222 The following list shows the required packages by function
223 given a supported Fedora Linux distribution:
224 <itemizedlist>
225 <listitem><para><emphasis>Essentials:</emphasis>
226 Packages needed to build an image for a headless
227 system:
228 <literallayout class='monospaced'>
229 $ sudo yum install &FEDORA_HOST_PACKAGES_ESSENTIAL;
230 </literallayout></para></listitem>
231 <listitem><para><emphasis>Graphical Extras:</emphasis>
232 Packages recommended if the host system has graphics support:
233 <literallayout class='monospaced'>
234 $ sudo yum install SDL-devel xterm
235 </literallayout></para></listitem>
236 <listitem><para><emphasis>Documentation:</emphasis>
237 Packages needed if you are going to build out the
238 Yocto Project documentation manuals:
239 <literallayout class='monospaced'>
240 $ sudo yum install make docbook-style-dsssl docbook-style-xsl \
241 docbook-dtds docbook-utils fop libxslt dblatex xmlto
242 </literallayout></para></listitem>
243 <listitem><para><emphasis>ADT Installer Extras:</emphasis>
244 Packages needed if you are going to be using the
245 <ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
246 <literallayout class='monospaced'>
247 $ sudo yum install autoconf automake libtool glib2-devel
248 </literallayout></para></listitem>
249 </itemizedlist>
250 </para>
251 </section>
252
253 <section id='opensuse-packages'>
254 <title>OpenSUSE Packages</title>
255
256 <para>
257 The following list shows the required packages by function
258 given a supported OpenSUSE Linux distribution:
259 <itemizedlist>
260 <listitem><para><emphasis>Essentials:</emphasis>
261 Packages needed to build an image for a headless
262 system:
263 <literallayout class='monospaced'>
264 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
265 </literallayout></para></listitem>
266 <listitem><para><emphasis>Graphical Extras:</emphasis>
267 Packages recommended if the host system has graphics support:
268 <literallayout class='monospaced'>
269 $ sudo zypper install libSDL-devel xterm
270 </literallayout></para></listitem>
271 <listitem><para><emphasis>Documentation:</emphasis>
272 Packages needed if you are going to build out the
273 Yocto Project documentation manuals:
274 <literallayout class='monospaced'>
275 $ sudo zypper install make fop xsltproc dblatex xmlto
276 </literallayout></para></listitem>
277 <listitem><para><emphasis>ADT Installer Extras:</emphasis>
278 Packages needed if you are going to be using the
279 <ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
280 <literallayout class='monospaced'>
281 $ sudo zypper install autoconf automake libtool glib2-devel
282 </literallayout></para></listitem>
283 </itemizedlist>
284 </para>
285 </section>
286
287 <section id='centos-packages'>
288 <title>CentOS Packages</title>
289
290 <para>
291 The following list shows the required packages by function
292 given a supported CentOS Linux distribution:
293 <note>Depending on the CentOS version you are using, other requirements
294 and dependencies might exist.
295 For details, you should look at the CentOS sections on the
296 <ulink url='https://wiki.yoctoproject.org/wiki/Poky/GettingStarted/Dependencies'>Poky/GettingStarted/Dependencies</ulink>
297 wiki page.
298 </note>
299 <itemizedlist>
300 <listitem><para><emphasis>Essentials:</emphasis>
301 Packages needed to build an image for a headless
302 system:
303 <literallayout class='monospaced'>
304 $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL;
305 </literallayout></para></listitem>
306 <listitem><para><emphasis>Graphical Extras:</emphasis>
307 Packages recommended if the host system has graphics support:
308 <literallayout class='monospaced'>
309 $ sudo yum install SDL-devel xterm
310 </literallayout></para></listitem>
311 <listitem><para><emphasis>Documentation:</emphasis>
312 Packages needed if you are going to build out the
313 Yocto Project documentation manuals:
314 <literallayout class='monospaced'>
315 $ sudo yum install make docbook-style-dsssl docbook-style-xsl \
316 docbook-dtds docbook-utils fop libxslt dblatex xmlto
317 </literallayout></para></listitem>
318 <listitem><para><emphasis>ADT Installer Extras:</emphasis>
319 Packages needed if you are going to be using the
320 <ulink url='&YOCTO_DOCS_ADT_URL;#using-the-adt-installer'>Application Development Toolkit (ADT) Installer</ulink>:
321 <literallayout class='monospaced'>
322 $ sudo yum install autoconf automake libtool glib2-devel
323 </literallayout></para></listitem>
324 </itemizedlist>
325 </para>
326 </section>
327 </section>
328
329 <section id='required-git-tar-and-python-versions'>
330 <title>Required Git, tar, and Python Versions</title>
331
332 <para>
333 In order to use the build system, your host development system
334 must meet the following version requirements for Git, tar, and
335 Python:
336 <itemizedlist>
337 <listitem><para>Git 1.7.5 or greater</para></listitem>
338 <listitem><para>tar 1.24 or greater</para></listitem>
339 <listitem><para>Python 2.7.3 or greater not including
340 Python 3.x, which is not supported.</para></listitem>
341 </itemizedlist>
342 </para>
343
344 <para>
345 If your host development system does not meet all these requirements,
346 you can resolve this by either downloading a pre-built tarball
347 containing these tools, or building such a tarball on another
348 system.
349 Regardless of the method, once you have the tarball you simply
350 install it somewhere on you system, such as a directory in your
351 home directory, and then source the environment script provided,
352 which adds the tools into <filename>PATH</filename> and sets
353 any other environment variables required to run the tools.
354 Doing so gives you working versions of Git, tar, Python and
355 <filename>chrpath</filename>.
356 </para>
357
358 <para>
359 If downloading a pre-built tarball, locate the
360 <filename>*.sh</filename> at
361 <ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-1.5/buildtools/'></ulink>.
362 </para>
363
364 <para>
365 If building your own tarball, do so using this command:
366 <literallayout class='monospaced'>
367 $ bitbake buildtools-tarball
368 </literallayout>
369 <note>
370 The <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>
371 variable determines whether you build tools for a 32-bit
372 or 64-bit system.
373 </note>
374 Once the build completes, you can find the file that installs the
375 the tools in the <filename>tmp/deploy/sdk</filename> subdirectory
376 of the
377 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
378 The file used to install the tarball has the string "buildtools"
379 in the name.
380 </para>
381
382 <para>
383 After you have either built the tarball or downloaded it, you need
384 to install it.
385 Install the tools by executing the <filename>*.sh</filename> file.
386 During execution, a prompt appears that allows you to choose the
387 installation directory.
388 For example, you could choose the following:
389 <literallayout class='monospaced'>
390 /home/your-username/sdk
391 </literallayout>
392 </para>
393
394 <para>
395 The final step before you can actually use the tools is to source
396 the tools environment with a command like the following:
397 <literallayout class='monospaced'>
398 $ source /home/your-username/sdk/environment-setup-i586-poky-linux
399 </literallayout>
400 Of course, you need to supply your installation directory and be
401 sure to use the right file (i.e. i585 or x86-64).
402 </para>
403 </section>
404</section>
405
406<section id='intro-getit'>
407 <title>Obtaining the Yocto Project</title>
408 <para>
409 The Yocto Project development team makes the Yocto Project available through a number
410 of methods:
411 <itemizedlist>
412 <listitem><para><emphasis>Releases:</emphasis> Stable, tested releases are available through
413 <ulink url='&YOCTO_DL_URL;/releases/yocto/'/>.</para></listitem>
414 <listitem><para><emphasis>Nightly Builds:</emphasis> These releases are available at
415 <ulink url='http://autobuilder.yoctoproject.org/nightly'/>.
416 These builds include Yocto Project releases, meta-toolchain tarball installation scripts, and
417 experimental builds.</para></listitem>
418 <listitem><para><emphasis>Yocto Project Website:</emphasis> You can find releases
419 of the Yocto Project and supported BSPs at the
420 <ulink url='&YOCTO_HOME_URL;'>Yocto Project website</ulink>.
421 Along with these downloads, you can find lots of other information at this site.
422 </para></listitem>
423 </itemizedlist>
424 </para>
425</section>
426
427<section id='intro-getit-dev'>
428 <title>Development Checkouts</title>
429 <para>
430 Development using the Yocto Project requires a local
431 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
432 You can set up the Source Directory by downloading a Yocto Project release tarball and unpacking it,
433 or by cloning a copy of the upstream
434 <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> Git repository.
435 For information on both these methods, see the
436 "<ulink url='&YOCTO_DOCS_DEV_URL;#getting-setup'>Getting Set Up</ulink>"
437 section in the Yocto Project Development Manual.
438 </para>
439</section>
440
441</chapter>
442<!--
443vim: expandtab tw=80 ts=4
444-->