blob: aea1fdf1874fc7f6c2d029cce0f7bff45a236e6c [file] [log] [blame]
Brad Bishop316dfdd2018-06-25 12:45:53 -04001<!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-system-requirements'>
6<title>System Requirements</title>
7
8 <para>
9 Welcome to the Yocto Project Reference Manual!
10 This manual provides reference information for the current release
11 of the Yocto Project.
12 The manual is best used after you have an understanding
13 of the basics of the Yocto Project.
14 The manual is neither meant to be read as a starting point to the
15 Yocto Project nor read from start to finish.
16 Use this manual to find variable definitions, class
17 descriptions, and so forth as needed during the course of using
18 the Yocto Project.
19 </para>
20
21 <para>
22 For introductory information on the Yocto Project, see the
23 <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink> and the
24 "<ulink url='&YOCTO_DOCS_OM_URL;#overview-development-environment'>Yocto Project Development Environment</ulink>"
25 chapter in the Yocto Project Overview and Concepts Manual.
26 </para>
27
28 <para>
29 If you want to use the Yocto Project to quickly build an image
30 without having to understand concepts, work through the
31 <ulink url='&YOCTO_DOCS_BRIEF_URL;'>Yocto Project Quick Build</ulink>
32 document.
33 You can find "how-to" information in the
34 <ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Tasks Manual</ulink>.
35 You can find Yocto Project overview and conceptual information in the
36 <ulink url='&YOCTO_DOCS_OM_URL;'>Yocto Project Overview and Concepts Manual</ulink>.
37 <note><title>Tip</title>
38 For more information about the Yocto Project Documentation set,
39 see the
40 "<link linkend='resources-links-and-related-documentation'>Links and Related Documentation</link>"
41 section.
42 </note>
43 </para>
44
45 <section id='detailed-supported-distros'>
46 <title>Supported Linux Distributions</title>
47
48 <para>
49 Currently, the Yocto Project is supported on the following
50 distributions:
51 <note><title>Notes</title>
52 <itemizedlist>
53 <listitem><para>
54 Yocto Project releases are tested against the stable
55 Linux distributions in the following list.
56 The Yocto Project should work on other distributions but
57 validation is not performed against them.
58 </para></listitem>
59 <listitem><para>
60 In particular, the Yocto Project does not support
61 and currently has no plans to support
62 rolling-releases or development distributions due to
63 their constantly changing nature.
64 We welcome patches and bug reports, but keep in mind
65 that our priority is on the supported platforms listed
66 below.
67 </para></listitem>
68 <listitem><para>
69 If you encounter problems, please go to
70 <ulink url='&YOCTO_BUGZILLA_URL;'>Yocto Project Bugzilla</ulink>
71 and submit a bug.
72 We are interested in hearing about your experience.
73 For information on how to submit a bug, see the
74 Yocto Project
75 <ulink url='&YOCTO_WIKI_URL;/wiki/Bugzilla_Configuration_and_Bug_Tracking'>Bugzilla wiki page</ulink>
76 and the
77 "<ulink url='&YOCTO_DOCS_DEV_URL;#submitting-a-defect-against-the-yocto-project'>Submitting a Defect Against the Yocto Project</ulink>"
78 section in the Yocto Project Development Tasks Manual.
79 </para></listitem>
80 </itemizedlist>
81 </note>
82 <itemizedlist>
83<!--
84 <listitem><para>Ubuntu 10.04</para></listitem>
85 <listitem><para>Ubuntu 11.10</para></listitem>
86 <listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
87 <listitem><para>Ubuntu 13.10</para></listitem>
88 <listitem><para>Ubuntu 14.04 (LTS)</para></listitem> -->
89 <listitem><para>Ubuntu 14.10</para></listitem>
90 <listitem><para>Ubuntu 15.04</para></listitem>
91 <listitem><para>Ubuntu 15.10</para></listitem>
92 <listitem><para>Ubuntu 16.04 (LTS)</para></listitem>
93<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
94 <listitem><para>Fedora 17 (Spherical)</para></listitem>
95 <listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
96 <listitem><para>Fedora release 20 (Heisenbug)</para></listitem> -->
97 <listitem><para>Fedora release 22</para></listitem>
98 <listitem><para>Fedora release 23</para></listitem>
99<!-- <listitem><para>Fedora release 24</para></listitem>
100 <listitem><para>CentOS release 5.6 (Final)</para></listitem>
101 <listitem><para>CentOS release 5.7 (Final)</para></listitem>
102 <listitem><para>CentOS release 5.8 (Final)</para></listitem>
103 <listitem><para>CentOS release 6.3 (Final)</para></listitem>
104 <listitem><para>CentOS release 6.x</para></listitem> -->
105 <listitem><para>CentOS release 7.x</para></listitem>
106<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem>
107 <listitem><para>Debian GNU/Linux 7.x (Wheezy)</para></listitem> -->
108 <listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
109 <listitem><para>Debian GNU/Linux 9.x (Stretch)</para></listitem>
110<!-- <listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
111 <listitem><para>Debian GNU/Linux 7.2 (Wheezy)</para></listitem>
112 <listitem><para>Debian GNU/Linux 7.3 (Wheezy)</para></listitem>
113 <listitem><para>Debian GNU/Linux 7.4 (Wheezy)</para></listitem>
114 <listitem><para>Debian GNU/Linux 7.5 (Wheezy)</para></listitem>
115 <listitem><para>Debian GNU/Linux 7.6 (Wheezy)</para></listitem> -->
116<!-- <listitem><para>openSUSE 11.4</para></listitem>
117 <listitem><para>openSUSE 12.1</para></listitem>
118 <listitem><para>openSUSE 12.2</para></listitem>
119 <listitem><para>openSUSE 12.3</para></listitem>
120 <listitem><para>openSUSE 13.1</para></listitem> -->
121 <listitem><para>openSUSE 13.2</para></listitem>
122 <listitem><para>openSUSE 42.1</para></listitem>
123 </itemizedlist>
124 </para>
125
126 <note>
127 While the Yocto Project Team attempts to ensure all Yocto Project
128 releases are one hundred percent compatible with each officially
129 supported Linux distribution, instances might exist where you
130 encounter a problem while using the Yocto Project on a specific
131 distribution.
132 </note>
133 </section>
134
135 <section id='required-packages-for-the-host-development-system'>
136 <title>Required Packages for the Host Development System</title>
137
138 <para>
139 The list of packages you need on the host development system can
140 be large when covering all build scenarios using the Yocto Project.
141 This section provides required packages according to
142 Linux distribution and function.
143 </para>
144
145 <section id='ubuntu-packages'>
146 <title>Ubuntu and Debian</title>
147
148 <para>
149 The following list shows the required packages by function
150 given a supported Ubuntu or Debian Linux distribution:
151 <note>
152 If your build system has the
153 <filename>oss4-dev</filename> package installed, you
154 might experience QEMU build failures due to the package
155 installing its own custom
156 <filename>/usr/include/linux/soundcard.h</filename> on
157 the Debian system.
158 If you run into this situation, either of the following
159 solutions exist:
160 <literallayout class='monospaced'>
161 $ sudo apt-get build-dep qemu
162 $ sudo apt-get remove oss4-dev
163 </literallayout>
164 </note>
165 <itemizedlist>
166 <listitem><para><emphasis>Essentials:</emphasis>
167 Packages needed to build an image on a headless
168 system:
169 <literallayout class='monospaced'>
170 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
171 </literallayout></para></listitem>
172 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
173 Packages recommended if the host system has graphics
174 support or if you are going to use the Eclipse
175 IDE:
176 <literallayout class='monospaced'>
177 $ sudo apt-get install libsdl1.2-dev xterm
178 </literallayout></para></listitem>
179 <listitem><para><emphasis>Documentation:</emphasis>
180 Packages needed if you are going to build out the
181 Yocto Project documentation manuals:
182 <literallayout class='monospaced'>
183 $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
184 </literallayout></para></listitem>
185 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
186 Packages needed if you are going to run
187 <filename>oe-selftest</filename>:
188 <literallayout class='monospaced'>
189 $ sudo apt-get install python-git
190 </literallayout>
191 </para></listitem>
192 </itemizedlist>
193 </para>
194 </section>
195
196 <section id='fedora-packages'>
197 <title>Fedora Packages</title>
198
199 <para>
200 The following list shows the required packages by function
201 given a supported Fedora Linux distribution:
202 <itemizedlist>
203 <listitem><para><emphasis>Essentials:</emphasis>
204 Packages needed to build an image for a headless
205 system:
206 <literallayout class='monospaced'>
207 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
208 </literallayout></para></listitem>
209 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
210 Packages recommended if the host system has graphics
211 support or if you are going to use the Eclipse
212 IDE:
213 <literallayout class='monospaced'>
214 $ sudo dnf install SDL-devel xterm
215 </literallayout></para></listitem>
216 <listitem><para><emphasis>Documentation:</emphasis>
217 Packages needed if you are going to build out the
218 Yocto Project documentation manuals:
219 <literallayout class='monospaced'>
220 $ sudo dnf install make docbook-style-dsssl docbook-style-xsl \
221 docbook-dtds docbook-utils fop libxslt dblatex xmlto
222 </literallayout></para></listitem>
223 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
224 Packages needed if you are going to run
225 <filename>oe-selftest</filename>:
226 <literallayout class='monospaced'>
227 $ sudo dnf install python3-GitPython
228 </literallayout>
229 </para></listitem>
230 </itemizedlist>
231 </para>
232 </section>
233
234 <section id='opensuse-packages'>
235 <title>openSUSE Packages</title>
236
237 <para>
238 The following list shows the required packages by function
239 given a supported openSUSE Linux distribution:
240 <itemizedlist>
241 <listitem><para><emphasis>Essentials:</emphasis>
242 Packages needed to build an image for a headless
243 system:
244 <literallayout class='monospaced'>
245 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
246 </literallayout></para></listitem>
247 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
248 Packages recommended if the host system has graphics
249 support or if you are going to use the Eclipse
250 IDE:
251 <literallayout class='monospaced'>
252 $ sudo zypper install libSDL-devel xterm
253 </literallayout></para></listitem>
254 <listitem><para><emphasis>Documentation:</emphasis>
255 Packages needed if you are going to build out the
256 Yocto Project documentation manuals:
257 <literallayout class='monospaced'>
258 $ sudo zypper install make dblatex xmlto
259 </literallayout></para></listitem>
260 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
261 Packages needed if you are going to run
262 <filename>oe-selftest</filename>:
263 <literallayout class='monospaced'>
264 $ sudo zypper install python-GitPython
265 </literallayout></para></listitem>
266 </itemizedlist>
267 <note>
268 Sanity testing, through the
269 <link linkend='ref-classes-testimage*'>testimage</link>
270 classes, does not work on systems using the
271 <ulink url='https://en.opensuse.org/Portal:Wicked'>Wicked</ulink>
272 network manager.
273 </note>
274 </para>
275 </section>
276
277 <section id='centos-packages'>
278 <title>CentOS Packages</title>
279
280 <para>
281 The following list shows the required packages by function
282 given a supported CentOS Linux distribution:
283 <itemizedlist>
284 <listitem><para><emphasis>Essentials:</emphasis>
285 Packages needed to build an image for a headless
286 system:
287 <literallayout class='monospaced'>
288 $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
289 </literallayout>
290 <note><title>Notes</title>
291 <itemizedlist>
292 <listitem><para>
293 Extra Packages for Enterprise Linux
294 (i.e. <filename>epel-release</filename>)
295 is a collection of packages from Fedora
296 built on RHEL/CentOS for easy installation
297 of packages not included in enterprise
298 Linux by default.
299 You need to install these packages
300 separately.
301 </para></listitem>
302 <listitem><para>
303 The <filename>makecache</filename> command
304 consumes additional Metadata from
305 <filename>epel-release</filename>.
306 </para></listitem>
307 </itemizedlist>
308 </note>
309 </para></listitem>
310 <listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
311 Packages recommended if the host system has graphics
312 support or if you are going to use the Eclipse
313 IDE:
314 <literallayout class='monospaced'>
315 $ sudo yum install SDL-devel xterm
316 </literallayout></para></listitem>
317 <listitem><para><emphasis>Documentation:</emphasis>
318 Packages needed if you are going to build out the
319 Yocto Project documentation manuals:
320 <literallayout class='monospaced'>
321 $ sudo yum install make docbook-style-dsssl docbook-style-xsl \
322 docbook-dtds docbook-utils fop libxslt dblatex xmlto
323 </literallayout></para></listitem>
324 <listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
325 Packages needed if you are going to run
326 <filename>oe-selftest</filename>:
327 <literallayout class='monospaced'>
328 $ sudo yum install GitPython
329 </literallayout>
330 </para></listitem>
331 </itemizedlist>
332 </para>
333 </section>
334 </section>
335
336 <section id='required-git-tar-and-python-versions'>
337 <title>Required Git, tar, and Python Versions</title>
338
339 <para>
340 In order to use the build system, your host development system
341 must meet the following version requirements for Git, tar, and
342 Python:
343 <itemizedlist>
344 <listitem><para>Git 1.8.3.1 or greater</para></listitem>
345 <listitem><para>tar 1.27 or greater</para></listitem>
346 <listitem><para>Python 3.4.0 or greater</para></listitem>
347 </itemizedlist>
348 </para>
349
350 <para>
351 If your host development system does not meet all these requirements,
352 you can resolve this by installing a <filename>buildtools</filename>
353 tarball that contains these tools.
354 You can get the tarball one of two ways: download a pre-built
355 tarball or use BitBake to build the tarball.
356 </para>
357
358 <section id='downloading-a-pre-built-buildtools-tarball'>
359 <title>Downloading a Pre-Built <filename>buildtools</filename> Tarball</title>
360
361 <para>
362 Downloading and running a pre-built buildtools installer is
363 the easiest of the two methods by which you can get these tools:
364 <orderedlist>
365 <listitem><para>
366 Locate and download the <filename>*.sh</filename> at
367 <ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;/buildtools/'></ulink>.
368 </para></listitem>
369 <listitem><para>
370 Execute the installation script.
371 Here is an example:
372 <literallayout class='monospaced'>
373 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
374 </literallayout>
375 During execution, a prompt appears that allows you to
376 choose the installation directory.
377 For example, you could choose the following:
378 <literallayout class='monospaced'>
379 /home/<replaceable>your-username</replaceable>/buildtools
380 </literallayout>
381 </para></listitem>
382 <listitem><para>
383 Source the tools environment setup script by using a
384 command like the following:
385 <literallayout class='monospaced'>
386 $ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
387 </literallayout>
388 Of course, you need to supply your installation directory and be
389 sure to use the right file (i.e. i585 or x86-64).
390 </para>
391 <para>
392 After you have sourced the setup script,
393 the tools are added to <filename>PATH</filename>
394 and any other environment variables required to run the
395 tools are initialized.
396 The results are working versions versions of Git, tar,
397 Python and <filename>chrpath</filename>.
398 </para></listitem>
399 </orderedlist>
400 </para>
401 </section>
402
403 <section id='building-your-own-buildtools-tarball'>
404 <title>Building Your Own <filename>buildtools</filename> Tarball</title>
405
406 <para>
407 Building and running your own buildtools installer applies
408 only when you have a build host that can already run BitBake.
409 In this case, you use that machine to build the
410 <filename>.sh</filename> file and then
411 take steps to transfer and run it on a
412 machine that does not meet the minimal Git, tar, and Python
413 requirements.
414 </para>
415
416 <para>
417 Here are the steps to take to build and run your own
418 buildtools installer:
419 <orderedlist>
420 <listitem><para>
421 On the machine that is able to run BitBake,
422 be sure you have set up your build environment with
423 the setup script
424 (<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>).
425 </para></listitem>
426 <listitem><para>
427 Run the BitBake command to build the tarball:
428 <literallayout class='monospaced'>
429 $ bitbake buildtools-tarball
430 </literallayout>
431 <note>
432 The
433 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>
434 variable in your <filename>local.conf</filename> file
435 determines whether you build tools for a 32-bit
436 or 64-bit system.
437 </note>
438 Once the build completes, you can find the
439 <filename>.sh</filename> file that installs
440 the tools in the <filename>tmp/deploy/sdk</filename>
441 subdirectory of the
442 <link linkend='build-directory'>Build Directory</link>.
443 The installer file has the string "buildtools"
444 in the name.
445 </para></listitem>
446 <listitem><para>
447 Transfer the <filename>.sh</filename> file from the
448 build host to the machine that does not meet the
449 Git, tar, or Python requirements.
450 </para></listitem>
451 <listitem><para>
452 On the machine that does not meet the requirements,
453 run the <filename>.sh</filename> file
454 to install the tools.
455 Here is an example:
456 <literallayout class='monospaced'>
457 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
458 </literallayout>
459 During execution, a prompt appears that allows you to
460 choose the installation directory.
461 For example, you could choose the following:
462 <literallayout class='monospaced'>
463 /home/<replaceable>your_username</replaceable>/buildtools
464 </literallayout>
465 </para></listitem>
466 <listitem><para>
467 Source the tools environment setup script by using a
468 command like the following:
469 <literallayout class='monospaced'>
470 $ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
471 </literallayout>
472 Of course, you need to supply your installation directory and be
473 sure to use the right file (i.e. i585 or x86-64).
474 </para>
475 <para>
476 After you have sourced the setup script,
477 the tools are added to <filename>PATH</filename>
478 and any other environment variables required to run the
479 tools are initialized.
480 The results are working versions versions of Git, tar,
481 Python and <filename>chrpath</filename>.
482 </para></listitem>
483 </orderedlist>
484 </para>
485 </section>
486 </section>
487</chapter>
488<!--
489vim: expandtab tw=80 ts=4
490-->