diff options
Diffstat (limited to 'documentation/dev-manual/dev-manual-start.xml')
-rw-r--r-- | documentation/dev-manual/dev-manual-start.xml | 445 |
1 files changed, 445 insertions, 0 deletions
diff --git a/documentation/dev-manual/dev-manual-start.xml b/documentation/dev-manual/dev-manual-start.xml new file mode 100644 index 0000000..c1d89bc --- /dev/null +++ b/documentation/dev-manual/dev-manual-start.xml | |||
@@ -0,0 +1,445 @@ | |||
1 | <!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 OpenEmbedded build system in the Yocto Project documentation. | ||
28 | The Yocto Project provides various ancillary tools for the embedded developer | ||
29 | and also features the Sato reference User Interface, which is optimized for | ||
30 | stylus driven, low-resolution screens. | ||
31 | </para> | ||
32 | |||
33 | <para> | ||
34 | You can use the OpenEmbedded build system, which uses | ||
35 | BitBake, to develop complete Linux | ||
36 | images and associated user-space applications for architectures based | ||
37 | on ARM, MIPS, PowerPC, x86 and x86-64. | ||
38 | <note> | ||
39 | By default, using the Yocto Project creates a Poky distribution. | ||
40 | However, you can create your own distribution by providing key | ||
41 | <link linkend='metadata'>Metadata</link>. | ||
42 | See the "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" | ||
43 | section for more information. | ||
44 | </note> | ||
45 | While the Yocto Project does not provide a strict testing framework, | ||
46 | it does provide or generate for you artifacts that let you perform target-level and | ||
47 | emulated testing and debugging. | ||
48 | Additionally, if you are an <trademark class='trade'>Eclipse</trademark> | ||
49 | IDE user, you can install an Eclipse Yocto Plug-in to allow you to | ||
50 | develop within that familiar environment. | ||
51 | </para> | ||
52 | </section> | ||
53 | |||
54 | <section id='getting-setup'> | ||
55 | <title>Getting Set Up</title> | ||
56 | |||
57 | <para> | ||
58 | Here is what you need to use the Yocto Project: | ||
59 | <itemizedlist> | ||
60 | <listitem><para><emphasis>Host System:</emphasis> | ||
61 | You should have a reasonably current Linux-based host system. | ||
62 | You will have the best results with a recent release of Fedora, | ||
63 | openSUSE, Debian, Ubuntu, or CentOS as these releases are frequently tested against the Yocto Project | ||
64 | and officially supported. | ||
65 | For a list of the distributions under validation and their status, see the | ||
66 | "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>" section | ||
67 | in the Yocto Project Reference Manual and the wiki page at | ||
68 | <ulink url='&YOCTO_WIKI_URL;/wiki/Distribution_Support'>Distribution Support</ulink>.</para> | ||
69 | <para> | ||
70 | You should also have about 100 gigabytes of free disk space for building images. | ||
71 | </para></listitem> | ||
72 | <listitem><para><emphasis>Packages:</emphasis> | ||
73 | The OpenEmbedded build system requires that certain packages | ||
74 | exist on your development system (e.g. Python 2.6 or 2.7). | ||
75 | See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" | ||
76 | section in the Yocto Project Quick Start and the | ||
77 | "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>" | ||
78 | section in the Yocto Project Reference Manual for the exact | ||
79 | package requirements and the installation commands to install | ||
80 | them for the supported distributions.</para></listitem> | ||
81 | <listitem id='local-yp-release'><para><emphasis>Yocto Project Release:</emphasis> | ||
82 | You need a release of the Yocto Project installed locally on | ||
83 | your development system. | ||
84 | This local area is referred to as the | ||
85 | <link linkend='source-directory'>Source Directory</link> | ||
86 | and is created when you use | ||
87 | <link linkend='git'>Git</link> to clone a local copy | ||
88 | of the upstream <filename>poky</filename> repository, | ||
89 | or when you download an official release of the corresponding | ||
90 | tarball.</para> | ||
91 | <para>Working from a copy of the upstream repository allows you | ||
92 | to contribute back into the Yocto Project or simply work with | ||
93 | the latest software on a development branch. | ||
94 | Because Git maintains and creates an upstream repository with | ||
95 | a complete history of changes and you are working with a local | ||
96 | clone of that repository, you have access to all the Yocto | ||
97 | Project development branches and tag names used in the upstream | ||
98 | repository. | ||
99 | <note>You can view the Yocto Project Source Repositories at | ||
100 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> | ||
101 | </note> | ||
102 | <itemizedlist> | ||
103 | <listitem><para><emphasis>Tarball Extraction:</emphasis> | ||
104 | If you are not going to contribute back into the Yocto | ||
105 | Project, you can simply go to the | ||
106 | <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>, | ||
107 | select the "Downloads" tab, and choose what you want. | ||
108 | Once you have the tarball, just extract it into a | ||
109 | directory of your choice.</para> | ||
110 | <para>For example, the following command extracts the | ||
111 | Yocto Project &DISTRO; release tarball | ||
112 | into the current working directory and sets up the local | ||
113 | Source Directory | ||
114 | with a top-level folder named | ||
115 | <filename>&YOCTO_POKY;</filename>: | ||
116 | <literallayout class='monospaced'> | ||
117 | $ tar xfj &YOCTO_POKY_TARBALL; | ||
118 | </literallayout></para> | ||
119 | <para>This method does not produce a local Git | ||
120 | repository. | ||
121 | Instead, you simply end up with a snapshot of the | ||
122 | release.</para></listitem> | ||
123 | <listitem><para><emphasis>Git Repository Method:</emphasis> | ||
124 | If you are going to be contributing back into the Yocto | ||
125 | Project or you simply want to keep up with the latest | ||
126 | developments, you should use Git commands to set up a | ||
127 | local Git repository of the upstream | ||
128 | <filename>poky</filename> source repository. | ||
129 | Doing so creates a repository with a complete history | ||
130 | of changes and allows you to easily submit your changes | ||
131 | upstream to the project. | ||
132 | Because you clone the repository, you have access to all | ||
133 | the Yocto Project development branches and tag names | ||
134 | used in the upstream repository. | ||
135 | <note>You can view the Yocto Project Source Repositories | ||
136 | at | ||
137 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> | ||
138 | </note></para> | ||
139 | <para>The following transcript shows how to clone the | ||
140 | <filename>poky</filename> Git repository into the | ||
141 | current working directory. | ||
142 | The command creates the local repository in a directory | ||
143 | named <filename>poky</filename>. | ||
144 | For information on Git used within the Yocto Project, | ||
145 | see the | ||
146 | "<link linkend='git'>Git</link>" section. | ||
147 | <literallayout class='monospaced'> | ||
148 | $ git clone git://git.yoctoproject.org/poky | ||
149 | Cloning into 'poky'... | ||
150 | remote: Counting objects: 203728, done. | ||
151 | remote: Compressing objects: 100% (52371/52371), done. | ||
152 | remote: Total 203728 (delta 147444), reused 202891 (delta 146614) | ||
153 | Receiving objects: 100% (203728/203728), 95.54 MiB | 308 KiB/s, done. | ||
154 | Resolving deltas: 100% (147444/147444), done. | ||
155 | </literallayout> | ||
156 | For another example of how to set up your own local | ||
157 | Git repositories, see this | ||
158 | <ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>wiki page</ulink>, | ||
159 | which describes how to create both | ||
160 | <filename>poky</filename> and | ||
161 | <filename>meta-intel</filename> Git repositories. | ||
162 | </para></listitem> | ||
163 | </itemizedlist></para></listitem> | ||
164 | <listitem id='local-kernel-files'><para><emphasis>Yocto Project Kernel:</emphasis> | ||
165 | If you are going to be making modifications to a supported Yocto Project kernel, you | ||
166 | need to establish local copies of the source. | ||
167 | You can find Git repositories of supported Yocto Project kernels organized under | ||
168 | "Yocto Linux Kernel" in the Yocto Project Source Repositories at | ||
169 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para> | ||
170 | <para>This setup can involve creating a bare clone of the Yocto Project kernel and then | ||
171 | copying that cloned repository. | ||
172 | You can create the bare clone and the copy of the bare clone anywhere you like. | ||
173 | For simplicity, it is recommended that you create these structures outside of the | ||
174 | Source Directory (usually <filename>poky</filename>).</para> | ||
175 | <para>As an example, the following transcript shows how to create the bare clone | ||
176 | of the <filename>linux-yocto-3.10</filename> kernel and then create a copy of | ||
177 | that clone. | ||
178 | <note>When you have a local Yocto Project kernel Git repository, you can | ||
179 | reference that repository rather than the upstream Git repository as | ||
180 | part of the <filename>clone</filename> command. | ||
181 | Doing so can speed up the process.</note></para> | ||
182 | <para>In the following example, the bare clone is named | ||
183 | <filename>linux-yocto-3.10.git</filename>, while the | ||
184 | copy is named <filename>my-linux-yocto-3.10-work</filename>: | ||
185 | <literallayout class='monospaced'> | ||
186 | $ git clone ‐‐bare git://git.yoctoproject.org/linux-yocto-3.10 linux-yocto-3.10.git | ||
187 | Cloning into bare repository 'linux-yocto-3.10.git'... | ||
188 | remote: Counting objects: 3364487, done. | ||
189 | remote: Compressing objects: 100% (507178/507178), done. | ||
190 | remote: Total 3364487 (delta 2827715), reused 3364481 (delta 2827709) | ||
191 | Receiving objects: 100% (3364487/3364487), 722.95 MiB | 423 KiB/s, done. | ||
192 | Resolving deltas: 100% (2827715/2827715), done. | ||
193 | </literallayout></para> | ||
194 | <para>Now create a clone of the bare clone just created: | ||
195 | <literallayout class='monospaced'> | ||
196 | $ git clone linux-yocto-3.10.git my-linux-yocto-3.10-work | ||
197 | Cloning into 'my-linux-yocto-3.10-work'... | ||
198 | done. | ||
199 | </literallayout></para></listitem> | ||
200 | <listitem id='meta-yocto-kernel-extras-repo'><para><emphasis> | ||
201 | The <filename>meta-yocto-kernel-extras</filename> Git Repository</emphasis>: | ||
202 | The <filename>meta-yocto-kernel-extras</filename> Git repository contains Metadata needed | ||
203 | only if you are modifying and building the kernel image. | ||
204 | In particular, it contains the kernel BitBake append (<filename>.bbappend</filename>) | ||
205 | files that you | ||
206 | edit to point to your locally modified kernel source files and to build the kernel | ||
207 | image. | ||
208 | Pointing to these local files is much more efficient than requiring a download of the | ||
209 | kernel's source files from upstream each time you make changes to the kernel.</para> | ||
210 | <para>You can find the <filename>meta-yocto-kernel-extras</filename> Git Repository in the | ||
211 | "Yocto Metadata Layers" area of the Yocto Project Source Repositories at | ||
212 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>. | ||
213 | It is good practice to create this Git repository inside the Source Directory.</para> | ||
214 | <para>Following is an example that creates the <filename>meta-yocto-kernel-extras</filename> Git | ||
215 | repository inside the Source Directory, which is named <filename>poky</filename> | ||
216 | in this case: | ||
217 | <literallayout class='monospaced'> | ||
218 | $ cd ~/poky | ||
219 | $ git clone git://git.yoctoproject.org/meta-yocto-kernel-extras meta-yocto-kernel-extras | ||
220 | Cloning into 'meta-yocto-kernel-extras'... | ||
221 | remote: Counting objects: 727, done. | ||
222 | remote: Compressing objects: 100% (452/452), done. | ||
223 | remote: Total 727 (delta 260), reused 719 (delta 252) | ||
224 | Receiving objects: 100% (727/727), 536.36 KiB | 102 KiB/s, done. | ||
225 | Resolving deltas: 100% (260/260), done. | ||
226 | </literallayout></para></listitem> | ||
227 | <listitem><para id='supported-board-support-packages-(bsps)'><emphasis>Supported Board | ||
228 | Support Packages (BSPs):</emphasis> | ||
229 | The Yocto Project provides a layer called <filename>meta-intel</filename> and | ||
230 | it is maintained in its own separate Git repository. | ||
231 | The <filename>meta-intel</filename> layer contains many supported | ||
232 | <ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>.</para> | ||
233 | <para>Similar considerations exist for setting up the <filename>meta-intel</filename> | ||
234 | layer. | ||
235 | You can get set up for BSP development one of two ways: tarball extraction or | ||
236 | with a local Git repository. | ||
237 | It is a good idea to use the same method that you used to set up the Source Directory. | ||
238 | Regardless of the method you use, the Yocto Project uses the following BSP layer | ||
239 | naming scheme: | ||
240 | <literallayout class='monospaced'> | ||
241 | meta-<BSP_name> | ||
242 | </literallayout> | ||
243 | where <filename><BSP_name></filename> is the recognized BSP name. | ||
244 | Here are some examples: | ||
245 | <literallayout class='monospaced'> | ||
246 | meta-crownbay | ||
247 | meta-emenlow | ||
248 | meta-n450 | ||
249 | </literallayout> | ||
250 | See the | ||
251 | "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" | ||
252 | section in the Yocto Project Board Support Package (BSP) | ||
253 | Developer's Guide for more information on BSP Layers. | ||
254 | <itemizedlist> | ||
255 | <listitem><para><emphasis>Tarball Extraction:</emphasis> | ||
256 | You can download any released BSP tarball from the same | ||
257 | "Downloads" page of the Yocto Project | ||
258 | <ulink url='https://www.yoctoproject.org/downloads'>Website</ulink> | ||
259 | to get the Yocto Project release. | ||
260 | Once on the "Download" page, look to the right of the | ||
261 | page and scroll down to find the BSP tarballs.</para> | ||
262 | <para>Once you have the tarball, just extract it into a | ||
263 | directory of your choice. | ||
264 | Again, this method just produces a snapshot of the BSP | ||
265 | layer in the form of a hierarchical directory | ||
266 | structure.</para></listitem> | ||
267 | <listitem><para><emphasis>Git Repository Method:</emphasis> | ||
268 | If you are working with a local Git repository for your | ||
269 | Source Directory, you should also use this method to | ||
270 | set up the <filename>meta-intel</filename> Git | ||
271 | repository. | ||
272 | You can locate the <filename>meta-intel</filename> Git | ||
273 | repository in the "Yocto Metadata Layers" area of the | ||
274 | Yocto Project Source Repositories at | ||
275 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para> | ||
276 | <para>Using | ||
277 | <link linkend='git'>Git</link> to create a local clone | ||
278 | of the upstream repository can be helpful if you are | ||
279 | working with BSPs. | ||
280 | Typically, you set up the | ||
281 | <filename>meta-intel</filename> Git repository inside | ||
282 | the Source Directory. | ||
283 | For example, the following transcript shows the steps | ||
284 | to clone <filename>meta-intel</filename>. | ||
285 | <literallayout class='monospaced'> | ||
286 | $ cd ~/poky | ||
287 | $ git clone git://git.yoctoproject.org/meta-intel.git | ||
288 | Cloning into 'meta-intel'... | ||
289 | remote: Counting objects: 7366, done. | ||
290 | remote: Compressing objects: 100% (2491/2491), done. | ||
291 | remote: Total 7366 (delta 3997), reused 7299 (delta 3930) | ||
292 | Receiving objects: 100% (7366/7366), 2.31 MiB | 95 KiB/s, done. | ||
293 | Resolving deltas: 100% (3997/3997), done. | ||
294 | </literallayout> | ||
295 | The same | ||
296 | <ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>wiki page</ulink> | ||
297 | referenced earlier covers how to | ||
298 | set up the <filename>meta-intel</filename> Git | ||
299 | repository.</para></listitem> | ||
300 | </itemizedlist></para></listitem> | ||
301 | <listitem><para><emphasis>Eclipse Yocto Plug-in:</emphasis> If you are developing | ||
302 | applications using the Eclipse Integrated Development Environment (IDE), | ||
303 | you will need this plug-in. | ||
304 | See the | ||
305 | "<link linkend='setting-up-the-eclipse-ide'>Setting up the Eclipse IDE</link>" | ||
306 | section for more information.</para></listitem> | ||
307 | </itemizedlist> | ||
308 | </para> | ||
309 | </section> | ||
310 | |||
311 | <section id='building-images'> | ||
312 | <title>Building Images</title> | ||
313 | |||
314 | <para> | ||
315 | The build process creates an entire Linux distribution, including the toolchain, from source. | ||
316 | For more information on this topic, see the | ||
317 | "<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" | ||
318 | section in the Yocto Project Quick Start. | ||
319 | </para> | ||
320 | |||
321 | <para> | ||
322 | The build process is as follows: | ||
323 | <orderedlist> | ||
324 | <listitem><para>Make sure you have set up the Source Directory described in the | ||
325 | previous section.</para></listitem> | ||
326 | <listitem><para>Initialize the build environment by sourcing a build environment | ||
327 | script.</para></listitem> | ||
328 | <listitem><para>Optionally ensure the <filename>conf/local.conf</filename> configuration file, | ||
329 | which is found in the | ||
330 | <link linkend='build-directory'>Build Directory</link>, | ||
331 | is set up how you want it. | ||
332 | This file defines many aspects of the build environment including | ||
333 | the target machine architecture through the | ||
334 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'>MACHINE</ulink></filename> variable, | ||
335 | the development machine's processor use through the | ||
336 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</ulink></filename> and | ||
337 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE'>PARALLEL_MAKE</ulink></filename> variables, and | ||
338 | a centralized tarball download directory through the | ||
339 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'>DL_DIR</ulink></filename> variable.</para></listitem> | ||
340 | <listitem><para>Build the image using the <filename>bitbake</filename> command. | ||
341 | If you want information on BitBake, see the user manual included in the | ||
342 | <filename>bitbake/doc/manual</filename> directory of the | ||
343 | <link linkend='source-directory'>Source Directory</link>.</para></listitem> | ||
344 | <listitem><para>Run the image either on the actual hardware or using the QEMU | ||
345 | emulator.</para></listitem> | ||
346 | </orderedlist> | ||
347 | </para> | ||
348 | </section> | ||
349 | |||
350 | <section id='using-pre-built-binaries-and-qemu'> | ||
351 | <title>Using Pre-Built Binaries and QEMU</title> | ||
352 | |||
353 | <para> | ||
354 | Another option you have to get started is to use pre-built binaries. | ||
355 | The Yocto Project provides many types of binaries with each release. | ||
356 | See the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" | ||
357 | chapter in the Yocto Project Reference Manual | ||
358 | for descriptions of the types of binaries that ship with a Yocto Project | ||
359 | release. | ||
360 | </para> | ||
361 | |||
362 | <para> | ||
363 | Using a pre-built binary is ideal for developing software applications to run on your | ||
364 | target hardware. | ||
365 | To do this, you need to be able to access the appropriate cross-toolchain tarball for | ||
366 | the architecture on which you are developing. | ||
367 | If you are using an SDK type image, the image ships with the complete toolchain native to | ||
368 | the architecture. | ||
369 | If you are not using an SDK type image, you need to separately download and | ||
370 | install the stand-alone Yocto Project cross-toolchain tarball. | ||
371 | </para> | ||
372 | |||
373 | <para> | ||
374 | Regardless of the type of image you are using, you need to download the pre-built kernel | ||
375 | that you will boot in the QEMU emulator and then download and extract the target root | ||
376 | filesystem for your target machine’s architecture. | ||
377 | You can get architecture-specific binaries and file systems from | ||
378 | <ulink url='&YOCTO_MACHINES_DL_URL;'>machines</ulink>. | ||
379 | You can get installation scripts for stand-alone toolchains from | ||
380 | <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'>toolchains</ulink>. | ||
381 | Once you have all your files, you set up the environment to emulate the hardware | ||
382 | by sourcing an environment setup script. | ||
383 | Finally, you start the QEMU emulator. | ||
384 | You can find details on all these steps in the | ||
385 | "<ulink url='&YOCTO_DOCS_QS_URL;#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>" | ||
386 | section of the Yocto Project Quick Start. | ||
387 | </para> | ||
388 | |||
389 | <para> | ||
390 | Using QEMU to emulate your hardware can result in speed issues | ||
391 | depending on the target and host architecture mix. | ||
392 | For example, using the <filename>qemux86</filename> image in the emulator | ||
393 | on an Intel-based 32-bit (x86) host machine is fast because the target and | ||
394 | host architectures match. | ||
395 | On the other hand, using the <filename>qemuarm</filename> image on the same Intel-based | ||
396 | host can be slower. | ||
397 | But, you still achieve faithful emulation of ARM-specific issues. | ||
398 | </para> | ||
399 | |||
400 | <para> | ||
401 | To speed things up, the QEMU images support using <filename>distcc</filename> | ||
402 | to call a cross-compiler outside the emulated system. | ||
403 | If you used <filename>runqemu</filename> to start QEMU, and the | ||
404 | <filename>distccd</filename> application is present on the host system, any | ||
405 | BitBake cross-compiling toolchain available from the build system is automatically | ||
406 | used from within QEMU simply by calling <filename>distcc</filename>. | ||
407 | You can accomplish this by defining the cross-compiler variable | ||
408 | (e.g. <filename>export CC="distcc"</filename>). | ||
409 | Alternatively, if you are using a suitable SDK image or the appropriate | ||
410 | stand-alone toolchain is present, | ||
411 | the toolchain is also automatically used. | ||
412 | </para> | ||
413 | |||
414 | <note> | ||
415 | Several mechanisms exist that let you connect to the system running on the | ||
416 | QEMU emulator: | ||
417 | <itemizedlist> | ||
418 | <listitem><para>QEMU provides a framebuffer interface that makes standard | ||
419 | consoles available.</para></listitem> | ||
420 | <listitem><para>Generally, headless embedded devices have a serial port. | ||
421 | If so, you can configure the operating system of the running image | ||
422 | to use that port to run a console. | ||
423 | The connection uses standard IP networking.</para></listitem> | ||
424 | <listitem><para>SSH servers exist in some QEMU images. | ||
425 | The <filename>core-image-sato</filename> QEMU image has a Dropbear secure | ||
426 | shell (SSH) server that runs with the root password disabled. | ||
427 | The <filename>core-image-basic</filename> and <filename>core-image-lsb</filename> QEMU images | ||
428 | have OpenSSH instead of Dropbear. | ||
429 | Including these SSH servers allow you to use standard <filename>ssh</filename> and | ||
430 | <filename>scp</filename> commands. | ||
431 | The <filename>core-image-minimal</filename> QEMU image, however, contains no SSH | ||
432 | server.</para></listitem> | ||
433 | <listitem><para>You can use a provided, user-space NFS server to boot the QEMU session | ||
434 | using a local copy of the root filesystem on the host. | ||
435 | In order to make this connection, you must extract a root filesystem tarball by using the | ||
436 | <filename>runqemu-extract-sdk</filename> command. | ||
437 | After running the command, you must then point the <filename>runqemu</filename> | ||
438 | script to the extracted directory instead of a root filesystem image file.</para></listitem> | ||
439 | </itemizedlist> | ||
440 | </note> | ||
441 | </section> | ||
442 | </chapter> | ||
443 | <!-- | ||
444 | vim: expandtab tw=80 ts=4 | ||
445 | --> | ||