blob: 9c2198a7691ddc8d27cb3c8863f235d993fd44f6 [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 Bishopb1114e52019-02-13 07:56:10 -050091 <listitem><para>Ubuntu 16.04 (LTS)</para></listitem>
Brad Bishopf3f93bb2019-10-16 14:33:32 -040092 <listitem><para>Ubuntu 18.04 (LTS)</para></listitem>
93 <listitem><para>Ubuntu 19.04</para></listitem>
Brad Bishopb1114e52019-02-13 07:56:10 -050094 <listitem><para>Fedora 28</para></listitem>
Brad Bishopc342db32019-05-15 21:57:59 -040095 <listitem><para>Fedora 29</para></listitem>
Brad Bishopf3f93bb2019-10-16 14:33:32 -040096 <listitem><para>Fedora 30</para></listitem>
Brad Bishopb1114e52019-02-13 07:56:10 -050097 <listitem><para>CentOS 7.x</para></listitem>
98 <listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
99 <listitem><para>Debian GNU/Linux 9.x (Stretch)</para></listitem>
Brad Bishop79641f22019-09-10 07:20:22 -0400100 <listitem><para>Debian GNU/Linux 10.x (Buster)</para></listitem>
Brad Bishopf3f93bb2019-10-16 14:33:32 -0400101 <listitem><para>OpenSUSE Leap 15.1</para></listitem>
Brad Bishopb1114e52019-02-13 07:56:10 -0500102 </itemizedlist>
103 </para>
Brad Bishopb1114e52019-02-13 07:56:10 -0500104
Brad Bishop316dfdd2018-06-25 12:45:53 -0400105 <note>
106 While the Yocto Project Team attempts to ensure all Yocto Project
107 releases are one hundred percent compatible with each officially
108 supported Linux distribution, instances might exist where you
109 encounter a problem while using the Yocto Project on a specific
110 distribution.
111 </note>
112 </section>
113
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800114 <section id='required-packages-for-the-build-host'>
115 <title>Required Packages for the Build Host</title>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400116
117 <para>
118 The list of packages you need on the host development system can
119 be large when covering all build scenarios using the Yocto Project.
120 This section provides required packages according to
121 Linux distribution and function.
122 </para>
123
124 <section id='ubuntu-packages'>
125 <title>Ubuntu and Debian</title>
126
127 <para>
128 The following list shows the required packages by function
129 given a supported Ubuntu or Debian Linux distribution:
130 <note>
131 If your build system has the
132 <filename>oss4-dev</filename> package installed, you
133 might experience QEMU build failures due to the package
134 installing its own custom
135 <filename>/usr/include/linux/soundcard.h</filename> on
136 the Debian system.
137 If you run into this situation, either of the following
138 solutions exist:
139 <literallayout class='monospaced'>
140 $ sudo apt-get build-dep qemu
141 $ sudo apt-get remove oss4-dev
142 </literallayout>
143 </note>
144 <itemizedlist>
145 <listitem><para><emphasis>Essentials:</emphasis>
146 Packages needed to build an image on a headless
147 system:
148 <literallayout class='monospaced'>
149 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
150 </literallayout></para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400151 <listitem><para><emphasis>Documentation:</emphasis>
152 Packages needed if you are going to build out the
153 Yocto Project documentation manuals:
154 <literallayout class='monospaced'>
155 $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
156 </literallayout></para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400157 </itemizedlist>
158 </para>
159 </section>
160
161 <section id='fedora-packages'>
162 <title>Fedora Packages</title>
163
164 <para>
165 The following list shows the required packages by function
166 given a supported Fedora Linux distribution:
167 <itemizedlist>
168 <listitem><para><emphasis>Essentials:</emphasis>
169 Packages needed to build an image for a headless
170 system:
171 <literallayout class='monospaced'>
172 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
173 </literallayout></para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400174 <listitem><para><emphasis>Documentation:</emphasis>
175 Packages needed if you are going to build out the
176 Yocto Project documentation manuals:
177 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -0400178 $ sudo dnf install docbook-style-dsssl docbook-style-xsl \
Brad Bishop316dfdd2018-06-25 12:45:53 -0400179 docbook-dtds docbook-utils fop libxslt dblatex xmlto
180 </literallayout></para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400181 </itemizedlist>
182 </para>
183 </section>
184
185 <section id='opensuse-packages'>
186 <title>openSUSE Packages</title>
187
188 <para>
189 The following list shows the required packages by function
190 given a supported openSUSE Linux distribution:
191 <itemizedlist>
192 <listitem><para><emphasis>Essentials:</emphasis>
193 Packages needed to build an image for a headless
194 system:
195 <literallayout class='monospaced'>
196 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
197 </literallayout></para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400198 <listitem><para><emphasis>Documentation:</emphasis>
199 Packages needed if you are going to build out the
200 Yocto Project documentation manuals:
201 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -0400202 $ sudo zypper install dblatex xmlto
Brad Bishop316dfdd2018-06-25 12:45:53 -0400203 </literallayout></para></listitem>
204 </itemizedlist>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400205 </para>
206 </section>
207
208 <section id='centos-packages'>
209 <title>CentOS Packages</title>
210
211 <para>
212 The following list shows the required packages by function
213 given a supported CentOS Linux distribution:
214 <itemizedlist>
215 <listitem><para><emphasis>Essentials:</emphasis>
216 Packages needed to build an image for a headless
217 system:
218 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -0400219 $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL;
Brad Bishop316dfdd2018-06-25 12:45:53 -0400220 </literallayout>
221 <note><title>Notes</title>
222 <itemizedlist>
223 <listitem><para>
224 Extra Packages for Enterprise Linux
225 (i.e. <filename>epel-release</filename>)
226 is a collection of packages from Fedora
227 built on RHEL/CentOS for easy installation
228 of packages not included in enterprise
229 Linux by default.
230 You need to install these packages
231 separately.
232 </para></listitem>
233 <listitem><para>
234 The <filename>makecache</filename> command
235 consumes additional Metadata from
236 <filename>epel-release</filename>.
237 </para></listitem>
238 </itemizedlist>
239 </note>
240 </para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400241 <listitem><para><emphasis>Documentation:</emphasis>
242 Packages needed if you are going to build out the
243 Yocto Project documentation manuals:
244 <literallayout class='monospaced'>
Brad Bishop19323692019-04-05 15:28:33 -0400245 $ sudo yum install docbook-style-dsssl docbook-style-xsl \
Brad Bishop316dfdd2018-06-25 12:45:53 -0400246 docbook-dtds docbook-utils fop libxslt dblatex xmlto
247 </literallayout></para></listitem>
Brad Bishop316dfdd2018-06-25 12:45:53 -0400248 </itemizedlist>
249 </para>
250 </section>
251 </section>
252
253 <section id='required-git-tar-and-python-versions'>
254 <title>Required Git, tar, and Python Versions</title>
255
256 <para>
257 In order to use the build system, your host development system
258 must meet the following version requirements for Git, tar, and
259 Python:
260 <itemizedlist>
261 <listitem><para>Git 1.8.3.1 or greater</para></listitem>
262 <listitem><para>tar 1.27 or greater</para></listitem>
263 <listitem><para>Python 3.4.0 or greater</para></listitem>
264 </itemizedlist>
265 </para>
266
267 <para>
268 If your host development system does not meet all these requirements,
269 you can resolve this by installing a <filename>buildtools</filename>
270 tarball that contains these tools.
271 You can get the tarball one of two ways: download a pre-built
272 tarball or use BitBake to build the tarball.
273 </para>
274
275 <section id='downloading-a-pre-built-buildtools-tarball'>
276 <title>Downloading a Pre-Built <filename>buildtools</filename> Tarball</title>
277
278 <para>
279 Downloading and running a pre-built buildtools installer is
280 the easiest of the two methods by which you can get these tools:
281 <orderedlist>
282 <listitem><para>
283 Locate and download the <filename>*.sh</filename> at
284 <ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;/buildtools/'></ulink>.
285 </para></listitem>
286 <listitem><para>
287 Execute the installation script.
288 Here is an example:
289 <literallayout class='monospaced'>
290 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
291 </literallayout>
292 During execution, a prompt appears that allows you to
293 choose the installation directory.
294 For example, you could choose the following:
295 <literallayout class='monospaced'>
296 /home/<replaceable>your-username</replaceable>/buildtools
297 </literallayout>
298 </para></listitem>
299 <listitem><para>
300 Source the tools environment setup script by using a
301 command like the following:
302 <literallayout class='monospaced'>
303 $ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
304 </literallayout>
305 Of course, you need to supply your installation directory and be
306 sure to use the right file (i.e. i585 or x86-64).
307 </para>
308 <para>
309 After you have sourced the setup script,
310 the tools are added to <filename>PATH</filename>
311 and any other environment variables required to run the
312 tools are initialized.
313 The results are working versions versions of Git, tar,
314 Python and <filename>chrpath</filename>.
315 </para></listitem>
316 </orderedlist>
317 </para>
318 </section>
319
320 <section id='building-your-own-buildtools-tarball'>
321 <title>Building Your Own <filename>buildtools</filename> Tarball</title>
322
323 <para>
324 Building and running your own buildtools installer applies
325 only when you have a build host that can already run BitBake.
326 In this case, you use that machine to build the
327 <filename>.sh</filename> file and then
328 take steps to transfer and run it on a
329 machine that does not meet the minimal Git, tar, and Python
330 requirements.
331 </para>
332
333 <para>
334 Here are the steps to take to build and run your own
335 buildtools installer:
336 <orderedlist>
337 <listitem><para>
338 On the machine that is able to run BitBake,
339 be sure you have set up your build environment with
340 the setup script
341 (<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>).
342 </para></listitem>
343 <listitem><para>
344 Run the BitBake command to build the tarball:
345 <literallayout class='monospaced'>
346 $ bitbake buildtools-tarball
347 </literallayout>
348 <note>
349 The
350 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>
351 variable in your <filename>local.conf</filename> file
352 determines whether you build tools for a 32-bit
353 or 64-bit system.
354 </note>
355 Once the build completes, you can find the
356 <filename>.sh</filename> file that installs
357 the tools in the <filename>tmp/deploy/sdk</filename>
358 subdirectory of the
359 <link linkend='build-directory'>Build Directory</link>.
360 The installer file has the string "buildtools"
361 in the name.
362 </para></listitem>
363 <listitem><para>
364 Transfer the <filename>.sh</filename> file from the
365 build host to the machine that does not meet the
366 Git, tar, or Python requirements.
367 </para></listitem>
368 <listitem><para>
369 On the machine that does not meet the requirements,
370 run the <filename>.sh</filename> file
371 to install the tools.
372 Here is an example:
373 <literallayout class='monospaced'>
374 $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
375 </literallayout>
376 During execution, a prompt appears that allows you to
377 choose the installation directory.
378 For example, you could choose the following:
379 <literallayout class='monospaced'>
380 /home/<replaceable>your_username</replaceable>/buildtools
381 </literallayout>
382 </para></listitem>
383 <listitem><para>
384 Source the tools environment setup script by using a
385 command like the following:
386 <literallayout class='monospaced'>
387 $ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
388 </literallayout>
389 Of course, you need to supply your installation directory and be
390 sure to use the right file (i.e. i585 or x86-64).
391 </para>
392 <para>
393 After you have sourced the setup script,
394 the tools are added to <filename>PATH</filename>
395 and any other environment variables required to run the
396 tools are initialized.
397 The results are working versions versions of Git, tar,
398 Python and <filename>chrpath</filename>.
399 </para></listitem>
400 </orderedlist>
401 </para>
402 </section>
403 </section>
404</chapter>
405<!--
406vim: expandtab tw=80 ts=4
407-->