blob: e6dae7ffe348b0916a6c4d56f18e650f44ab2820 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!DOCTYPE article 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<article id='yocto-project-qs-intro'>
6 <articleinfo>
7 <title>Yocto Project Quick Start</title>
8
9 <copyright>
10 <year>&COPYRIGHT_YEAR;</year>
11 <holder>Linux Foundation</holder>
12 </copyright>
13
14 <legalnotice>
15 <para>
16 Permission is granted to copy, distribute and/or modify this document under
17 the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
18 </para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050019 <note><title>Manual Notes</title>
20 <itemizedlist>
21 <listitem><para>
22 This version of the
23 <emphasis>Yocto Project Quick Start</emphasis>
24 is for the &YOCTO_DOC_VERSION; release of the
25 Yocto Project.
26 To be sure you have the latest version of the manual
27 for this release, use the manual from the
28 <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>.
29 </para></listitem>
30 <listitem><para>
31 For manuals associated with other releases of the Yocto
32 Project, go to the
33 <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
34 and use the drop-down "Active Releases" button
35 and choose the manual associated with the desired
36 Yocto Project.
37 </para></listitem>
38 <listitem><para>
39 To report any inaccuracies or problems with this
40 manual, send an email to the Yocto Project
41 discussion group at
42 <filename>yocto@yoctoproject.com</filename> or log into
43 the freenode <filename>#yocto</filename> channel.
Brad Bishop6e60e8b2018-02-01 10:27:11 -050044 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050045 </itemizedlist>
46 </note>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050047 </legalnotice>
48
Patrick Williamsc124f4f2015-09-15 14:41:29 -050049 <abstract>
50 <imagedata fileref="figures/yocto-project-transp.png"
51 width="6in" depth="1in"
52 align="right" scale="25" />
53 </abstract>
54 </articleinfo>
55
56 <section id='welcome'>
57 <title>Welcome!</title>
58 <para>
59 Welcome to the Yocto Project!
60 The Yocto Project is an open-source collaboration project whose
61 focus is developers of embedded Linux systems.
62 Among other things, the Yocto Project uses a build host based
63 on the OpenEmbedded (OE) project, which uses the
Brad Bishopd7bf8c12018-02-25 22:55:05 -050064 <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050065 tool, to construct complete Linux images.
Brad Bishopd7bf8c12018-02-25 22:55:05 -050066 The BitBake and OE components combine together to form
Patrick Williamsc124f4f2015-09-15 14:41:29 -050067 a reference build host, historically known as
Brad Bishopd7bf8c12018-02-25 22:55:05 -050068 <ulink url='&YOCTO_DOCS_REF_URL;#poky'>Poky</ulink>
69 (<emphasis>Pah</emphasis>-kee).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050070 </para>
71
72 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050073 This quick start is written so that you can quickly get a
Patrick Williamsc124f4f2015-09-15 14:41:29 -050074 build host set up to use the Yocto Project and then build some
75 Linux images.
76 Rather than go into great detail about the Yocto Project and its
77 many capabilities, this quick start provides the minimal
Brad Bishopd7bf8c12018-02-25 22:55:05 -050078 information you need to try out the Yocto Project using either a
79 supported Linux build host or a build host set up to use
80 <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
81 which leverages
82 <ulink url='https://www.docker.com/'>Docker Containers</ulink>.
83 </para>
84
85 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050086 Reading and using the quick start should result in you having a
87 basic understanding of what the Yocto Project is and how to use
88 some of its core components.
89 You will also have worked through steps to produce two images:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050090 one that runs on the emulator (QEMU) and one that boots on actual
91 hardware (i.e. MinnowBoard Turbot).
Patrick Williamsc124f4f2015-09-15 14:41:29 -050092 The examples highlight the ease with which you can use the
93 Yocto Project to create images for multiple types of hardware.
94 </para>
95
96 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -050097 The following list directs you to key sections of this
98 quick start:
99 <itemizedlist>
100 <listitem><para>
101 <ulink url='http://www.yoctoproject.org/docs/2.4/yocto-project-qs/yocto-project-qs.html#yp-resources'>Setting Up to Use the Yocto Project</ulink>
102 </para></listitem>
103 <listitem><para>
104 <ulink url='http://www.yoctoproject.org/docs/2.4/yocto-project-qs/yocto-project-qs.html#building-an-image-for-emulation'>Building an Image for Emulation</ulink>
105 </para></listitem>
106 <listitem><para>
107 <ulink url='http://www.yoctoproject.org/docs/2.4/yocto-project-qs/yocto-project-qs.html#building-an-image-for-hardware'>Building an Image for Hardware</ulink>
108 </para></listitem>
109 </itemizedlist>
110<!--
111 <note>
112 If you do not have a system that runs Linux and you want to give
113 the Yocto Project a test run, you might consider using the Yocto
114 Project Build Appliance.
115 The Build Appliance allows you to build and boot a custom
116 embedded Linux image with the Yocto Project using a non-Linux
117 development system.
118 See the
119 <ulink url='https://www.yoctoproject.org/tools-resources/projects/build-appliance'>Yocto Project Build Appliance</ulink>
120 for more information.
121 </note>
122-->
123 </para>
124
125 <para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500126 For more detailed information on the Yocto Project, you can
127 reference these resources:
128 <itemizedlist>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500129 <listitem><para>
130 <emphasis>Website:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500131 The
132 <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500133 provides background information, the latest builds, breaking
134 news, full development documentation, and access to a rich
135 Yocto Project Development Community into which you can tap.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500136 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500137 <listitem><para>
138 <emphasis>Yocto Project Development Environment Overview:</emphasis>
139 The
140 "<ulink url='&YOCTO_DOCS_REF_URL;#yp-intro'>Introducing the Yocto Project Development Environment</ulink>"
141 section presents an overview of the Yocto Project
142 development environment.
143 </para></listitem>
144 <listitem><para>
145 <emphasis>FAQs:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500146 Lists commonly asked Yocto Project questions and answers.
147 You can find two FAQs:
148 <ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>Yocto Project FAQ</ulink>
149 on a wiki, and the
150 "<ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink>"
151 chapter in the Yocto Project Reference Manual.
152 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500153 <listitem><para>
154 <emphasis>Developer Screencast:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500155 The
156 <ulink url='http://vimeo.com/36450321'>Getting Started with the Yocto Project - New Developer Screencast Tutorial</ulink>
157 provides a 30-minute video created for users unfamiliar
158 with the Yocto Project but familiar with Linux build
159 hosts.
160 While this screencast is somewhat dated, the introductory
161 and fundamental concepts are useful for the beginner.
162 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500163 <listitem><para>
164 <emphasis>Comprehensive List of Links and Other Documentation:</emphasis>
165 The
166 "<ulink url='&YOCTO_DOCS_REF_URL;#resources-links-and-related-documentation'>Links and Related Documentation</ulink>"
167 section in the Yocto Project Reference Manual provides a
168 comprehensive list of related links and documentation.
169 </para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500170 </itemizedlist>
171 </para>
172 </section>
173
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500174 <section id='yp-resources'>
175 <title>Setting Up to Use the Yocto Project</title>
176
177 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500178 Setting up to use the Yocto Project involves getting your build
179 host ready.
180 If you have a native Linux machine that runs a Yocto Project
181 supported distribution as described by the
182 "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
183 section in the Yocto Project Reference Manual, you can prepare
184 that machine as your build host.
185 See the
186 "<link linkend='qs-native-linux-build-host'>Using a Native Linux Machine</link>"
187 section for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500188 </para>
189
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500190 <para>
191 If you do not want to use the Yocto Project on a native Linux
192 machine, you can prepare your build host to use
193 <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
194 which leverages
195 <ulink url='https://www.docker.com/'>Docker Containers</ulink>.
196 You can set up a build host for Windows, Mac, and Linux
197 machines.
198 See the
199 "<link linkend='qs-crops-build-host'>Using CROPS and Containers</link>"
200 section for more information.
201 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500202
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500203 <section id='qs-crops-build-host'>
204 <title>Using CROPS and Containers</title>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500205
206 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500207 Follow these steps to get your build host set up with a
208 Poky container that you can use to complete the build
209 examples further down in the Quick Start:
210 <orderedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500211 <listitem><para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500212 <emphasis>Set Up to use CROss PlatformS (CROPS):</emphasis>
213 Work through the first six steps of the procedure
214 in the
215 "<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-to-use-crops'>Setting Up to Use CROss PlatformS (CROPS)</ulink>"
216 section of the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500217 </para></listitem>
218 <listitem><para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500219 <emphasis>Set Up the Poky Container to Use the Yocto Project:</emphasis>
220 Go to
221 <ulink url='https://github.com/crops/poky-container/blob/master/README.md'></ulink>
222 and follow the directions to set up the Poky container
223 on your build host.</para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500224
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500225 <para>Once you complete the setup instructions for your
226 machine, you need to get a copy of the
227 <filename>poky</filename> repository on your build
228 host.
229 See the
230 "<link linkend='releases'>Yocto Project Release</link>"
231 section to continue.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500232 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500233 </orderedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500234 </para>
235 </section>
236
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500237 <section id='qs-native-linux-build-host'>
238 <title>Using a Native Linux Machine</title>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500239
240 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500241 The following list shows what you need in order to use a
242 Linux-based build host to use the Yocto Project to build images:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500243 </para>
244
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500245 <itemizedlist>
246 <listitem><para><emphasis>Build Host</emphasis>
247 A build host with a minimum of 50 Gbytes of free disk
248 space that is running a supported Linux distribution (i.e.
249 recent releases of Fedora, openSUSE, CentOS, Debian, or
250 Ubuntu).
251 </para></listitem>
252 <listitem><para><emphasis>Build Host Packages</emphasis>
253 Appropriate packages installed on the build host.
254 </para></listitem>
255 </itemizedlist>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500256
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500257 <section id='the-linux-distro'>
258 <title>The Linux Distribution</title>
259
260 <para>
261 The Yocto Project team verifies each release against recent
262 versions of the most popular Linux distributions that
263 provide stable releases.
264 In general, if you have the current release minus one of the
265 following distributions, you should have no problems.
266 <itemizedlist>
267 <listitem><para>
268 Ubuntu
269 </para></listitem>
270 <listitem><para>
271 Fedora
272 </para></listitem>
273 <listitem><para>
274 openSUSE
275 </para></listitem>
276 <listitem><para>
277 CentOS
278 </para></listitem>
279 <listitem><para>
280 Debian
281 </para></listitem>
282 </itemizedlist>
283 For a more detailed list of distributions that support the
284 Yocto Project, see the
285 "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
286 section in the Yocto Project Reference Manual.
287 </para>
288
289 <para>
290 The OpenEmbedded build system should be able to run on any
291 modern distribution that has the following versions for
292 Git, tar, and Python.
293 <itemizedlist>
294 <listitem><para>
295 Git 1.8.3.1 or greater
296 </para></listitem>
297 <listitem><para>
298 tar 1.27 or greater
299 </para></listitem>
300 <listitem><para>
301 Python 3.4.0 or greater.
302 </para></listitem>
303 </itemizedlist>
304 If your build host does not meet any of these three listed
305 version requirements, you can take steps to prepare the
306 system so that you can still use the Yocto Project.
307 See the
308 "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
309 section in the Yocto Project Reference Manual for information.
310 </para>
311 </section>
312
313 <section id='packages'>
314 <title>The Build Host Packages</title>
315
316 <para>
317 Required build host packages vary depending on your
318 build machine and what you want to do with the Yocto Project.
319 For example, if you want to build an image that can run
320 on QEMU in graphical mode (a minimal, basic build
321 requirement), then the build host package requirements
322 are different than if you want to build an image on a headless
323 system or build out the Yocto Project documentation set.
324 </para>
325
326 <para>
327 Collectively, the number of required packages is large
328 if you want to be able to cover all cases.
329 <note>
330 In general, you need to have root access and then install
331 the required packages.
332 Thus, the commands in the following section may or may
333 not work depending on whether or not your Linux
334 distribution has <filename>sudo</filename> installed.
335 </note>
336 </para>
337
338 <para>
339 The following list shows the required packages needed to build
340 an image that runs on QEMU in graphical mode (e.g. essential
341 plus graphics support).
342 For lists of required packages for other scenarios, see the
343 "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
344 section in the Yocto Project Reference Manual.
345 <itemizedlist>
346 <listitem><para><emphasis>Ubuntu and Debian</emphasis>
347 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500348 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500349 </literallayout>
350 </para></listitem>
351 <listitem><para><emphasis>Fedora</emphasis>
352 <literallayout class='monospaced'>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500353 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500354 </literallayout>
355 </para></listitem>
356 <listitem><para><emphasis>OpenSUSE</emphasis>
357 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500358 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; libSDL-devel xterm
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500359 </literallayout>
360 </para></listitem>
361 <listitem><para><emphasis>CentOS</emphasis>
362 <literallayout class='monospaced'>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500363 $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500364 </literallayout>
365 <note><title>Notes</title>
366 <itemizedlist>
367 <listitem><para>
368 Extra Packages for Enterprise Linux
369 (i.e. <filename>epel-release</filename>)
370 is a collection of packages from Fedora
371 built on RHEL/CentOS for easy installation
372 of packages not included in enterprise
373 Linux by default.
374 You need to install these packages
375 separately.
376 </para></listitem>
377 <listitem><para>
378 The <filename>makecache</filename> command
379 consumes additional Metadata from
380 <filename>epel-release</filename>.
381 </para></listitem>
382 </itemizedlist>
383 </note>
384 </para></listitem>
385 </itemizedlist>
386 </para>
387 </section>
388
389 <para>
390 Once you complete the setup instructions for your
391 machine, you need to get a copy of the
392 <filename>poky</filename> repository on your build
393 host.
394 Continue with the
395 "<link linkend='releases'>Yocto Project Release</link>"
396 section.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500397 </para>
398 </section>
399
400 <section id='releases'>
401 <title>Yocto Project Release</title>
402
403 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500404 Now that your build host has the right packages (native
405 Linux machine) or you have the Poky container set up
406 (CROPS), you need to get a copy of the Yocto Project.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500407 It is recommended that you get the latest Yocto Project release
408 by setting up (cloning in
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500409 <ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink> terms) a
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500410 local copy of the <filename>poky</filename> Git repository on
411 your build host and then checking out the latest release.
412 Doing so allows you to easily update to newer Yocto Project
413 releases as well as contribute back to the Yocto Project.
414 </para>
415
416 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500417 Here is an example from a native Linux machine that is
418 running Ubuntu.
419 <note>
420 If your build host is using a Poky container, you can
421 use the same Git commands.
422 </note>
423 The following example clones the <filename>poky</filename>
424 repository and then checks out the latest Yocto Project Release
425 by tag (i.e. <filename>&DISTRO_REL_TAG;</filename>):
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500426 <literallayout class='monospaced'>
427 $ git clone git://git.yoctoproject.org/poky
428 Cloning into 'poky'...
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500429 remote: Counting objects: 361782, done.
430 remote: Compressing objects: 100% (87100/87100), done.
431 remote: Total 361782 (delta 268619), reused 361439 (delta 268277)
432 Receiving objects: 100% (361782/361782), 131.94 MiB | 6.88 MiB/s, done.
433 Resolving deltas: 100% (268619/268619), done.
434 Checking connectivity... done.
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500435 $ git checkout tags/&DISTRO_REL_TAG; -b poky_&DISTRO;
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500436 </literallayout>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500437 </para>
438
439 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500440 The previous Git <filename>checkout</filename> command
441 creates a local branch named
442 <filename>poky_&DISTRO;</filename>.
443 The files available to you in that branch exactly match the
444 repository's files in the
445 <filename>&DISTRO_NAME_NO_CAP;</filename>
446 development branch at the time of the Yocto Project &DISTRO;
447 release.
448 <note>
449 Rather than checking out the entire development branch
450 of a release (i.e. the tip), which could be continuously
451 changing while you are doing your development, you would
452 check out a branch based on a release tag as shown in
453 the previous example.
454 Doing so provides you with an unchanging, stable set of
455 files.
456 </note>
457 </para>
458
459 <para>
460 For more options and information about accessing Yocto
461 Project related repositories, see the
462 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>"
463 section in the Yocto Project Development Tasks Manual.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500464 </para>
465 </section>
466 </section>
467
468 <section id='qs-building-images'>
469 <title>Building Images</title>
470
471 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500472 You are now ready to give the Yocto Project a try.
473 For this example, you will be using the command line to build
474 your images.
475 <note>
476 A graphical user interface to the Yocto Project is available
477 through
478 <ulink url='&YOCTO_DOCS_REF_URL;#toaster-term'>Toaster</ulink>.
479 See the
480 <ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>
481 for more information.
482 </note>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500483 </para>
484
485 <para>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500486 The remainder of this quick start steps you through the
487 following:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500488 <itemizedlist>
489 <listitem><para>
490 Build a <filename>qemux86</filename> reference image
491 and run it in the QEMU emulator.
492 </para></listitem>
493 <listitem><para>
494 Easily change configurations so that you can quickly
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600495 create a second image that you can load onto bootable
496 media and actually boot target hardware.
497 This example uses the MinnowBoard
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500498 Turbot-compatible boards.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500499 </para></listitem>
500 </itemizedlist>
501 <note>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600502 The steps in the following two sections do not provide detail,
503 but rather provide minimal, working commands and examples
504 designed to just get you started.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500505 For more details, see the appropriate manuals in the
506 <ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project manual set</ulink>.
507 </note>
508 </para>
509
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600510 <section id='building-an-image-for-emulation'>
511 <title>Building an Image for Emulation</title>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500512
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600513 <para>
514 Use the following commands to build your image.
515 The OpenEmbedded build system creates an entire Linux
516 distribution, including the toolchain, from source.
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500517 <note><title>Notes about Network Proxies</title>
518 <itemizedlist>
519 <listitem><para>
520 By default, the build process searches for source
521 code using a pre-determined order through a set of
522 locations.
523 If you are working behind a firewall and your build
524 host is not set up for proxies, you could encounter
525 problems with the build process when fetching source
526 code (e.g. fetcher failures or Git failures).
527 </para></listitem>
528 <listitem><para>
529 If you do not know your proxy settings, consult your
530 local network infrastructure resources and get that
531 information.
532 A good starting point could also be to check your
533 web browser settings.
534 Finally, you can find more information on using the
535 Yocto Project behind a firewall in the Yocto Project
536 Reference Manual
537 <ulink url='&YOCTO_DOCS_REF_URL;#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</ulink>
538 and on the
539 "<ulink url='https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
540 wiki page.
541 </para></listitem>
542 </itemizedlist>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600543 </note>
544 </para>
545
546 <para>
547 <orderedlist>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500548 <listitem><para>
549 <emphasis>Be Sure Your Build Host is Set Up:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600550 The steps to build an image in this section depend on
551 your build host being properly set up.
552 Be sure you have worked through the requirements
553 described in the
554 "<link linkend='yp-resources'>Setting Up to Use the Yocto Project</link>"
555 section.
556 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500557 <listitem><para>
558 <emphasis>Check Out Your Branch:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600559 Be sure you are in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500560 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600561 (e.g. <filename>poky</filename>) and then check out
562 the branch associated with the latest Yocto Project
563 Release:
564 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500565 $ cd ~/poky
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500566 $ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600567 </literallayout>
568 Git's <filename>checkout</filename> command checks out
569 the current Yocto Project release into a local branch
570 whose name matches the release (i.e.
571 <filename>&DISTRO_NAME_NO_CAP;</filename>).
572 The local branch tracks the upstream branch of the
573 same name.
574 Creating your own branch based on the released
575 branch ensures you are using the latest files for
576 that release.
577 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500578 <listitem><para>
579 <emphasis>Initialize the Build Environment:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600580 Run the
581 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
582 environment setup script to define the OpenEmbedded
583 build environment on your build host.
584 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500585 $ source &OE_INIT_FILE;
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600586 </literallayout>
587 Among other things, the script creates the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500588 <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600589 which is <filename>build</filename> in this case
590 and is located in the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500591 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600592 After the script runs, your current working directory
593 is set to the Build Directory.
594 Later, when the build completes, the Build Directory
595 contains all the files created during the build.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600596 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500597 <listitem><para>
598 <emphasis>Examine Your Local Configuration File:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600599 When you set up the build environment, a local
600 configuration file named
601 <filename>local.conf</filename> becomes available in
602 a <filename>conf</filename> subdirectory of the
603 Build Directory.
604 Before using BitBake to start the build, you can
605 look at this file and be sure your general
606 configurations are how you want them:
607 <itemizedlist>
608 <listitem><para>
609 To help conserve disk space during builds,
610 you can add the following statement to your
611 project's configuration file, which for this
612 example is
613 <filename>poky/build/conf/local.conf</filename>.
614 Adding this statement deletes the work
615 directory used for building a recipe once the
616 recipe is built.
617 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500618 INHERIT += "rm_work"
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600619 </literallayout>
620 </para></listitem>
621 <listitem><para>
622 By default, the target machine for the build is
623 <filename>qemux86</filename>,
624 which produces an image that can be used in
625 the QEMU emulator and is targeted at an
626 <trademark class='registered'>Intel</trademark>
627 32-bit based architecture.
628 Further on in this example, this default is
629 easily changed through the
630 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
631 variable so that you can quickly
632 build an image for a different machine.
633 </para></listitem>
634 <listitem><para>
635 Another consideration before you build is the
636 package manager used when creating the image.
637 The default <filename>local.conf</filename>
638 file selects the RPM package manager.
639 You can control this configuration by using the
640 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename>
641 variable.</para>
642 <para>Selection of the package manager is separate
643 from whether package management is used at runtime
644 in the target image.</para>
645 <para>For additional package manager selection
646 information, see the
647 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'><filename>package.bbclass</filename></ulink>"
648 section in the Yocto Project Reference Manual.
649 </para></listitem>
650 </itemizedlist>
651 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500652 <listitem><para>
653 <emphasis>Start the Build:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600654 Continue with the following command to build an OS image
655 for the target, which is
656 <filename>core-image-sato</filename> in this example:
657 <note>
658 Depending on the number of processors and cores, the
659 amount of RAM, the speed of your Internet connection
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500660 and other factors, the build process could take
661 several hours the first time you run it.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600662 Subsequent builds run much faster since parts of the
663 build are cached.
664 </note>
665 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500666 $ bitbake core-image-sato
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600667 </literallayout>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500668 <note>
669 <para>
670 If you experience a build error due to resources
671 temporarily being unavailable and it appears you
672 should not be having this issue, it might be due
673 to the combination of a 4.3+ Linux kernel and
674 <filename>systemd</filename> version 228+
675 (i.e. see this
676 <ulink url='http://unix.stackexchange.com/questions/253903/creating-threads-fails-with-resource-temporarily-unavailable-with-4-3-kernel'>link</ulink>
677 for information).
678 </para>
679
680 <para>
681 To work around this issue, you can try either
682 of the following:
683 <itemizedlist>
684 <listitem><para>
685 Try the build again.
686 </para></listitem>
687 <listitem><para>
688 Modify the "DefaultTasksMax"
689 <filename>systemd</filename> parameter
690 by uncommenting it and setting it to
691 "infinity".
692 You can find this parameter in the
693 <filename>system.conf</filename> file
694 located in
695 <filename>/etc/systemd</filename>
696 on most systems.
697 </para></listitem>
698 </itemizedlist>
699 </para>
700 </note>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600701 For information on using the
702 <filename>bitbake</filename> command, see the
703 "<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
704 section in the Yocto Project Reference Manual, or see the
705 "<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
706 section in the BitBake User Manual.
707 For information on other targets, see the
708 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
709 chapter in the Yocto Project Reference Manual.
710 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500711 <listitem><para>
712 <emphasis>Simulate Your Image Using QEMU:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600713 Once this particular image is built, you can start QEMU
714 and run the image:
715 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500716 $ runqemu qemux86
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600717 </literallayout>
718 If you want to learn more about running QEMU, see the
719 "<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500720 chapter in the Yocto Project Development Tasks Manual.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600721 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500722 <listitem><para>
723 <emphasis>Exit QEMU:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600724 Exit QEMU by either clicking on the shutdown icon or by
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500725 typing <filename>Ctrl-C</filename> in the QEMU
726 transcript window from which you evoked QEMU.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600727 </para></listitem>
728 </orderedlist>
729 </para>
730 </section>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500731
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600732 <section id='building-an-image-for-hardware'>
733 <title>Building an Image for Hardware</title>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500734
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600735 <para id='qs-minnowboard-example'>
736 The following steps show how easy it is to set up to build an
737 image for a new machine.
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500738 These steps build an image for the MinnowBoard Turbot, which is
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600739 supported by the Yocto Project and the
740 <filename>meta-intel</filename> <filename>intel-corei7-64</filename>
741 and <filename>intel-core2-32</filename> Board Support Packages
742 (BSPs).
743 <note>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500744 The MinnowBoard Turbot ships with 64-bit firmware.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600745 If you want to use the board in 32-bit mode, you must
746 download the
747 <ulink url='http://firmware.intel.com/projects/minnowboard-max'>32-bit firmware</ulink>.
748 </note>
749 </para>
750
751 <para>
752 <orderedlist>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500753 <listitem><para>
754 <emphasis>Create a Local Copy of the
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600755 <filename>meta-intel</filename> Repository:</emphasis>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500756 Building an image for the MinnowBoard Turbot requires
757 the
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600758 <filename>meta-intel</filename> layer.
759 Use the <filename>git clone</filename> command to create
760 a local copy of the repository inside your
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500761 <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>,
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600762 which is <filename>poky</filename> in this example:
763 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500764 $ cd $HOME/poky
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500765 $ git clone git://git.yoctoproject.org/meta-intel
766 Cloning into 'meta-intel'...
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500767 remote: Counting objects: 14039, done.
768 remote: Compressing objects: 100% (4471/4471), done.
769 remote: Total 14039 (delta 8130), reused 13837 (delta 7947)
770 Receiving objects: 100% (14039/14039), 4.27 MiB | 3.98 MiB/s, done.
771 Resolving deltas: 100% (8130/8130), done.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500772 Checking connectivity... done.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600773 </literallayout>
774 By default when you clone a Git repository, the
775 "master" branch is checked out.
776 Before you build your image that uses the
777 <filename>meta-intel</filename> layer, you must be
778 sure that both repositories
779 (<filename>meta-intel</filename> and
780 <filename>poky</filename>) are using the same releases.
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500781 Because you used the <filename>&DISTRO_REL_TAG;</filename>
782 tag when you checked out the <filename>poky</filename>
783 repository by tag, you should use a
784 <filename>meta-intel</filename>
785 tag that corresponds with the release you used for
786 <filename>poky</filename>.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600787 Consequently, you need to checkout out the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500788 "<filename>&METAINTELVERSION;-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;</filename>"
789 branch after cloning <filename>meta-intel</filename>:
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600790 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500791 $ cd $HOME/poky/meta-intel
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500792 $ git checkout tags/&METAINTELVERSION;-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION; -b meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;
793 Switched to a new branch 'meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;'
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600794 </literallayout>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500795 The previous Git <filename>checkout</filename> command
796 creates a local branch named
797 <filename>meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;</filename>.
798 You have the option to name your local branch whatever
799 you want by providing any name you like for
800 "meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;"
801 in the above example.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600802 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500803 <listitem><para>
804 <emphasis>Configure the Build:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600805 To configure the build, you edit the
806 <filename>bblayers.conf</filename> and
807 <filename>local.conf</filename> files, both of which are
808 located in the <filename>build/conf</filename> directory.
809 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500810
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600811 <para>Here is a quick way to make the edits.
812 The first command uses the
813 <filename>bitbake-layers add-layer</filename> command
814 to add the <filename>meta-intel</filename>
815 layer, which contains the <filename>intel-core*</filename>
816 BSPs to the build.
817 The second command selects the BSP by setting the
818 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
819 variable.
820 <literallayout class='monospaced'>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500821 $ cd $HOME/poky/build
822 $ bitbake-layers add-layer "$HOME/poky/meta-intel"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500823 $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600824 </literallayout>
825 <note><title>Notes</title>
826 <para>
827 If you want a 64-bit build, use the following:
828 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500829 $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600830 </literallayout>
831 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500832
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600833 <para>
834 If you want 32-bit images, use the following:
835 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500836 $ echo 'MACHINE = "intel-core2-32"' >> conf/local.conf
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600837 </literallayout>
838 </para>
839 </note>
840 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500841 <listitem><para>
842 <emphasis>Build an Image for MinnowBoard
843 Turbot:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600844 The type of image you build depends on your goals.
845 For example, the previous build created a
846 <filename>core-image-sato</filename> image, which is an
847 image with Sato support.
848 It is possible to build many image types for the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500849 MinnowBoard Turbot.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600850 Some possibilities are <filename>core-image-base</filename>,
851 which is a console-only image.
852 Another choice could be a
853 <filename>core-image-full-cmdline</filename>, which is
854 another console-only image but has more full-features
855 Linux system functionality installed.
856 For types of images you can build using the Yocto
857 Project, see the
858 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
859 chapter in the Yocto Project Reference Manual.</para>
860 <para>Because configuration changes are minimal to set up
861 for this second build, the OpenEmbedded build system can
862 re-use files from previous builds as much as possible.
863 Re-using files means this second build will be much faster
864 than an initial build.
865 For this example, the <filename>core-image-base</filename>
866 image is built:
867 <literallayout class='monospaced'>
868 $ bitbake core-image-base
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500869 </literallayout>
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500870 <note>
871 <para>
872 If you experience a build error due to resources
873 temporarily being unavailable and it appears you
874 should not be having this issue, it might be due
875 to the combination of a 4.3+ Linux kernel and
876 <filename>systemd</filename> version 228+
877 (i.e. see this
878 <ulink url='http://unix.stackexchange.com/questions/253903/creating-threads-fails-with-resource-temporarily-unavailable-with-4-3-kernel'>link</ulink>
879 for information).
880 </para>
881
882 <para>
883 To work around this issue, you can try either
884 of the following:
885 <itemizedlist>
886 <listitem><para>
887 Try the build again.
888 </para></listitem>
889 <listitem><para>
890 Modify the "DefaultTasksMax"
891 <filename>systemd</filename> parameter
892 by uncommenting it and setting it to
893 "infinity".
894 You can find this parameter in the
895 <filename>system.conf</filename> file
896 located in
897 <filename>/etc/systemd</filename>
898 on most systems.
899 </para></listitem>
900 </itemizedlist>
901 </para>
902 </note>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600903 Once the build completes, the resulting console-only image
904 is located in the Build Directory here:
905 <literallayout class='monospaced'>
Brad Bishop37a0e4d2017-12-04 01:01:44 -0500906 tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600907 </literallayout>
908 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500909 <listitem><para>
910 <emphasis>Write the Image:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600911 You can write the image just built to a bootable media
912 (e.g. a USB key, SATA drive, SD card, etc.) using the
913 <filename>dd</filename> utility:
914 <literallayout class='monospaced'>
Brad Bishop37a0e4d2017-12-04 01:01:44 -0500915 $ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600916 </literallayout>
917 In the previous command, the
918 <filename>TARGET_DEVICE</filename> is the device node in
919 the host machine (e.g. <filename>/dev/sdc</filename>, which
920 is most likely a USB stick, or
921 <filename>/dev/mmcblk0</filename>, which is most likely an
Brad Bishop37a0e4d2017-12-04 01:01:44 -0500922 SD card).
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600923 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500924 <listitem><para>
925 <emphasis>Boot the Hardware:</emphasis>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600926 With the boot device provisioned, you can insert the
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500927 media into the MinnowBoard Turbot and boot the hardware.
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600928 The board should automatically detect the media and boot to
929 the bootloader and subsequently the operating system.
930 </para>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500931
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600932 <para>If the board does not boot automatically, you can
933 boot it manually from the EFI shell as follows:
934 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500935 Shell> connect -r
936 Shell> map -r
937 Shell> fs0:
938 Shell> bootx64
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500939 </literallayout>
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600940 <note>
941 For a 32-bit image use the following:
942 <literallayout class='monospaced'>
943 Shell> bootia32
944 </literallayout>
945 </note>
946 </para></listitem>
947 </orderedlist>
948 </para>
949 </section>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500950 </section>
951
952 <section id='qs-next-steps'>
953 <title>Next Steps</title>
954
955 <para>
956 If you completed all the steps in the previous section then
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500957 congratulations!
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500958 What now?
959 </para>
960
961 <para>
962 Depending on what you primary interests are with the Yocto Project,
963 you could consider any of the following:
964 <itemizedlist>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500965 <listitem><para>
966 <emphasis>Visit the Yocto Project Web Site:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500967 The official
968 <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink>
969 web site contains information on the entire project.
970 Visiting this site is a good way to familiarize yourself
971 with the overall project.
972 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500973 <listitem><para>
974 <emphasis>Look Through the
975 <ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-intro'>Yocto Project Development Tasks Manual</ulink>:</emphasis>
976 This manual contains procedural information grouped to
977 help you get set up, work with layers, customize images,
978 write new recipes, work with libraries, and use QEMU.
979 The information is task-based and spans the breadth of the
980 Yocto Project.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500981 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500982 <listitem><para>
983 <emphasis>Look Through the
984 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
985 manual:</emphasis>
986 This manual describes how to use both the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500987 <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-using-the-standard-sdk'>standard SDK</ulink>
988 and the
989 <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>,
990 which are used primarily for application development.
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500991 This manual also provides example workflows
992 that use the popular <trademark class='trade'>Eclipse</trademark>
993 development environment and that use <filename>devtool</filename>.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500994 See the
995 "<ulink url='&YOCTO_DOCS_SDK_URL;#workflow-using-eclipse'>Workflow using Eclipseâ„¢</ulink>"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500996 and
997 "<ulink url='&YOCTO_DOCS_SDK_URL;#using-devtool-in-your-sdk-workflow'>Using <filename>devtool</filename> in your SDK Workflow</ulink>"
998 sections for more information.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500999 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001000 <listitem><para>
1001 <emphasis>Learn About Kernel Development:</emphasis>
1002 If you want to see how to work with the kernel and
1003 understand Yocto Linux kernels, see the
1004 <ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#kernel-dev-intro'>Yocto Project Linux Kernel Development Manual</ulink>.
1005 This manual provides information on how to patch the
1006 kernel, modify kernel recipes, and configure the kernel.
1007 </para></listitem>
1008 <listitem><para>
1009 <emphasis>Learn About Board Support Packages (BSPs):</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001010 If you want to learn about BSPs, see the
1011 <ulink url='&YOCTO_DOCS_BSP_URL;#bsp'>Yocto Project Board Support Packages (BSP) Developer's Guide</ulink>.
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001012 This manual also provides an example BSP creation workflow.
1013 See the
1014 <ulink url='&YOCTO_DOCS_BSP_URL;#developing-a-board-support-package-bsp'>"Developing a Board Support Package (BSP)</ulink>"
1015 section.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001016 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001017 <listitem><para>
1018 <emphasis>Learn About Toaster:</emphasis>
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001019 Toaster is a web interface to the Yocto Project's
1020 OpenEmbedded build system.
1021 If you are interested in using this type of interface to
1022 create images, see the
1023 <ulink url='&YOCTO_DOCS_TOAST_URL;#toaster-manual-intro'>Toaster User Manual</ulink>.
1024 </para></listitem>
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001025 <listitem><para>
1026 <emphasis>Have Available the
1027 <ulink url='&YOCTO_DOCS_REF_URL;#ref-manual-intro'>Yocto Project Reference Manual:</ulink></emphasis>
1028 Unlike the rest of the Yocto Project manual set, this manual
1029 is comprised of material suited for reference rather than
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001030 procedures.
1031 You can get
1032 <ulink url='&YOCTO_DOCS_REF_URL;#usingpoky'>build details</ulink>,
1033 a
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001034 <ulink url='&YOCTO_DOCS_REF_URL;#development-concepts'>closer look</ulink>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001035 at how the pieces of the Yocto Project development
1036 environment work together, information on various
1037 <ulink url='&YOCTO_DOCS_REF_URL;#technical-details'>technical details</ulink>,
1038 guidance on
1039 <ulink url='&YOCTO_DOCS_REF_URL;#migration'>migrating to a newer Yocto Project release</ulink>,
1040 reference material on the
1041 <ulink url='&YOCTO_DOCS_REF_URL;#ref-structure'>directory structure</ulink>,
1042 <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes'>classes</ulink>,
1043 and
1044 <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks'>tasks</ulink>.
1045 The Yocto Project Reference Manual also contains a fairly
1046 comprehensive
1047 <ulink url='&YOCTO_DOCS_REF_URL;#ref-variables-glossary'>glossary of variables</ulink>
1048 used within the Yocto Project.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001049 </para></listitem>
1050 </itemizedlist>
1051 </para>
1052 </section>
1053</article>
1054<!--
1055vim: expandtab tw=80 ts=4
1056-->