diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2013-04-05 11:14:12 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-04-10 16:20:54 +0100 |
commit | 482c6a71208410ab12fc528694d57248b972adfc (patch) | |
tree | 51e22d2d76270ff6979db02b519687033f6a56fb /documentation/dev-manual/dev-manual-common-tasks.xml | |
parent | 4be429fea591b77de75daaa9fd037f1a23ef7057 (diff) | |
download | poky-482c6a71208410ab12fc528694d57248b972adfc.tar.gz |
dev-manual, ref-manual: Applied review comments for read-only-rootfs, etc.
1. Applied changes from Paul to the read-only-rootfs section.
2. Applied changes form Paul to the customizing images by using
IMAGE_FEATURES and EXTRA_IMAGE_FEATURES variables. This
was a simple rewrite of a sentence.
3. Updated the note in both the IMAGE_FEATURES and
EXTRA_IMAGE_FEATURES glossary entries to specify inside
of an image recipe (more specific).
(From yocto-docs rev: 762b9e4d3b45a9602284cf4dd1ac281dcbbed7f5)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual/dev-manual-common-tasks.xml')
-rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 112 |
1 files changed, 57 insertions, 55 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 1b57e60d05..2d13038f41 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
@@ -611,11 +611,11 @@ | |||
611 | <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></ulink> | 611 | <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></ulink> |
612 | and <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink> | 612 | and <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink> |
613 | variables. | 613 | variables. |
614 | Although both variables function nearly equivalent, best | 614 | Although the functions for both variables are nearly equivalent, |
615 | practices dictate using <filename>IMAGE_FEATURES</filename> | 615 | best practices dictate using <filename>IMAGE_FEATURES</filename> |
616 | from within a recipe and using | 616 | from within a recipe and using |
617 | <filename>EXTRA_IMAGE_FEATURES</filename> from within | 617 | <filename>EXTRA_IMAGE_FEATURES</filename> from within |
618 | your <filename>local.conf</filename>, which is found in the | 618 | your <filename>local.conf</filename> file, which is found in the |
619 | <link linkend='build-directory'>Build Directory</link>. | 619 | <link linkend='build-directory'>Build Directory</link>. |
620 | </para> | 620 | </para> |
621 | 621 | ||
@@ -1026,8 +1026,8 @@ | |||
1026 | <title>Post-Installation Scripts</title> | 1026 | <title>Post-Installation Scripts</title> |
1027 | 1027 | ||
1028 | <para> | 1028 | <para> |
1029 | To add a post-installation (postinstall) script to a package, | 1029 | To add a post-installation script to a package, add a |
1030 | add a <filename>pkg_postinst_PACKAGENAME() | 1030 | <filename>pkg_postinst_PACKAGENAME() |
1031 | </filename> function to the <filename>.bb</filename> file and use | 1031 | </filename> function to the <filename>.bb</filename> file and use |
1032 | <filename>PACKAGENAME</filename> as the name of the package you want to attach to the | 1032 | <filename>PACKAGENAME</filename> as the name of the package you want to attach to the |
1033 | <filename>postinst</filename> script. | 1033 | <filename>postinst</filename> script. |
@@ -3461,23 +3461,55 @@ | |||
3461 | <note> | 3461 | <note> |
3462 | Supporting a read-only root filesystem requires that the system and | 3462 | Supporting a read-only root filesystem requires that the system and |
3463 | applications do not try to write to the root filesystem. | 3463 | applications do not try to write to the root filesystem. |
3464 | If writes are attempted, they need to gracefully fail. | 3464 | You must configure all parts of the target system to write |
3465 | elsewhere, or gracefully fail in the event of failing to | ||
3466 | write to the root filesystem. | ||
3465 | </note> | 3467 | </note> |
3466 | 3468 | ||
3469 | <section id='creating-the-root-filesystem'> | ||
3470 | <title>Creating the Root Filesystem</title> | ||
3471 | |||
3472 | <para> | ||
3473 | To create the read-only root filesystem, simply add the | ||
3474 | <filename>read-only-rootfs</filename> feature to your image. | ||
3475 | Using either of the following statements in your | ||
3476 | image recipe or from within the | ||
3477 | <filename>local.conf</filename> file found in the | ||
3478 | <link linkend='build-directory'>Build Directory</link> | ||
3479 | causes the build system to create a read-only root filesystem: | ||
3480 | <literallayout class='monospaced'> | ||
3481 | IMAGE_FEATURES = "read-only-rootfs" | ||
3482 | </literallayout> | ||
3483 | or | ||
3484 | <literallayout class='monospaced'> | ||
3485 | EXTRA_IMAGE_FEATURES = "read-only-rootfs" | ||
3486 | </literallayout> | ||
3487 | </para> | ||
3488 | |||
3489 | <para> | ||
3490 | For more information on how to use these variables, see the | ||
3491 | "<link linkend='usingpoky-extend-customimage-imagefeatures'>Customizing Images Using Custom <filename>IMAGE_FEATURES</filename> and <filename>EXTRA_IMAGE_FEATURES</filename></link>" | ||
3492 | section. | ||
3493 | For information on the variables, see | ||
3494 | <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></ulink> | ||
3495 | and <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink>. | ||
3496 | </para> | ||
3497 | </section> | ||
3498 | |||
3467 | <section id='post-installation-scripts'> | 3499 | <section id='post-installation-scripts'> |
3468 | <title>Post-Installation Scripts</title> | 3500 | <title>Post-Installation Scripts</title> |
3469 | 3501 | ||
3470 | <para> | 3502 | <para> |
3471 | It is very important that you make sure all | 3503 | It is very important that you make sure all |
3472 | Post-Installation (postinstall) scripts | 3504 | post-Installation (<filename>pkg_postinst</filename>) scripts |
3473 | for packages that are installed into the image can be run | 3505 | for packages that are installed into the image can be run |
3474 | at the time when the root filesystem is created during the | 3506 | at the time when the root filesystem is created during the |
3475 | build on the host system. | 3507 | build on the host system. |
3476 | These scripts cannot attempt to run during first-boot on the | 3508 | These scripts cannot attempt to run during first-boot on the |
3477 | target device. | 3509 | target device. |
3478 | With the read-only root filesystem feature enabled, | 3510 | With the <filename>read-only-rootfs</filename> feature enabled, |
3479 | the build system checks during root filesystem creation to make | 3511 | the build system checks during root filesystem creation to make |
3480 | sure all postinstall scripts succeed. | 3512 | sure all post-installation scripts succeed. |
3481 | If any of these scripts still need to be run after the root | 3513 | If any of these scripts still need to be run after the root |
3482 | filesystem is created, the build immediately fails. | 3514 | filesystem is created, the build immediately fails. |
3483 | These checks during build time ensure that the build fails | 3515 | These checks during build time ensure that the build fails |
@@ -3486,22 +3518,24 @@ | |||
3486 | </para> | 3518 | </para> |
3487 | 3519 | ||
3488 | <para> | 3520 | <para> |
3489 | Most of the common postinstall scripts generated by the build | 3521 | Most of the common post-installation scripts generated by the |
3490 | system for the out-of-the-box Yocto Project are engineered | 3522 | build system for the out-of-the-box Yocto Project are engineered |
3491 | so that they can run during root filesystem creation | 3523 | so that they can run during root filesystem creation |
3492 | (e.g. postinstall scripts for caching fonts). | 3524 | (e.g. post-installation scripts for caching fonts). |
3493 | However, if you create and add custom scripts, you need | 3525 | However, if you create and add custom scripts, you need |
3494 | to be sure they can be run during file system creation. | 3526 | to be sure they can be run during file system creation. |
3495 | </para> | 3527 | </para> |
3496 | 3528 | ||
3497 | <para> | 3529 | <para> |
3498 | Here are some common problems that prevent postinstall | 3530 | Here are some common problems that prevent |
3499 | scripts from running during root filesystem creation: | 3531 | post-installation scripts from running during root filesystem |
3532 | creation: | ||
3500 | <itemizedlist> | 3533 | <itemizedlist> |
3501 | <listitem><para>Not using | 3534 | <listitem><para><emphasis>Not using |
3502 | <filename>$</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink> | 3535 | <filename>$</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink> |
3503 | in front of absolute paths. | 3536 | in front of absolute paths:</emphasis> |
3504 | The build system defines <filename>$D</filename>, and | 3537 | The build system defines <filename>$D</filename> |
3538 | at root filesystem creation time, and | ||
3505 | it is blank when run on the target device. | 3539 | it is blank when run on the target device. |
3506 | This implies two purposes for <filename>$D</filename>: | 3540 | This implies two purposes for <filename>$D</filename>: |
3507 | ensuring paths are valid in both the host and target | 3541 | ensuring paths are valid in both the host and target |
@@ -3509,11 +3543,11 @@ | |||
3509 | environment is being used as a method for taking | 3543 | environment is being used as a method for taking |
3510 | appropriate actions. | 3544 | appropriate actions. |
3511 | </para></listitem> | 3545 | </para></listitem> |
3512 | <listitem><para>Attempting to run processes that are | 3546 | <listitem><para><emphasis>Attempting to run processes that are |
3513 | specific to or dependent on the target | 3547 | specific to or dependent on the target |
3514 | architecture. | 3548 | architecture:</emphasis> |
3515 | You can work around these attempts by using native | 3549 | You can work around these attempts by using native |
3516 | tools to accomplish the same processes (tasks), or | 3550 | tools to accomplish the same tasks, or |
3517 | by alternatively running the processes under QEMU, | 3551 | by alternatively running the processes under QEMU, |
3518 | which has the <filename>qemu_run_binary</filename> | 3552 | which has the <filename>qemu_run_binary</filename> |
3519 | function. | 3553 | function. |
@@ -3522,8 +3556,6 @@ | |||
3522 | class in the | 3556 | class in the |
3523 | <link linkend='source-directory'>Source Directory</link>. | 3557 | <link linkend='source-directory'>Source Directory</link>. |
3524 | </para></listitem> | 3558 | </para></listitem> |
3525 | <listitem><para>Using hardware features specific to the machine. | ||
3526 | </para></listitem> | ||
3527 | </itemizedlist> | 3559 | </itemizedlist> |
3528 | </para> | 3560 | </para> |
3529 | </section> | 3561 | </section> |
@@ -3532,45 +3564,15 @@ | |||
3532 | <title>Areas With Write Access</title> | 3564 | <title>Areas With Write Access</title> |
3533 | 3565 | ||
3534 | <para> | 3566 | <para> |
3535 | With the read-only root filesystem feature enabled, any | 3567 | With the <filename>read-only-rootfs</filename> feature enabled, |
3536 | attempt by the target to write to the root filesystem at | 3568 | any attempt by the target to write to the root filesystem at |
3537 | runtime fails. | 3569 | runtime fails. |
3538 | Consequently, you must make sure that you configure processes | 3570 | Consequently, you must make sure that you configure processes |
3539 | and applications that attempt these types of writes do so | 3571 | and applications that attempt these types of writes do so |
3540 | to directories with write access (i.e. | 3572 | to directories with write access (e.g. |
3541 | <filename>/tmp</filename> or <filename>/var/run</filename>). | 3573 | <filename>/tmp</filename> or <filename>/var/run</filename>). |
3542 | </para> | 3574 | </para> |
3543 | </section> | 3575 | </section> |
3544 | |||
3545 | <section id='creating-the-root-filesystem'> | ||
3546 | <title>Creating the Root Filesystem</title> | ||
3547 | |||
3548 | <para> | ||
3549 | To create the read-only root filesystem, simply add the | ||
3550 | "read-only-rootfs" feature to your image. | ||
3551 | Using either of the following statements in your | ||
3552 | image recipe or from within the | ||
3553 | <filename>local.conf</filename> file found in the | ||
3554 | <link linkend='build-directory'>Build Directory</link> | ||
3555 | causes the build system to create a read-only root filesystem: | ||
3556 | <literallayout class='monospaced'> | ||
3557 | IMAGE_FEATURES = "read-only-rootfs" | ||
3558 | </literallayout> | ||
3559 | or | ||
3560 | <literallayout class='monospaced'> | ||
3561 | EXTRA_IMAGE_FEATURES = "read-only-rootfs" | ||
3562 | </literallayout> | ||
3563 | </para> | ||
3564 | |||
3565 | <para> | ||
3566 | For more information on how to use these variables, see the | ||
3567 | "<link linkend='usingpoky-extend-customimage-imagefeatures'>Customizing Images Using Custom <filename>IMAGE_FEATURES</filename> and <filename>EXTRA_IMAGE_FEATURES</filename></link>" | ||
3568 | section. | ||
3569 | For information on the variables, see | ||
3570 | <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></ulink> | ||
3571 | and <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'><filename>EXTRA_IMAGE_FEATURES</filename></ulink>. | ||
3572 | </para> | ||
3573 | </section> | ||
3574 | </section> | 3576 | </section> |
3575 | 3577 | ||
3576 | <section id="platdev-gdb-remotedebug"> | 3578 | <section id="platdev-gdb-remotedebug"> |