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