diff options
| -rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 726 |
1 files changed, 726 insertions, 0 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 6aabdf4877..c4c3d9fc3e 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
| @@ -3348,6 +3348,732 @@ | |||
| 3348 | </section> | 3348 | </section> |
| 3349 | </section> | 3349 | </section> |
| 3350 | 3350 | ||
| 3351 | <section id='creating-partitioned-images'> | ||
| 3352 | <title>Creating Partitioned Images</title> | ||
| 3353 | |||
| 3354 | <para> | ||
| 3355 | Creating an image for a particular hardware target using the | ||
| 3356 | OpenEmbedded build system does not necessarily mean you can boot | ||
| 3357 | that image as is on your device. | ||
| 3358 | Physical devices accept and boot images in various ways depending | ||
| 3359 | on the specifics of the device. | ||
| 3360 | Usually, information about the hardware can tell you what image | ||
| 3361 | format the device requires. | ||
| 3362 | Should your device require multiple partitions on an SD card, flash, | ||
| 3363 | or an HDD, you can use the OpenEmbedded Image Creator | ||
| 3364 | to create the properly partitioned image. | ||
| 3365 | </para> | ||
| 3366 | |||
| 3367 | <para> | ||
| 3368 | The <filename>wic</filename> command generates partitioned images | ||
| 3369 | from existing OpenEmbedded build artifacts. | ||
| 3370 | Image generation is driven by partitioning commands contained | ||
| 3371 | in an Openembedded kickstart file (<filename>.wks</filename>) | ||
| 3372 | specified either directly on the command-line or as one of a | ||
| 3373 | selection of canned <filename>.wks</filename> files as shown | ||
| 3374 | with the <filename>wic list images</filename> command in the | ||
| 3375 | "<link linkend='using-a-provided-kickstart_file'>Using a Provided Kickstart File</link>" | ||
| 3376 | section. | ||
| 3377 | When applied to a given set of build artifacts, the result is an | ||
| 3378 | image or set of images that can be directly written onto media and | ||
| 3379 | used on a particular system. | ||
| 3380 | </para> | ||
| 3381 | |||
| 3382 | <para> | ||
| 3383 | This section provides some background information on | ||
| 3384 | <filename>wic</filename>, describes what you need to have in | ||
| 3385 | place to run the tool, provides instruction on how to use | ||
| 3386 | <filename>wic</filename>, and provides several examples. | ||
| 3387 | </para> | ||
| 3388 | |||
| 3389 | <section id='wic-background'> | ||
| 3390 | <title>Background</title> | ||
| 3391 | |||
| 3392 | <para> | ||
| 3393 | This section provides some background on the | ||
| 3394 | <filename>wic</filename> utility. | ||
| 3395 | While none of this information is required to use | ||
| 3396 | <filename>wic</filename>, you might find it interesting. | ||
| 3397 | <itemizedlist> | ||
| 3398 | <listitem><para> | ||
| 3399 | The name "wic" is derived from OpenEmbedded | ||
| 3400 | Image Creator (oeic). | ||
| 3401 | The "oe" diphthong in "oeic" was promoted to the | ||
| 3402 | letter "w", because "oeic" is both difficult to remember and | ||
| 3403 | pronounce.</para></listitem> | ||
| 3404 | <listitem><para> | ||
| 3405 | <filename>wic</filename> is loosely based on the | ||
| 3406 | Meego Image Creator (<filename>mic</filename>) | ||
| 3407 | framework. | ||
| 3408 | The <filename>wic</filename> implementation has been | ||
| 3409 | heavily modified to make direct use of OpenEmbedded | ||
| 3410 | build artifacts instead of package installation and | ||
| 3411 | configuration, which are already incorporated within | ||
| 3412 | the OpenEmbedded artifacts.</para></listitem> | ||
| 3413 | <listitem><para> | ||
| 3414 | <filename>wic</filename> is a completely independent | ||
| 3415 | standalone utility that initially provides | ||
| 3416 | easier-to-use and more flexible replacements for a | ||
| 3417 | couple bits of existing functionality in OE Core's | ||
| 3418 | <filename>directdisk.bbclass</filename> and | ||
| 3419 | <filename>mkefidisk.sh</filename> script. | ||
| 3420 | The replaced scripts are implemented by a | ||
| 3421 | general-purpose partitioning language based on Red Hat | ||
| 3422 | kickstart syntax. | ||
| 3423 | Underlying code for <filename>wic</filename> succeeded | ||
| 3424 | from several projects over time.</para></listitem> | ||
| 3425 | </itemizedlist> | ||
| 3426 | </para> | ||
| 3427 | </section> | ||
| 3428 | |||
| 3429 | <section id='wic-requirements'> | ||
| 3430 | <title>Requirements</title> | ||
| 3431 | |||
| 3432 | <para> | ||
| 3433 | In order to use the <filename>wic</filename> utility with the | ||
| 3434 | OpenEmbedded Build system, you need to meet the following | ||
| 3435 | requirements: | ||
| 3436 | <itemizedlist> | ||
| 3437 | <listitem><para>The Linux distribution on your | ||
| 3438 | development host must support the Yocto Project. | ||
| 3439 | See the | ||
| 3440 | "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>" | ||
| 3441 | section in the Yocto Project Reference Manual for this | ||
| 3442 | list of distributions.</para></listitem> | ||
| 3443 | <listitem><para> | ||
| 3444 | The standard system utilities, such as | ||
| 3445 | <filename>cp</filename>, must be installed on your | ||
| 3446 | development host system. | ||
| 3447 | </para></listitem> | ||
| 3448 | <listitem><para> | ||
| 3449 | The | ||
| 3450 | <ulink url='http://www.gnu.org/software/parted/'>GNU Parted</ulink> | ||
| 3451 | package must be installed on your development host | ||
| 3452 | system. | ||
| 3453 | </para></listitem> | ||
| 3454 | <listitem><para> | ||
| 3455 | Have the build artifacts already available. | ||
| 3456 | You must already have created an image using the | ||
| 3457 | Openembedded build system (e.g. | ||
| 3458 | <filename>core-image-minimal</filename>. | ||
| 3459 | It might seem redundant to generate an image in order | ||
| 3460 | to create an image using <filename>wic</filename>, | ||
| 3461 | but the artifacts are needed and they are generated | ||
| 3462 | with the build system.</para></listitem> | ||
| 3463 | <listitem><para> | ||
| 3464 | You must have sourced one of the build environment | ||
| 3465 | setup scripts (i.e. | ||
| 3466 | <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink> | ||
| 3467 | or | ||
| 3468 | <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>) | ||
| 3469 | found in the | ||
| 3470 | <link linkend='build-directory'>Build Directory</link>. | ||
| 3471 | </para></listitem> | ||
| 3472 | </itemizedlist> | ||
| 3473 | </para> | ||
| 3474 | </section> | ||
| 3475 | |||
| 3476 | <section id='wic-getting-help'> | ||
| 3477 | <title>Getting Help</title> | ||
| 3478 | |||
| 3479 | <para> | ||
| 3480 | You can get general help for the <filename>wic</filename> | ||
| 3481 | by entering the <filename>wic</filename> command by itself | ||
| 3482 | or by entering the command with a help argument as follows: | ||
| 3483 | <literallayout class='monospaced'> | ||
| 3484 | $ wic -h | ||
| 3485 | $ wic --help | ||
| 3486 | </literallayout> | ||
| 3487 | </para> | ||
| 3488 | |||
| 3489 | <para> | ||
| 3490 | Currently, <filename>wic</filename> supports two commands: | ||
| 3491 | <filename>create</filename> and <filename>list</filename>. | ||
| 3492 | You can get help for these commands as follows: | ||
| 3493 | <literallayout class='monospaced'> | ||
| 3494 | $ wic help <command> | ||
| 3495 | </literallayout> | ||
| 3496 | </para> | ||
| 3497 | |||
| 3498 | <para> | ||
| 3499 | You can find more out about the images | ||
| 3500 | <filename>wic</filename> creates using the provided | ||
| 3501 | kickstart files with the following form of the command: | ||
| 3502 | <literallayout class='monospaced'> | ||
| 3503 | $ wic list <image> help | ||
| 3504 | </literallayout> | ||
| 3505 | Where <filename><image></filename> is either | ||
| 3506 | <filename>directdisk</filename> or | ||
| 3507 | <filename>mkefidisk</filename>. | ||
| 3508 | </para> | ||
| 3509 | </section> | ||
| 3510 | |||
| 3511 | <section id='operational-modes'> | ||
| 3512 | <title>Operational Modes</title> | ||
| 3513 | |||
| 3514 | <para> | ||
| 3515 | You can run <filename>wic</filename> in two modes: Raw and | ||
| 3516 | Cooked: | ||
| 3517 | <itemizedlist> | ||
| 3518 | <listitem><para><emphasis>Raw Mode:</emphasis> | ||
| 3519 | You explicitly specify build artifacts through | ||
| 3520 | command-line arguments.</para></listitem> | ||
| 3521 | <listitem><para><emphasis>Cooked Mode:</emphasis> | ||
| 3522 | The current | ||
| 3523 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | ||
| 3524 | setting and image name are used to automatically locate | ||
| 3525 | and provide the build artifacts.</para></listitem> | ||
| 3526 | </itemizedlist> | ||
| 3527 | </para> | ||
| 3528 | |||
| 3529 | <para> | ||
| 3530 | Regardless of the mode you use, you need to have the build | ||
| 3531 | artifacts ready and available. | ||
| 3532 | Additionally, the environment must be set up using the | ||
| 3533 | <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink> | ||
| 3534 | or | ||
| 3535 | <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink> | ||
| 3536 | script found in the | ||
| 3537 | <link linkend='build-directory'>Build Directory</link>. | ||
| 3538 | </para> | ||
| 3539 | |||
| 3540 | <section id='raw-mode'> | ||
| 3541 | <title>Raw Mode</title> | ||
| 3542 | |||
| 3543 | <para> | ||
| 3544 | The general form of the 'wic' command in raw mode is: | ||
| 3545 | <literallayout class='monospaced'> | ||
| 3546 | $ wic create <replaceable>image_name</replaceable>.wks [<replaceable>options</replaceable>] [...] | ||
| 3547 | |||
| 3548 | Where: | ||
| 3549 | |||
| 3550 | <replaceable>image_name</replaceable>.wks | ||
| 3551 | An an OpenEmbedded kickstart file. You can provide | ||
| 3552 | your own custom file or use a file from a set of | ||
| 3553 | provided files as described by further options. | ||
| 3554 | |||
| 3555 | -o <replaceable>OUTDIR</replaceable>, --outdir=<replaceable>OUTDIR</replaceable> | ||
| 3556 | The name of a directory in which to create image. | ||
| 3557 | |||
| 3558 | -i <replaceable>PROPERTIES_FILE</replaceable>, --infile=<replaceable>PROPERTIES_FILE</replaceable> | ||
| 3559 | The name of a file containing the values for image | ||
| 3560 | properties as a JSON file. | ||
| 3561 | |||
| 3562 | -e <replaceable>IMAGE_NAME</replaceable>, --image-name=<replaceable>IMAGE_NAME</replaceable> | ||
| 3563 | The name of the image from which to use the artifacts | ||
| 3564 | (e.g. <filename>core-image-sato</filename>). | ||
| 3565 | |||
| 3566 | -r <replaceable>ROOTFS_DIR</replaceable>, --rootfs-dir=<replaceable>ROOTFS_DIR</replaceable> | ||
| 3567 | The path to the <filename>/rootfs</filename> directory to use as the | ||
| 3568 | <filename>.wks</filename> rootfs source. | ||
| 3569 | |||
| 3570 | -b <replaceable>BOOTIMG_DIR</replaceable>, --bootimg-dir=<replaceable>BOOTIMG_DIR</replaceable> | ||
| 3571 | The path to the directory containing the boot artifacts | ||
| 3572 | (e.g. <filename>/EFI</filename> or <filename>/syslinux</filename>) to use as the <filename>.wks</filename> bootimg | ||
| 3573 | source. | ||
| 3574 | |||
| 3575 | -k <replaceable>KERNEL_DIR</replaceable>, --kernel-dir=<replaceable>KERNEL_DIR</replaceable> | ||
| 3576 | The path to the directory containing the kernel to use | ||
| 3577 | in the <filename>.wks</filename> boot image. | ||
| 3578 | |||
| 3579 | -n <replaceable>NATIVE_SYSROOT</replaceable>, --native-sysroot=<replaceable>NATIVE_SYSROOT</replaceable> | ||
| 3580 | The path to the native sysroot containing the tools to use | ||
| 3581 | to build the image. | ||
| 3582 | |||
| 3583 | -p, --skip-build-check | ||
| 3584 | Skips the build check. | ||
| 3585 | |||
| 3586 | -D, --debug | ||
| 3587 | Output debug information. | ||
| 3588 | </literallayout> | ||
| 3589 | <note> | ||
| 3590 | You do not need root privileges to run | ||
| 3591 | <filename>wic</filename>. | ||
| 3592 | In fact, you should not run as root when using the | ||
| 3593 | utility. | ||
| 3594 | </note> | ||
| 3595 | </para> | ||
| 3596 | </section> | ||
| 3597 | |||
| 3598 | <section id='cooked-mode'> | ||
| 3599 | <title>Cooked Mode</title> | ||
| 3600 | |||
| 3601 | <para> | ||
| 3602 | The general form of the <filename>wic</filename> command | ||
| 3603 | using Cooked Mode is: | ||
| 3604 | <literallayout class='monospaced'> | ||
| 3605 | $ wic create <replaceable>kickstart_file</replaceable> -e <replaceable>image_name</replaceable> | ||
| 3606 | |||
| 3607 | Where: | ||
| 3608 | |||
| 3609 | <replaceable>kickstart_file</replaceable> | ||
| 3610 | An OpenEmbedded kickstart file. You can provide your own | ||
| 3611 | custom file or supplied file. | ||
| 3612 | |||
| 3613 | <replaceable>image_name</replaceable> | ||
| 3614 | Specifies the image built using the OpenEmbedded build | ||
| 3615 | system. | ||
| 3616 | </literallayout> | ||
| 3617 | This form is the simplest and most user-friendly, as it | ||
| 3618 | does not require specifying all individual parameters. | ||
| 3619 | All you need to provide is your own | ||
| 3620 | <filename>.wks</filename> file or one provided with the | ||
| 3621 | release. | ||
| 3622 | </para> | ||
| 3623 | </section> | ||
| 3624 | </section> | ||
| 3625 | |||
| 3626 | <section id='using-a-provided-kickstart_file'> | ||
| 3627 | <title>Using a Provided Kickstart File</title> | ||
| 3628 | |||
| 3629 | <para> | ||
| 3630 | If you do not want to create your own | ||
| 3631 | <filename>.wks</filename> file, you can use a provided | ||
| 3632 | file. | ||
| 3633 | Use the following command to list the available files: | ||
| 3634 | <literallayout class='monospaced'> | ||
| 3635 | $ wic list images | ||
| 3636 | directdisk Create a 'pcbios' direct disk image | ||
| 3637 | mkefidisk Create an EFI disk image | ||
| 3638 | </literallayout> | ||
| 3639 | When you use a provided file, you do not have to use the | ||
| 3640 | <filename>.wks</filename> extension. | ||
| 3641 | Here is an example in Raw Mode that uses the | ||
| 3642 | <filename>directdisk</filename> file: | ||
| 3643 | <literallayout class='monospaced'> | ||
| 3644 | $ wic create directdisk -r <replaceable>rootfs_dir</replaceable> -b <replaceable>bootimg_dir</replaceable> \ | ||
| 3645 | -k <replaceable>kernel_dir</replaceable> -n <replaceable>native_sysroot</replaceable> | ||
| 3646 | </literallayout> | ||
| 3647 | </para> | ||
| 3648 | |||
| 3649 | <para> | ||
| 3650 | Here are the actual partition language commands | ||
| 3651 | used in the <filename>mkefidisk.wks</filename> file to generate | ||
| 3652 | an image: | ||
| 3653 | <literallayout class='monospaced'> | ||
| 3654 | # short-description: Create an EFI disk image | ||
| 3655 | # long-description: Creates a partitioned EFI disk image that the user | ||
| 3656 | # can directly dd to boot media. | ||
| 3657 | |||
| 3658 | part /boot ‐‐source bootimg-efi ‐‐ondisk sda ‐‐fstype=efi ‐‐active | ||
| 3659 | |||
| 3660 | part / ‐‐source rootfs ‐‐ondisk sda ‐‐fstype=ext3 ‐‐label platform | ||
| 3661 | |||
| 3662 | part swap ‐‐ondisk sda ‐‐size 44 ‐‐label swap1 ‐‐fstype=swap | ||
| 3663 | |||
| 3664 | bootloader ‐‐timeout=10 ‐‐append="rootwait console=ttyPCH0,115200" | ||
| 3665 | </literallayout> | ||
| 3666 | </para> | ||
| 3667 | </section> | ||
| 3668 | |||
| 3669 | <section id='wic-usage-examples'> | ||
| 3670 | <title>Examples</title> | ||
| 3671 | |||
| 3672 | <para> | ||
| 3673 | This section provides several examples that show how to use | ||
| 3674 | the <filename>wic</filename> utility. | ||
| 3675 | All the examples assume the list of requirements in the | ||
| 3676 | "<link linkend='wic-requirements'>Requirements</link>" section | ||
| 3677 | have been met. | ||
| 3678 | The examples assume the previously generated image is | ||
| 3679 | <filename>core-image-minimal</filename>. | ||
| 3680 | </para> | ||
| 3681 | |||
| 3682 | <section id='generate-an-image-using-a-provided-kickstart-file'> | ||
| 3683 | <title>Generate an Image using a Provided Kickstart File</title> | ||
| 3684 | |||
| 3685 | <para> | ||
| 3686 | This example runs in Cooked Mode and uses the | ||
| 3687 | <filename>mkefidisk</filename> kickstart file: | ||
| 3688 | <literallayout class='monospaced'> | ||
| 3689 | $ wic create mkefidisk -e core-image-minimal | ||
| 3690 | Checking basic build environment... | ||
| 3691 | Done. | ||
| 3692 | |||
| 3693 | Creating image(s)... | ||
| 3694 | |||
| 3695 | Info: The new image(s) can be found here: | ||
| 3696 | /var/tmp/wic/build/mkefidisk-201310230946-sda.direct | ||
| 3697 | |||
| 3698 | The following build artifacts were used to create the image(s): | ||
| 3699 | ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/minnow-poky-linux/core-image-minimal/1.0-r0/rootfs | ||
| 3700 | BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/work/minnow-poky-linux/core-image-minimal/1.0-r0/core-image-minimal-1.0/hddimg | ||
| 3701 | KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/minnow/usr/src/kernel | ||
| 3702 | NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/x86_64-linux | ||
| 3703 | |||
| 3704 | |||
| 3705 | The image(s) were created using OE kickstart file: | ||
| 3706 | /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/mkefidisk.wks | ||
| 3707 | </literallayout> | ||
| 3708 | This example shows the easiest way to create an image | ||
| 3709 | by running in Cooked Mode and using the | ||
| 3710 | <filename>-e</filename> option with a provided kickstart | ||
| 3711 | file. | ||
| 3712 | All that is necessary is to specify the image used to | ||
| 3713 | generate the artifacts. | ||
| 3714 | Your <filename>local.conf</filename> needs to have the | ||
| 3715 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | ||
| 3716 | variable set to the machine you are using, which is | ||
| 3717 | "minnow" in this example. | ||
| 3718 | </para> | ||
| 3719 | |||
| 3720 | <para> | ||
| 3721 | The output specifies exactly which image was | ||
| 3722 | created as well as where it was created. | ||
| 3723 | The output also names the artifacts used and the exact | ||
| 3724 | <filename>.wks</filename> script that was used to generate | ||
| 3725 | the image. | ||
| 3726 | <note> | ||
| 3727 | You should always verify the details provided in the | ||
| 3728 | output to make sure that the image was indeed created | ||
| 3729 | exactly as expected. | ||
| 3730 | </note> | ||
| 3731 | </para> | ||
| 3732 | |||
| 3733 | <para> | ||
| 3734 | Continuing with the example, you can now directly | ||
| 3735 | <filename>dd</filename> the image to a USB stick, or | ||
| 3736 | whatever media for which you built your image, | ||
| 3737 | and boot the resulting media: | ||
| 3738 | <literallayout class='monospaced'> | ||
| 3739 | $ sudo dd if=/var/tmp/wic/build/mkefidisk-201310230946-sda.direct of=/dev/sdb | ||
| 3740 | [sudo] password for trz: | ||
| 3741 | 182274+0 records in | ||
| 3742 | 182274+0 records out | ||
| 3743 | 93324288 bytes (93 MB) copied, 14.4777 s, 6.4 MB/s | ||
| 3744 | [trz@empanada ~]$ sudo eject /dev/sdb | ||
| 3745 | </literallayout> | ||
| 3746 | </para> | ||
| 3747 | </section> | ||
| 3748 | |||
| 3749 | <section id='using-a-modified-kickstart-file'> | ||
| 3750 | <title>Using a Modified Kickstart File</title> | ||
| 3751 | |||
| 3752 | <para> | ||
| 3753 | Because <filename>wic</filename> image creation is driven | ||
| 3754 | by the kickstart file, it is easy to affect image creation | ||
| 3755 | by changing the parameters in the file. | ||
| 3756 | This next example demonstrates that through modification | ||
| 3757 | of the <filename>directdisk</filename> kickstart file. | ||
| 3758 | </para> | ||
| 3759 | |||
| 3760 | <para> | ||
| 3761 | As mentioned earlier, you can use the command | ||
| 3762 | <filename>wic list images</filename> to show the list | ||
| 3763 | of provided kickstart files. | ||
| 3764 | The directory in which these files reside is | ||
| 3765 | <filename>scripts/lib/image/canned-wks/</filename> | ||
| 3766 | located in the | ||
| 3767 | <link linkend='source-directory'>Source Directory</link>. | ||
| 3768 | Because the available files reside in this directory, you | ||
| 3769 | can create and add your own custom files to the directory. | ||
| 3770 | Subsequent use of the <filename>wic list images</filename> | ||
| 3771 | command would then include your kickstart files. | ||
| 3772 | </para> | ||
| 3773 | |||
| 3774 | <para> | ||
| 3775 | In this example, the existing | ||
| 3776 | <filename>directdisk</filename> file already does most | ||
| 3777 | of what is needed. | ||
| 3778 | However, for the hardware in this example, the image will | ||
| 3779 | need to boot from <filename>sdb</filename> instead of | ||
| 3780 | <filename>sda</filename>, which is what the | ||
| 3781 | <filename>directdisk</filename> kickstart file uses. | ||
| 3782 | </para> | ||
| 3783 | |||
| 3784 | <para> | ||
| 3785 | The example begins by making a copy of the | ||
| 3786 | <filename>directdisk.wks</filename> file in the | ||
| 3787 | <filename>scripts/lib/image/canned-wks</filename> | ||
| 3788 | directory and then changing the lines that specify the | ||
| 3789 | target disk from which to boot. | ||
| 3790 | <literallayout class='monospaced'> | ||
| 3791 | $ cp /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisk.wks \ | ||
| 3792 | /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisksdb.wks | ||
| 3793 | </literallayout> | ||
| 3794 | Next, the example modifies the | ||
| 3795 | <filename>directdisksdb.wks</filename> file and changes all | ||
| 3796 | instances of "<filename>--ondisk sda</filename>" | ||
| 3797 | to "<filename>--ondisk sdb</filename>". | ||
| 3798 | The example changes the following two lines and leaves the | ||
| 3799 | remaining lines untouched: | ||
| 3800 | <literallayout class='monospaced'> | ||
| 3801 | part /boot --source bootimg --ondisk sdb --fstype=msdos --label boot --active --align 1024 | ||
| 3802 | part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024 | ||
| 3803 | </literallayout> | ||
| 3804 | Once the lines are changed, the example generates the | ||
| 3805 | <filename>directdisksdb</filename> image. | ||
| 3806 | The command points the process at the | ||
| 3807 | <filename>core-image-minimal</filename> artifacts for the | ||
| 3808 | Next Unit of Computing (nuc) | ||
| 3809 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | ||
| 3810 | the <filename>local.conf</filename>. | ||
| 3811 | <literallayout class='monospaced'> | ||
| 3812 | $ wic create directdisksdb -e core-image-minimal | ||
| 3813 | Checking basic build environment... | ||
| 3814 | Done. | ||
| 3815 | |||
| 3816 | Creating image(s)... | ||
| 3817 | |||
| 3818 | Info: The new image(s) can be found here: | ||
| 3819 | /var/tmp/wic/build/directdisksdb-201310231131-sdb.direct | ||
| 3820 | |||
| 3821 | The following build artifacts were used to create the image(s): | ||
| 3822 | ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/nuc-poky-linux/core-image-minimal/1.0-r0/rootfs | ||
| 3823 | BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/nuc/usr/share | ||
| 3824 | KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/nuc/usr/src/kernel | ||
| 3825 | NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/x86_64-linux | ||
| 3826 | |||
| 3827 | |||
| 3828 | The image(s) were created using OE kickstart file: | ||
| 3829 | /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisksdb.wks | ||
| 3830 | </literallayout> | ||
| 3831 | Continuing with the example, you can now directly | ||
| 3832 | <filename>dd</filename> the image to a USB stick, or | ||
| 3833 | whatever media for which you built your image, | ||
| 3834 | and boot the resulting media: | ||
| 3835 | <literallayout class='monospaced'> | ||
| 3836 | $ sudo dd if=/var/tmp/wic/build/directdisksdb-201310231131-sdb.direct of=/dev/sdb | ||
| 3837 | 86018+0 records in | ||
| 3838 | 86018+0 records out | ||
| 3839 | 44041216 bytes (44 MB) copied, 13.0734 s, 3.4 MB/s | ||
| 3840 | [trz@empanada tmp]$ sudo eject /dev/sdb | ||
| 3841 | </literallayout> | ||
| 3842 | </para> | ||
| 3843 | </section> | ||
| 3844 | |||
| 3845 | <section id='creating-an-image-based-on-core-image-minimal-and-crownbay-noemgd'> | ||
| 3846 | <title>Creating an Image Based on <filename>core-image-minimal</filename> and <filename>crownbay-noemgd</filename></title> | ||
| 3847 | |||
| 3848 | <para> | ||
| 3849 | This example creates an image based on | ||
| 3850 | <filename>core-image-minimal</filename> and a | ||
| 3851 | <filename>crownbay-noemgd</filename> | ||
| 3852 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | ||
| 3853 | that works right out of the box. | ||
| 3854 | <literallayout class='monospaced'> | ||
| 3855 | $ wic create directdisk -e core-image-minimal | ||
| 3856 | |||
| 3857 | Checking basic build environment... | ||
| 3858 | Done. | ||
| 3859 | |||
| 3860 | Creating image(s)... | ||
| 3861 | |||
| 3862 | Info: The new image(s) can be found here: | ||
| 3863 | /var/tmp/wic/build/directdisk-201309252350-sda.direct | ||
| 3864 | |||
| 3865 | The following build artifacts were used to create the image(s): | ||
| 3866 | |||
| 3867 | ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/crownbay_noemgd-poky-linux/core-image-minimal/1.0-r0/rootfs | ||
| 3868 | BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/share | ||
| 3869 | KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel | ||
| 3870 | NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel | ||
| 3871 | |||
| 3872 | The image(s) were created using OE kickstart file: | ||
| 3873 | /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisk.wks | ||
| 3874 | </literallayout> | ||
| 3875 | </para> | ||
| 3876 | </section> | ||
| 3877 | |||
| 3878 | <section id='using-a-modified-kickstart-file-and-running-in-raw-mode'> | ||
| 3879 | <title>Using a Modified Kickstart File and Running in Raw Mode</title> | ||
| 3880 | |||
| 3881 | <para> | ||
| 3882 | This next example manually specifies each build artifact | ||
| 3883 | (runs in Raw Mode) and uses a modified kickstart file. | ||
| 3884 | The example also uses the <filename>-o</filename> option | ||
| 3885 | to cause <filename>wic</filename> to create the output | ||
| 3886 | somewhere other than the default | ||
| 3887 | <filename>/var/tmp/wic</filename> directory: | ||
| 3888 | <literallayout class='monospaced'> | ||
| 3889 | $ wic create ~/test.wks -o /home/trz/testwic --rootfs-dir \ | ||
| 3890 | /home/trz/yocto/yocto-image/build/tmp/work/crownbay_noemgd-poky-linux/core-image-minimal/1.0-r0/rootfs \ | ||
| 3891 | --bootimg-dir /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/share \ | ||
| 3892 | --kernel-dir /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel \ | ||
| 3893 | --native-sysroot /home/trz/yocto/yocto-image/build/tmp/sysroots/x86_64-linux | ||
| 3894 | |||
| 3895 | Creating image(s)... | ||
| 3896 | |||
| 3897 | Info: The new image(s) can be found here: | ||
| 3898 | /home/trz/testwic/build/test-201309260032-sda.direct | ||
| 3899 | |||
| 3900 | The following build artifacts were used to create the image(s): | ||
| 3901 | |||
| 3902 | ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/crownbay_noemgd-poky-linux/core-image-minimal/1.0-r0/rootfs | ||
| 3903 | BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/share | ||
| 3904 | KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel | ||
| 3905 | NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel | ||
| 3906 | |||
| 3907 | The image(s) were created using OE kickstart file: | ||
| 3908 | /home/trz/test.wks | ||
| 3909 | </literallayout> | ||
| 3910 | For this example, | ||
| 3911 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | ||
| 3912 | did not have to be specified in the | ||
| 3913 | <filename>local.conf</filename> file since the artifact is | ||
| 3914 | manually specified. | ||
| 3915 | </para> | ||
| 3916 | </section> | ||
| 3917 | </section> | ||
| 3918 | |||
| 3919 | <section id='openembedded-kickstart-wks-reference'> | ||
| 3920 | <title>OpenEmbedded Kickstart (.wks) Reference</title> | ||
| 3921 | |||
| 3922 | <para> | ||
| 3923 | The current <filename>wic</filename> implementation supports | ||
| 3924 | only the basic kickstart partitioning commands: | ||
| 3925 | <filename>partition</filename> (or <filename>part</filename> | ||
| 3926 | for short) and <filename>bootloader</filename>. | ||
| 3927 | </para> | ||
| 3928 | |||
| 3929 | <para> | ||
| 3930 | Following is a listing of the commands, their syntax, and | ||
| 3931 | meanings. | ||
| 3932 | The commands are based on the Fedora kickstart documentation | ||
| 3933 | but with modifications to reflect <filename>wic</filename> | ||
| 3934 | capabilities. | ||
| 3935 | <literallayout class='monospaced'> | ||
| 3936 | http://fedoraproject.org/wiki/Anaconda/Kickstart#part_or_partition | ||
| 3937 | http://fedoraproject.org/wiki/Anaconda/Kickstart#bootloader | ||
| 3938 | </literallayout> | ||
| 3939 | </para> | ||
| 3940 | |||
| 3941 | <section id='command-part-or-partition'> | ||
| 3942 | <title>Command: part or partition</title> | ||
| 3943 | |||
| 3944 | <para> | ||
| 3945 | This command creates a partition on the system and uses the | ||
| 3946 | following syntax: | ||
| 3947 | <literallayout class='monospaced'> | ||
| 3948 | part <mntpoint> | ||
| 3949 | </literallayout> | ||
| 3950 | The <filename><mntpoint></filename> is where the | ||
| 3951 | partition will be mounted and must be of one of the | ||
| 3952 | following forms: | ||
| 3953 | <itemizedlist> | ||
| 3954 | <listitem><para><filename>/<path></filename>: | ||
| 3955 | For example, <filename>/</filename>, | ||
| 3956 | <filename>/usr</filename>, and | ||
| 3957 | <filename>/home</filename></para></listitem> | ||
| 3958 | <listitem><para><filename>swap</filename>: | ||
| 3959 | The partition will be used as swap space. | ||
| 3960 | </para></listitem> | ||
| 3961 | </itemizedlist> | ||
| 3962 | </para> | ||
| 3963 | |||
| 3964 | <para> | ||
| 3965 | Following are the supported options: | ||
| 3966 | <itemizedlist> | ||
| 3967 | <listitem><para><emphasis><filename>--size</filename>:</emphasis> | ||
| 3968 | The minimum partition size in MBytes. | ||
| 3969 | Specify an integer value such as 500. | ||
| 3970 | Do not append the number with "MB". | ||
| 3971 | You do not need this option if you use | ||
| 3972 | <filename>--source</filename>.</para></listitem> | ||
| 3973 | <listitem><para><emphasis><filename>--source</filename>:</emphasis> | ||
| 3974 | This option is a wic-specific option that can | ||
| 3975 | currently have one of two values, "bootimg" or | ||
| 3976 | "rootfs".</para> | ||
| 3977 | <para>If <filename>--source rootfs</filename> is | ||
| 3978 | used, it tells the <filename>wic</filename> command | ||
| 3979 | to create a partition as large as needed to fill | ||
| 3980 | with the contents of the root filesystem | ||
| 3981 | (specified by the <filename>-r</filename> | ||
| 3982 | <filename>wic</filename> option) and to fill it | ||
| 3983 | with the contents of <filename>/rootfs</filename>. | ||
| 3984 | </para> | ||
| 3985 | <para>If <filename>--source bootimg</filename> | ||
| 3986 | is used, it tells the <filename>wic</filename> | ||
| 3987 | command to create a partition as large as needed to | ||
| 3988 | fill with the contents of the boot partition | ||
| 3989 | (specified by the <filename>-b</filename> | ||
| 3990 | <filename>wic</filename> option). | ||
| 3991 | Exactly what those contents are depend on the value | ||
| 3992 | of the <filename>--fstype</filename> option for | ||
| 3993 | that partition. | ||
| 3994 | If <filename>--fstype=efi</filename> is specified, | ||
| 3995 | the boot artifacts contained in HDDDIR are used, | ||
| 3996 | and if <filename>--fstype=msdos</filename> is | ||
| 3997 | specified, the boot artifacts found in | ||
| 3998 | <filename>STAGING_DATADIR</filename> are used. | ||
| 3999 | </para></listitem> | ||
| 4000 | <listitem><para><emphasis><filename>--ondisk</filename> or <filename>--ondrive</filename>:</emphasis> | ||
| 4001 | Forces the partition to be created on a particular | ||
| 4002 | disk.</para></listitem> | ||
| 4003 | <listitem><para><emphasis><filename>--fstype</filename>:</emphasis> | ||
| 4004 | Sets the file system type for the partition. | ||
| 4005 | Valid values are: | ||
| 4006 | <itemizedlist> | ||
| 4007 | <listitem><para><filename>msdos</filename> | ||
| 4008 | </para></listitem> | ||
| 4009 | <listitem><para><filename>efi</filename> | ||
| 4010 | </para></listitem> | ||
| 4011 | <listitem><para><filename>ext4</filename> | ||
| 4012 | </para></listitem> | ||
| 4013 | <listitem><para><filename>ext3</filename> | ||
| 4014 | </para></listitem> | ||
| 4015 | <listitem><para><filename>ext2</filename> | ||
| 4016 | </para></listitem> | ||
| 4017 | <listitem><para><filename>btrfs</filename> | ||
| 4018 | </para></listitem> | ||
| 4019 | <listitem><para><filename>swap</filename> | ||
| 4020 | </para></listitem> | ||
| 4021 | </itemizedlist></para></listitem> | ||
| 4022 | <listitem><para><emphasis><filename>--label label</filename>:</emphasis> | ||
| 4023 | Specifies the label to give to the filesystem to | ||
| 4024 | be made on the partition. | ||
| 4025 | If the given label is already in use by another | ||
| 4026 | filesystem, a new label is created for the | ||
| 4027 | partition.</para></listitem> | ||
| 4028 | <listitem><para><emphasis><filename>--active</filename>:</emphasis> | ||
| 4029 | Marks the partition as active.</para></listitem> | ||
| 4030 | <listitem><para><emphasis><filename>--align (in KBytes)</filename>:</emphasis> | ||
| 4031 | This option is specific to the Meego Image | ||
| 4032 | Creator (mic) that says to start a partition on an | ||
| 4033 | x KBytes boundary.</para></listitem> | ||
| 4034 | </itemizedlist> | ||
| 4035 | </para> | ||
| 4036 | </section> | ||
| 4037 | |||
| 4038 | <section id='command-bootloader'> | ||
| 4039 | <title>Command: bootloader</title> | ||
| 4040 | |||
| 4041 | <para> | ||
| 4042 | This command specifies how the boot loader should be | ||
| 4043 | and supports the following options: | ||
| 4044 | <itemizedlist> | ||
| 4045 | <listitem><para><emphasis><filename>--timeout</filename>:</emphasis> | ||
| 4046 | Specifies the number of seconds before the | ||
| 4047 | bootloader times out and boots the default option. | ||
| 4048 | </para></listitem> | ||
| 4049 | <listitem><para><emphasis><filename>--append</filename>:</emphasis> | ||
| 4050 | Specifies kernel parameters. | ||
| 4051 | These will be added to the syslinux | ||
| 4052 | <filename>APPEND</filename> or | ||
| 4053 | <filename>grub</filename> kernel command line. | ||
| 4054 | </para> | ||
| 4055 | <para>The boot type is determined by the fstype of | ||
| 4056 | the <filename>/boot</filename> mountpoint. | ||
| 4057 | If the fstype is "msdos" the boot type is | ||
| 4058 | "pcbios", otherwise it is the fstype, which | ||
| 4059 | is currently "efi" (more to be added later). | ||
| 4060 | </para> | ||
| 4061 | <para>If the boot type is "efi", the image will | ||
| 4062 | use <filename>grub</filename> and has one | ||
| 4063 | menuentry: "boot".</para> | ||
| 4064 | <para>If the boot type is "pcbios", the image | ||
| 4065 | will use syslinux and has one menu label: "boot". | ||
| 4066 | </para> | ||
| 4067 | <para>Future updates will implement more options. | ||
| 4068 | If you use anything that is not specifically | ||
| 4069 | supported, results can be unpredictable. | ||
| 4070 | </para></listitem> | ||
| 4071 | </itemizedlist> | ||
| 4072 | </para> | ||
| 4073 | </section> | ||
| 4074 | </section> | ||
| 4075 | </section> | ||
| 4076 | |||
| 3351 | <section id='configuring-the-kernel'> | 4077 | <section id='configuring-the-kernel'> |
| 3352 | <title>Configuring the Kernel</title> | 4078 | <title>Configuring the Kernel</title> |
| 3353 | 4079 | ||
