diff options
-rw-r--r-- | documentation/yocto-project-qs/yocto-project-qs.xml | 187 |
1 files changed, 133 insertions, 54 deletions
diff --git a/documentation/yocto-project-qs/yocto-project-qs.xml b/documentation/yocto-project-qs/yocto-project-qs.xml index c62ec58df1..2748a68005 100644 --- a/documentation/yocto-project-qs/yocto-project-qs.xml +++ b/documentation/yocto-project-qs/yocto-project-qs.xml | |||
@@ -160,14 +160,14 @@ | |||
160 | autoconf automake | 160 | autoconf automake |
161 | </literallayout> | 161 | </literallayout> |
162 | 162 | ||
163 | <para> | 163 | <note><para> |
164 | <emphasis>NOTE:</emphasis> Packages vary in number and name for other Linux distributions. | 164 | Packages vary in number and name for other Linux distributions. |
165 | The commands here should work. We are interested, though, to learn what works for you. | 165 | The commands here should work. We are interested, though, to learn what works for you. |
166 | You can find more information for package requirements on common Linux distributions | 166 | You can find more information for package requirements on common Linux distributions |
167 | at <ulink url="http://wiki.openembedded.net/index.php/OEandYourDistro"></ulink>. | 167 | at <ulink url="http://wiki.openembedded.net/index.php/OEandYourDistro"></ulink>. |
168 | However, you should be careful when using this information as the information applies | 168 | However, you should be careful when using this information as the information applies |
169 | to old Linux distributions that are known to not work with a current Poky install. | 169 | to old Linux distributions that are known to not work with a current Poky install. |
170 | </para> | 170 | </para></note> |
171 | </section> | 171 | </section> |
172 | 172 | ||
173 | <section id='releases'> | 173 | <section id='releases'> |
@@ -216,15 +216,16 @@ | |||
216 | </mediaobject> | 216 | </mediaobject> |
217 | 217 | ||
218 | <para> | 218 | <para> |
219 | Use the following commands from a shell on your Debian-based host to build your image. | 219 | Use the following commands to build your image. |
220 | The build creates an entire Linux system including the Toolchain from the source. | 220 | The build process creates an entire Linux distribution, including the toolchain, from source. |
221 | </para> | 221 | </para> |
222 | 222 | ||
223 | <para><emphasis>NOTE:</emphasis> The build process using Sato currently consumes | 223 | <note><para> |
224 | 50GB of disk space. | 224 | The build process using Sato currently consumes |
225 | To allow for variations in the build process and for future package expansion we | 225 | about 50GB of disk space. |
226 | recommend 100GB of free disk space. | 226 | To allow for variations in the build process and for future package expansion, we |
227 | </para> | 227 | recommend having at least 100GB of free disk space. |
228 | </para></note> | ||
228 | 229 | ||
229 | <para> | 230 | <para> |
230 | <literallayout class='monospaced'> | 231 | <literallayout class='monospaced'> |
@@ -235,52 +236,56 @@ | |||
235 | </para> | 236 | </para> |
236 | <itemizedlist> | 237 | <itemizedlist> |
237 | <listitem><para>The first two commands extract the Yocto Project files from the | 238 | <listitem><para>The first two commands extract the Yocto Project files from the |
238 | release area and place them into a subdirectory of your current directory | 239 | release tarball and place them into a subdirectory of your current directory.</para></listitem> |
239 | (<command>poky-4.0-build</command> in this example).</para></listitem> | 240 | <listitem><para>The <command>source</command> command creates the |
240 | <listitem><para>The <command>$ source</command> command creates the directory and places | 241 | <filename>poky-4.0-build</filename> directory and executes the <command>cd</command> |
241 | you there. | 242 | command to make <filename>poky-4.0-build</filename> the working directory. |
242 | The build directory contains all the object files used during the build. | 243 | The resulting build directory contains all the files created during the build. |
243 | The default build directory is <command>poky-4.0-build</command>. | 244 | By default the target architecture is qemux86. |
244 | Note that you can change the target architecture by editing the | 245 | To change this default, edit the value of the MACHINE variable in the |
245 | <command><build_directory>/conf/local.conf</command> file. | 246 | <filename>conf/local.conf</filename> file.</para></listitem> |
246 | By default the target architecture is qemux86.</para></listitem> | ||
247 | </itemizedlist> | 247 | </itemizedlist> |
248 | <para> | 248 | <para> |
249 | Now might be a good time to edit the <command>conf/local.conf</command> | 249 | Take some time to examine your <filename>conf/local.conf</filename> file. |
250 | file. | 250 | The defaults should work fine. |
251 | The defaults should all be fine. However, you might want to look at the variables | 251 | However, if you have a multi-core CPU you might want to set the variables |
252 | BB_NUMBER_THREADS and PARALLEL_MAKE. | 252 | BB_NUMBER_THREADS and PARALLEL_MAKE to the number of processor cores on your build machine. |
253 | By default, these variables are commented out. | 253 | By default, these variables are commented out. |
254 | </para> | 254 | </para> |
255 | <para> | 255 | <para> |
256 | Continue with the following command to build the OS image for the target, which is | 256 | Continue with the following command to build an OS image for the target, which is |
257 | poky-image-sato in this example. | 257 | <filename>poky-image-sato</filename> in this example. |
258 | <literallayout class='monospaced'> | 258 | <literallayout class='monospaced'> |
259 | $ bitbake poky-image-sato | 259 | $ bitbake poky-image-sato |
260 | </literallayout> | 260 | </literallayout> |
261 | <emphasis>NOTE:</emphasis> If you are running Fedora 14 or another distribution | 261 | <note><para> |
262 | with GNU make 3.82 you might have to run the following two | 262 | If you are running Fedora 14 or another distribution |
263 | <command>$bitbake</command> commands instead: | 263 | that ships with GNU make v3.82 you need to run the following two |
264 | <literallayout class='monospaced'> | 264 | <command>bitbake</command> commands instead: |
265 | <literallayout class='monospaced'> | ||
265 | $ bitbake make-native | 266 | $ bitbake make-native |
266 | $ bitbake poky-image-sato | 267 | $ bitbake poky-image-sato |
267 | </literallayout> | 268 | </literallayout> |
269 | </para></note> | ||
268 | The final command runs the image: | 270 | The final command runs the image: |
269 | <literallayout class='monospaced'> | 271 | <literallayout class='monospaced'> |
270 | $ poky-qemu qemux86 | 272 | $ poky-qemu qemux86 |
271 | </literallayout> | 273 | </literallayout> |
272 | The build process could take several hours the first time you run it. | 274 | <note><para> |
273 | Depending on the number of processors and cores, the amount or RAM, the speed of your | 275 | Depending on the number of processors and cores, the amount or RAM, the speed of your |
274 | internet connection and other factors. | 276 | Internet connection and other factors, the build process could take several hours the first |
275 | After the initial build, subsequent builds run much faster. | 277 | time you run it. |
278 | Subsequent builds run much faster since parts of the build are cached. | ||
279 | </para></note> | ||
276 | </para> | 280 | </para> |
277 | </section> | 281 | </section> |
278 | 282 | ||
279 | <section id='using-pre-built'> | 283 | <section id='using-pre-built'> |
280 | <title>Using Pre-Built Binaries and QEMU</title> | 284 | <title>Using Pre-Built Binaries and QEMU</title> |
281 | <para> | 285 | <para> |
282 | If hardware, libraries and services are stable you can use a pre-built binary of the image, kernel and toolchain and just run it on the target using the emulator QEMU. | 286 | If hardware, libraries and services are stable you can get started by using a pre-built binary |
283 | This situation is perfect for developing application software. | 287 | of the image, kernel and toolchain and run it using the emulator QEMU. |
288 | This scenario is useful for developing application software. | ||
284 | </para> | 289 | </para> |
285 | 290 | ||
286 | <para></para> | 291 | <para></para> |
@@ -303,25 +308,60 @@ | |||
303 | <itemizedlist> | 308 | <itemizedlist> |
304 | <listitem> | 309 | <listitem> |
305 | <para> | 310 | <para> |
306 | Install the standalone Yocto toolchain tarball. | 311 | Install the stand-alone Yocto toolchain tarball. |
307 | </para> | 312 | </para> |
308 | </listitem> | 313 | </listitem> |
309 | <listitem> | 314 | <listitem> |
310 | <para> | 315 | <para> |
311 | Download the pre-built kernel that will run on QEMU. | 316 | Download the pre-built kernel that will boot with QEMU. |
312 | You need to be sure to get the QEMU image that matches your target machine’s architecture (e.g. x86, ARM, etc.). | 317 | You need to be sure to get the QEMU image that matches your target machine’s |
318 | architecture (e.g. x86, ARM, etc.). | ||
313 | </para> | 319 | </para> |
314 | </listitem> | 320 | </listitem> |
315 | <listitem> | 321 | <listitem> |
316 | <para> | 322 | <para> |
317 | Download and decompress the file image system. | 323 | Download the filesystem image for your target machine's architecture. |
318 | </para> | 324 | </para> |
319 | </listitem> | 325 | </listitem> |
320 | </itemizedlist> | 326 | </itemizedlist> |
321 | 327 | ||
322 | <para> | 328 | <para> |
323 | You can download the pre-built toolchain, which includes the poky-qemu script and support files, from <ulink url='http://yoctoproject.org/downloads/yocto-0.9/toolchain/'></ulink>. These are available for i586 (32-bit) and x86_64 (64 bit) host machines, targeting each of the five supported target architectures. The tarballs are self contained and install into <filename>/opt/poky</filename>. | 329 | You can download the pre-built toolchain, which includes the poky-qemu script and |
324 | Use these commands to install the toolchain tarball (taking the 64 bit host, 32 bit i586 target as an example): | 330 | support files, from <ulink url='http://yoctoproject.org/downloads/yocto-0.9/toolchain/'></ulink>. |
331 | Toolchains are available for 32-bit and 64-bit development systems from the | ||
332 | <filename>i586</filename> and <filename>x86_64</filename> folders, respectively. | ||
333 | Each type of development system supports five target architectures. | ||
334 | The tarball files are named such that a string representing the host system appears | ||
335 | first in the filename and then is immediately followed by a string representing | ||
336 | the target architecture. | ||
337 | </para> | ||
338 | |||
339 | <literallayout class='monospaced'> | ||
340 | yocto-eglibc<<emphasis>host_system</emphasis>>-<<emphasis>arch</emphasis>>-toolchain-sdk-<<emphasis>release</emphasis>>.tar.bz2 | ||
341 | |||
342 | Where: | ||
343 | <<emphasis>host_system</emphasis>> is a string representing your development system: | ||
344 | i586 or x86_64. | ||
345 | |||
346 | <<emphasis>arch</emphasis>> is a string representing the target architecture: | ||
347 | i585, x86_64, powerpc, mips, or arm. | ||
348 | |||
349 | <<emphasis>release</emphasis>> is the version of Yocto Project. | ||
350 | </literallayout> | ||
351 | |||
352 | <para> | ||
353 | For example, the following toolchain tarball is for a 64-bit development | ||
354 | host system and a 32-bit target architecture: | ||
355 | </para> | ||
356 | |||
357 | <literallayout class='monospaced'> | ||
358 | yocto-eglibc-x86_64-i586-toolchain-sdk-0.9.tar.bz2 | ||
359 | </literallayout> | ||
360 | |||
361 | <para> | ||
362 | The toolchain tarballs are self-contained and should be installed into <filename>/opt/poky</filename>. | ||
363 | The following commands show how you install the toolchain tarball given a 64-bit development host system | ||
364 | and a 32-bit target architecture. | ||
325 | </para> | 365 | </para> |
326 | 366 | ||
327 | <para> | 367 | <para> |
@@ -332,44 +372,83 @@ | |||
332 | </para> | 372 | </para> |
333 | 373 | ||
334 | <para> | 374 | <para> |
335 | You can download the pre-built Linux kernel and the file image system suitable for | 375 | You can download the pre-built Linux kernel and the filesystem image suitable for |
336 | running in the emulator QEMU from | 376 | running in the emulator QEMU from |
337 | <ulink url='http://yoctoproject.org/downloads/yocto-0.9/qemu'></ulink>. | 377 | <ulink url='http://yoctoproject.org/downloads/yocto-0.9/qemu'></ulink>. |
338 | Be sure to use the kernel and file image system that matches the architecture you want | 378 | Be sure to use the kernel and filesystem image that matches the architecture you want |
339 | to simulate. | 379 | to simulate. |
340 | </para> | 380 | </para> |
341 | 381 | ||
342 | <para> | 382 | <para> |
343 | The kernel and file image system have the following forms, respectively: | 383 | Most kernel files have the following form: |
384 | </para> | ||
385 | |||
386 | <literallayout class='monospaced'> | ||
387 | *zImage*qemu<<emphasis>arch</emphasis>>*.bin | ||
388 | |||
389 | Where: | ||
390 | <<emphasis>arch</emphasis>> is a string representing the target architecture: | ||
391 | x86, x86-64, ppc, mips, or arm. | ||
392 | </literallayout> | ||
393 | |||
394 | <para> | ||
395 | The filesystem image has two forms. | ||
396 | One form is an <filename>ext3</filename> filesystem image. | ||
397 | The other form is a tarball of the filesystem and is booted using user-space NFS. | ||
398 | Here are the respective forms: | ||
344 | </para> | 399 | </para> |
345 | 400 | ||
346 | <literallayout class='monospaced'> | 401 | <literallayout class='monospaced'> |
347 | *zImage*qemu*.bin | 402 | yocto-image-<<emphasis>profile</emphasis>>-qemu<<emphasis>arch</emphasis>>.rootfs.ext3 |
348 | yocto-image-*-qemu*.ext3.bz2 | 403 | yocto-image-<<emphasis>profile</emphasis>>-qemu<<emphasis>arch</emphasis>>.rootfs.tar.bz2 |
404 | |||
405 | Where: | ||
406 | <<emphasis>profile</emphasis>> is the filesystem image's profile: | ||
407 | sdk, sato, minimal, or lsb. | ||
408 | |||
409 | <<emphasis>arch</emphasis>> is a string representing the target architecture: | ||
410 | x86, x86-64, ppc, mips, or arm. | ||
349 | </literallayout> | 411 | </literallayout> |
350 | 412 | ||
351 | <para> | 413 | <para> |
352 | You must decompress the file image system using the following command: | 414 | The following command form sets up the emulation environment. |
353 | </para> | 415 | </para> |
354 | 416 | ||
355 | <literallayout class='monospaced'> | 417 | <literallayout class='monospaced'> |
356 | $ bzip2 -d | 418 | $ source /opt/poky/environment-setup-<<emphasis>arch</emphasis>>-poky-linux |
419 | |||
420 | Where: | ||
421 | <<emphasis>arch</emphasis>> is a string representing the target architecture: | ||
422 | i586, x86-64, ppc, mips, or arm. | ||
357 | </literallayout> | 423 | </literallayout> |
358 | 424 | ||
359 | <para> | 425 | <para> |
360 | You can now start the emulator using these commands (assuming an 32 bit i586 target): | 426 | Finally, this command form invokes the QEMU emulator |
361 | </para> | 427 | </para> |
362 | 428 | ||
363 | <literallayout class='monospaced'> | 429 | <literallayout class='monospaced'> |
364 | $ source /opt/poky/environment-setup-i586-poky-linux | ||
365 | $ poky-qemu <<emphasis>qemuarch</emphasis>> <<emphasis>kernel</emphasis>> <<emphasis>image</emphasis>> <<emphasis>fstype</emphasis>> | 430 | $ poky-qemu <<emphasis>qemuarch</emphasis>> <<emphasis>kernel</emphasis>> <<emphasis>image</emphasis>> <<emphasis>fstype</emphasis>> |
431 | |||
432 | Where: | ||
433 | <<emphasis>qemuarch</emphasis>> is a string representing the target architecture: qemux86, qemux86-64, | ||
434 | qemuppc, qemumips, or qemuarm. | ||
435 | |||
436 | <<emphasis>kernel</emphasis>> is the architecture-specific kernel. | ||
437 | |||
438 | <<emphasis>image</emphasis>> is the .ext3 filesystem image. | ||
439 | |||
440 | <<emphasis>fstype</emphasis>> is the filesystem type. | ||
366 | </literallayout> | 441 | </literallayout> |
442 | |||
367 | <para> | 443 | <para> |
368 | For example: | 444 | Continuing with the example, the following two commands setup the emulation |
445 | environment and launch QEMu. | ||
446 | The kernel and filesystem are for a 32-bit target architecture. | ||
369 | </para> | 447 | </para> |
448 | |||
370 | <literallayout class='monospaced'> | 449 | <literallayout class='monospaced'> |
371 | $ poky-qemu qemuppc zImage-2.6.34-qemuppc-0.9 \ | 450 | $ source /opt/poky/environment-setup-i586-poky-linux |
372 | yocto-image-minimal-qemuppc-0.9.rootfs.ext3 ext3 | 451 | $ poky-qemu qemui586 zImage-2.6.34-qemux86-0.9 yocto-image-sdk-qemux86-0.9.rootfs.ext3 ext3 |
373 | </literallayout> | 452 | </literallayout> |
374 | 453 | ||
375 | </section> | 454 | </section> |