blob: b8527f670a0eab58c099fd6f21ab5efbd1371f1d [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001<!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='dev-manual-start'>
6
7<title>Getting Started with the Yocto Project</title>
8
9<para>
10 This chapter introduces the Yocto Project and gives you an idea of what you need to get started.
11 You can find enough information to set up your development host and build or use images for
12 hardware supported by the Yocto Project by reading the
13 <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
14</para>
15
16<para>
17 The remainder of this chapter summarizes what is in the Yocto Project Quick Start and provides
18 some higher-level concepts you might want to consider.
19</para>
20
21<section id='introducing-the-yocto-project'>
22 <title>Introducing the Yocto Project</title>
23
24 <para>
25 The Yocto Project is an open-source collaboration project focused on embedded Linux development.
26 The project currently provides a build system that is
27 referred to as the
28 <link linkend='build-system-term'>OpenEmbedded build system</link>
29 in the Yocto Project documentation.
30 The Yocto Project provides various ancillary tools for the embedded developer
31 and also features the Sato reference User Interface, which is optimized for
32 stylus-driven, low-resolution screens.
33 </para>
34
35 <para>
36 You can use the OpenEmbedded build system, which uses
37 <link linkend='bitbake-term'>BitBake</link>, to develop complete Linux
38 images and associated user-space applications for architectures based
39 on ARM, MIPS, PowerPC, x86 and x86-64.
40 <note>
41 By default, using the Yocto Project creates a Poky distribution.
42 However, you can create your own distribution by providing key
43 <link linkend='metadata'>Metadata</link>.
44 See the "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>"
45 section for more information.
46 </note>
47 While the Yocto Project does not provide a strict testing framework,
48 it does provide or generate for you artifacts that let you perform target-level and
49 emulated testing and debugging.
50 Additionally, if you are an <trademark class='trade'>Eclipse</trademark>
51 IDE user, you can install an Eclipse Yocto Plug-in to allow you to
52 develop within that familiar environment.
53 </para>
54</section>
55
56<section id='getting-setup'>
57 <title>Getting Set Up</title>
58
59 <para>
60 Here is what you need to use the Yocto Project:
61 <itemizedlist>
62 <listitem><para><emphasis>Host System:</emphasis> You should have a reasonably current
63 Linux-based host system.
64 You will have the best results with a recent release of Fedora,
65 openSUSE, Debian, Ubuntu, or CentOS as these releases are frequently tested against the Yocto Project
66 and officially supported.
67 For a list of the distributions under validation and their status, see the
68 "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>" section
69 in the Yocto Project Reference Manual and the wiki page at
70 <ulink url='&YOCTO_WIKI_URL;/wiki/Distribution_Support'>Distribution Support</ulink>.</para>
71 <para>
72 You should also have about 50 Gbytes of free disk space for building images.
73 </para></listitem>
74 <listitem><para><emphasis>Packages:</emphasis> The OpenEmbedded build system
75 requires that certain packages exist on your development system (e.g. Python 2.7).
76 See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>"
77 section in the Yocto Project Quick Start and the
78 "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
79 section in the Yocto Project Reference Manual for the exact
80 package requirements and the installation commands to install
81 them for the supported distributions.
82 </para></listitem>
83 <listitem id='local-yp-release'><para><emphasis>Yocto Project Release:</emphasis>
84 You need a release of the Yocto Project locally installed on
85 your development system.
86 The documentation refers to this set of locally installed files
87 as the <link linkend='source-directory'>Source Directory</link>.
88 You create your Source Directory by using
89 <link linkend='git'>Git</link> to clone a local copy
90 of the upstream <filename>poky</filename> repository,
91 or by downloading and unpacking a tarball of an official
92 Yocto Project release.
93 The preferred method is to create a clone of the repository.
94 </para>
95 <para>Working from a copy of the upstream repository allows you
96 to contribute back into the Yocto Project or simply work with
97 the latest software on a development branch.
98 Because Git maintains and creates an upstream repository with
99 a complete history of changes and you are working with a local
100 clone of that repository, you have access to all the Yocto
101 Project development branches and tag names used in the upstream
102 repository.</para>
103 <note>You can view the Yocto Project Source Repositories at
104 <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>
105 </note>
106 <para>The following transcript shows how to clone the
107 <filename>poky</filename> Git repository into the current
108 working directory.
109 The command creates the local repository in a directory
110 named <filename>poky</filename>.
111 For information on Git used within the Yocto Project, see
112 the "<link linkend='git'>Git</link>" section.
113 <literallayout class='monospaced'>
114 $ git clone git://git.yoctoproject.org/poky
115 Cloning into 'poky'...
116 remote: Counting objects: 226790, done.
117 remote: Compressing objects: 100% (57465/57465), done.
118 remote: Total 226790 (delta 165212), reused 225887 (delta 164327)
119 Receiving objects: 100% (226790/226790), 100.98 MiB | 263 KiB/s, done.
120 Resolving deltas: 100% (165212/165212), done.
121 </literallayout></para>
122 <para>For another example of how to set up your own local Git
123 repositories, see this
124 <ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
125 wiki page</ulink>, which describes how to create local
126 Git repositories for both
127 <filename>poky</filename> and <filename>meta-intel</filename>.
128 </para>
129 <para>
130 You can also get the Yocto Project Files by downloading
131 Yocto Project releases from the
132 <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
133 From the website, you just click "Downloads" in the navigation
134 pane to the left to display all Yocto Project downloads.
135 Current and archived releases are available for download.
136 Nightly and developmental builds are also maintained at
137 <ulink url="&YOCTO_AB_NIGHTLY_URL;"></ulink>.
138 One final site you can visit for information on Yocto Project
139 releases is the
140 <ulink url='&YOCTO_WIKI_URL;/wiki/Releases'>Releases</ulink>
141 wiki.
142 </para></listitem>
143 <listitem id='local-kernel-files'><para><emphasis>Yocto Project Kernel:</emphasis>
144 If you are going to be making modifications to a supported Yocto Project kernel, you
145 need to establish local copies of the source.
146 You can find Git repositories of supported Yocto Project kernels organized under
147 "Yocto Linux Kernel" in the Yocto Project Source Repositories at
148 <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para>
149 <para>This setup can involve creating a bare clone of the Yocto Project kernel and then
150 copying that cloned repository.
151 You can create the bare clone and the copy of the bare clone anywhere you like.
152 For simplicity, it is recommended that you create these structures outside of the
153 Source Directory, which is usually named <filename>poky</filename>.</para>
154 <para>As an example, the following transcript shows how to create the bare clone
155 of the <filename>linux-yocto-3.19</filename> kernel and then create a copy of
156 that clone.
157 <note>When you have a local Yocto Project kernel Git repository, you can
158 reference that repository rather than the upstream Git repository as
159 part of the <filename>clone</filename> command.
160 Doing so can speed up the process.</note></para>
161 <para>In the following example, the bare clone is named
162 <filename>linux-yocto-3.19.git</filename>, while the
163 copy is named <filename>my-linux-yocto-3.19-work</filename>:
164 <literallayout class='monospaced'>
165 $ git clone --bare git://git.yoctoproject.org/linux-yocto-3.19 linux-yocto-3.19.git
166 Cloning into bare repository 'linux-yocto-3.19.git'...
167 remote: Counting objects: 3983256, done.
168 remote: Compressing objects: 100% (605006/605006), done.
169 remote: Total 3983256 (delta 3352832), reused 3974503 (delta 3344079)
170 Receiving objects: 100% (3983256/3983256), 843.66 MiB | 1.07 MiB/s, done.
171 Resolving deltas: 100% (3352832/3352832), done.
172 Checking connectivity... done.
173 </literallayout></para>
174 <para>Now create a clone of the bare clone just created:
175 <literallayout class='monospaced'>
176 $ git clone linux-yocto-3.19.git my-linux-yocto-3.19-work
177 Cloning into 'my-linux-yocto-3.19-work'...
178 done.
179 Checking out files: 100% (48440/48440), done.
180 </literallayout></para></listitem>
181 <listitem id='meta-yocto-kernel-extras-repo'><para><emphasis>
182 The <filename>meta-yocto-kernel-extras</filename> Git Repository</emphasis>:
183 The <filename>meta-yocto-kernel-extras</filename> Git repository contains Metadata needed
184 only if you are modifying and building the kernel image.
185 In particular, it contains the kernel BitBake append (<filename>.bbappend</filename>)
186 files that you
187 edit to point to your locally modified kernel source files and to build the kernel
188 image.
189 Pointing to these local files is much more efficient than requiring a download of the
190 kernel's source files from upstream each time you make changes to the kernel.</para>
191 <para>You can find the <filename>meta-yocto-kernel-extras</filename> Git Repository in the
192 "Yocto Metadata Layers" area of the Yocto Project Source Repositories at
193 <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.
194 It is good practice to create this Git repository inside the Source Directory.</para>
195 <para>Following is an example that creates the <filename>meta-yocto-kernel-extras</filename> Git
196 repository inside the Source Directory, which is named <filename>poky</filename>
197 in this case:
198 <literallayout class='monospaced'>
199 $ cd ~/poky
200 $ git clone git://git.yoctoproject.org/meta-yocto-kernel-extras meta-yocto-kernel-extras
201 Cloning into 'meta-yocto-kernel-extras'...
202 remote: Counting objects: 727, done.
203 remote: Compressing objects: 100% (452/452), done.
204 remote: Total 727 (delta 260), reused 719 (delta 252)
205 Receiving objects: 100% (727/727), 536.36 KiB | 240 KiB/s, done.
206 Resolving deltas: 100% (260/260), done.
207 </literallayout></para></listitem>
208 <listitem><para id='supported-board-support-packages-(bsps)'><emphasis>Supported Board Support Packages (BSPs):</emphasis>
209 The Yocto Project supports many BSPs, which are maintained in
210 their own layers or in layers designed to contain several
211 BSPs.
212 To get an idea of machine support through BSP layers, you can
213 look at the
214 <ulink url='&YOCTO_RELEASE_DL_URL;/machines'>index of machines</ulink>
215 for the release.</para>
216
217 <para>The Yocto Project uses the following BSP layer naming
218 scheme:
219 <literallayout class='monospaced'>
220 meta-<replaceable>bsp_name</replaceable>
221 </literallayout>
222 where <replaceable>bsp_name</replaceable> is the recognized
223 BSP name.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500224 Here is an example:
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500225 <literallayout class='monospaced'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500226 meta-raspberrypi
227 </literallayout>
228 See the
229 "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
230 section in the Yocto Project Board Support Package (BSP)
231 Developer's Guide for more information on BSP Layers.</para>
232
233 <para>A useful Git repository released with the Yocto
234 Project is <filename>meta-intel</filename>, which is a
235 parent layer that contains many supported
236 <ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>.
237 You can locate the <filename>meta-intel</filename> Git
238 repository in the "Yocto Metadata Layers" area of the Yocto
239 Project Source Repositories at
240 <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para>
241
242 <para>Using
243 <link linkend='git'>Git</link> to create a local clone of the
244 upstream repository can be helpful if you are working with
245 BSPs.
246 Typically, you set up the <filename>meta-intel</filename>
247 Git repository inside the Source Directory.
248 For example, the following transcript shows the steps to clone
249 <filename>meta-intel</filename>.
250 <note>
251 Be sure to work in the <filename>meta-intel</filename>
252 branch that matches your
253 <link linkend='source-directory'>Source Directory</link>
254 (i.e. <filename>poky</filename>) branch.
255 For example, if you have checked out the "master" branch
256 of <filename>poky</filename> and you are going to use
257 <filename>meta-intel</filename>, be sure to checkout the
258 "master" branch of <filename>meta-intel</filename>.
259 </note>
260 <literallayout class='monospaced'>
261 $ cd ~/poky
262 $ git clone git://git.yoctoproject.org/meta-intel.git
263 Cloning into 'meta-intel'...
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500264 remote: Counting objects: 11917, done.
265 remote: Compressing objects: 100% (3842/3842), done.
266 remote: Total 11917 (delta 6840), reused 11699 (delta 6622)
267 Receiving objects: 100% (11917/11917), 2.92 MiB | 2.88 MiB/s, done.
268 Resolving deltas: 100% (6840/6840), done.
269 Checking connectivity... done.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500270 </literallayout></para>
271
272 <para>The same
273 <ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>wiki page</ulink>
274 referenced earlier covers how to set up the
275 <filename>meta-intel</filename> Git repository.
276 </para></listitem>
277 <listitem><para><emphasis>Eclipse Yocto Plug-in:</emphasis> If you are developing
278 applications using the Eclipse Integrated Development Environment (IDE),
279 you will need this plug-in.
280 See the
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500281 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-appendix-latest-yp-eclipse-plug-in'>Using Eclipse</ulink>"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500282 section in the Yocto Project Software Development Kit (SDK)
283 Developer's Guide for more information.</para></listitem>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500284 </itemizedlist>
285 </para>
286</section>
287
288<section id='building-images'>
289 <title>Building Images</title>
290
291 <para>
292 The build process creates an entire Linux distribution, including the toolchain, from source.
293 For more information on this topic, see the
294 "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
295 section in the Yocto Project Quick Start.
296 </para>
297
298 <para>
299 The build process is as follows:
300 <orderedlist>
301 <listitem><para>Make sure you have set up the Source Directory described in the
302 previous section.</para></listitem>
303 <listitem><para>Initialize the build environment by sourcing a build
304 environment script (i.e.
305 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
306 or
307 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>).
308 </para></listitem>
309 <listitem><para>Optionally ensure the <filename>conf/local.conf</filename> configuration file,
310 which is found in the
311 <link linkend='build-directory'>Build Directory</link>,
312 is set up how you want it.
313 This file defines many aspects of the build environment including
314 the target machine architecture through the
315 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'>MACHINE</ulink></filename> variable,
316 the packaging format used during the build
317 (<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink>),
318 and a centralized tarball download directory through the
319 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'>DL_DIR</ulink></filename> variable.</para></listitem>
320 <listitem><para>
321 Build the image using the <filename>bitbake</filename> command.
322 If you want information on BitBake, see the
323 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
324 </para></listitem>
325 <listitem><para>Run the image either on the actual hardware or using the QEMU
326 emulator.</para></listitem>
327 </orderedlist>
328 </para>
329</section>
330
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500331<section id='flashing-images-using-bmaptool'>
332 <title>Flashing Images Using <filename>bmaptool</filename></title>
333
334 <para>
335 An easy way to flash an image to a bootable device is to use
336 <filename>bmaptool</filename>, which is integrated into the
337 OpenEmbedded build system.
338 </para>
339
340 <para>
341 Following, is an example that shows how to flash a Wic image.
342 <note>
343 You can use <filename>bmaptool</filename> to flash any
344 type of image.
345 </note>
346 Use these steps to flash an image using
347 <filename>bmaptool</filename>:
348 <note>
349 Unless you are able to install the
350 <filename>bmap-tools</filename> package as mentioned in the note
351 in the second bullet of step 3 further down, you will need to build
352 <filename>bmaptool</filename> before using it.
353 Build the tool using the following command:
354 <literallayout class='monospaced'>
355 $ bitbake bmap-tools-native
356 </literallayout>
357 </note>
358 <orderedlist>
359 <listitem><para>
360 Add the following to your <filename>local.conf</filename>
361 file:
362 <literallayout class='monospaced'>
363 IMAGE_FSTYPES += "wic wic.bmap"
364 </literallayout>
365 </para></listitem>
366 <listitem><para>
367 Either have your image ready (pre-built) or take the step
368 build the image:
369 <literallayout class='monospaced'>
370 $ bitbake <replaceable>image</replaceable>
371 </literallayout>
372 </para></listitem>
373 <listitem><para>
374 Flash the image to the media by using
375 <filename>bmaptool</filename> depending on your particular
376 setup:
377 <itemizedlist>
378 <listitem><para>
379 If you have write access to the media,
380 use this command form:
381 <literallayout class='monospaced'>
382 $ oe-run-native bmaptool copy ./tmp/deploy/images/qemux86-64/core-image-minimal-<replaceable>machine</replaceable>.wic /dev/sd<replaceable>X</replaceable>
383 </literallayout>
384 </para></listitem>
385 <listitem><para>
386 If you do not have write access to
387 the media, use the following
388 commands:
389 <literallayout class='monospaced'>
390 $ sudo bash
391 $ PATH=tmp/sysroots/x86_64-linux/usr/bin/ bmaptool copy ./tmp/deploy/images/qemux86-64/core-image-minimal-<replaceable>machine</replaceable>.wic /dev/sd<replaceable>X</replaceable>
392 </literallayout>
393 <note>
394 If you are using Ubuntu or Debian distributions,
395 you can install the
396 <filename>bmap-tools</filename> package using the
397 following command and then use the tool
398 without specifying
399 <filename>PATH</filename> even from the
400 root account:
401 <literallayout class='monospaced'>
402 $ sudo apt-get install bmap-tools
403 </literallayout>
404 </note>
405 </para></listitem>
406 </itemizedlist>
407 </para></listitem>
408 </orderedlist>
409 </para>
410
411 <para>
412 For help on the <filename>bmaptool</filename> command, use either of
413 the following commands:
414 <literallayout class='monospaced'>
415 $ bmaptool --help
416 $ oe-run-native bmaptool --help
417 </literallayout>
418 </para>
419</section>
420
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500421<section id='using-pre-built-binaries-and-qemu'>
422 <title>Using Pre-Built Binaries and QEMU</title>
423
424 <para>
425 Another option you have to get started is to use pre-built binaries.
426 The Yocto Project provides many types of binaries with each release.
427 See the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
428 chapter in the Yocto Project Reference Manual
429 for descriptions of the types of binaries that ship with a Yocto Project
430 release.
431 </para>
432
433 <para>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500434 Using a pre-built binary is ideal for developing software
435 applications to run on your target hardware.
436 To do this, you need to be able to access the appropriate
437 cross-toolchain tarball for the architecture on which you are
438 developing.
439 If you are using an SDK type image, the image ships with the complete
440 toolchain native to the architecture (i.e. a toolchain designed to
441 run on the
442 <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKMACHINE'><filename>SDKMACHINE</filename></ulink>).
443 If you are not using an SDK type image, you need to separately download
444 and install the stand-alone Yocto Project cross-toolchain tarball.
Brad Bishop37a0e4d2017-12-04 01:01:44 -0500445 See the
446 "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-appendix-obtain'>Obtaining the SDK</ulink>"
447 appendix in the Yocto Project Software Development Kit (SDK)
448 Developer's Guide for more information on locating and installing
449 cross-toolchains.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500450 </para>
451
452 <para>
453 Regardless of the type of image you are using, you need to download the pre-built kernel
454 that you will boot in the QEMU emulator and then download and extract the target root
455 filesystem for your target machine’s architecture.
456 You can get architecture-specific binaries and file systems from
457 <ulink url='&YOCTO_MACHINES_DL_URL;'>machines</ulink>.
458 You can get installation scripts for stand-alone toolchains from
459 <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'>toolchains</ulink>.
460 Once you have all your files, you set up the environment to emulate the hardware
461 by sourcing an environment setup script.
462 Finally, you start the QEMU emulator.
463 You can find details on all these steps in the
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500464 <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-manual'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500465 You can learn more about using QEMU with the Yocto Project in the
466 "<link linkend='dev-manual-qemu'>Using the Quick EMUlator (QEMU)</link>"
467 section.
468 </para>
469
470 <para>
471 Using QEMU to emulate your hardware can result in speed issues
472 depending on the target and host architecture mix.
473 For example, using the <filename>qemux86</filename> image in the emulator
474 on an Intel-based 32-bit (x86) host machine is fast because the target and
475 host architectures match.
476 On the other hand, using the <filename>qemuarm</filename> image on the same Intel-based
477 host can be slower.
478 But, you still achieve faithful emulation of ARM-specific issues.
479 </para>
480
481 <para>
482 To speed things up, the QEMU images support using <filename>distcc</filename>
483 to call a cross-compiler outside the emulated system.
484 If you used <filename>runqemu</filename> to start QEMU, and the
485 <filename>distccd</filename> application is present on the host system, any
486 BitBake cross-compiling toolchain available from the build system is automatically
487 used from within QEMU simply by calling <filename>distcc</filename>.
488 You can accomplish this by defining the cross-compiler variable
489 (e.g. <filename>export CC="distcc"</filename>).
490 Alternatively, if you are using a suitable SDK image or the appropriate
491 stand-alone toolchain is present,
492 the toolchain is also automatically used.
493 </para>
494
495 <note>
496 Several mechanisms exist that let you connect to the system running on the
497 QEMU emulator:
498 <itemizedlist>
499 <listitem><para>QEMU provides a framebuffer interface that makes standard
500 consoles available.</para></listitem>
501 <listitem><para>Generally, headless embedded devices have a serial port.
502 If so, you can configure the operating system of the running image
503 to use that port to run a console.
504 The connection uses standard IP networking.</para></listitem>
505 <listitem><para>
506 SSH servers exist in some QEMU images.
507 The <filename>core-image-sato</filename> QEMU image has a
508 Dropbear secure shell (SSH) server that runs with the root
509 password disabled.
510 The <filename>core-image-full-cmdline</filename> and
511 <filename>core-image-lsb</filename> QEMU images
512 have OpenSSH instead of Dropbear.
513 Including these SSH servers allow you to use standard
514 <filename>ssh</filename> and <filename>scp</filename> commands.
515 The <filename>core-image-minimal</filename> QEMU image,
516 however, contains no SSH server.
517 </para></listitem>
518 <listitem><para>You can use a provided, user-space NFS server to boot the QEMU session
519 using a local copy of the root filesystem on the host.
520 In order to make this connection, you must extract a root filesystem tarball by using the
521 <filename>runqemu-extract-sdk</filename> command.
522 After running the command, you must then point the <filename>runqemu</filename>
523 script to the extracted directory instead of a root filesystem image file.</para></listitem>
524 </itemizedlist>
525 </note>
526</section>
527</chapter>
528<!--
529vim: expandtab tw=80 ts=4
530-->