diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2013-04-03 08:04:31 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-04-04 14:13:45 +0100 |
commit | 9a98f403bd4f6fac7f88e43c820519dc9fc644b2 (patch) | |
tree | bac9c7daec5f17cb941928ddd709a9826e0a6a80 /documentation/dev-manual/dev-manual-common-tasks.xml | |
parent | c683dfb38fe3ba3110ada588bfc21c275324b5f7 (diff) | |
download | poky-9a98f403bd4f6fac7f88e43c820519dc9fc644b2.tar.gz |
ref-manual, dev-manual: Review comments applied to package repository
Changes are the review comments from Paul Eggleton regarding
setting up the optional package repository on the host that
can be used by Smart. These changes reflect the fact that
the task is not package-type dependent or host web server
dependent.
(From yocto-docs rev: 779989878bcc9501ddc4570519d93325442a8493)
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 | 165 |
1 files changed, 78 insertions, 87 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index e6fd4fb363..6ad61d633a 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
@@ -606,27 +606,27 @@ | |||
606 | <filename>EXTRA_IMAGE_FEATURES</filename></title> | 606 | <filename>EXTRA_IMAGE_FEATURES</filename></title> |
607 | 607 | ||
608 | <para> | 608 | <para> |
609 | Ultimately, you might want to add extra image features to the | 609 | Ultimately, you might want to add extra image features to the |
610 | set by using the | 610 | set by using the |
611 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename> | 611 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename> |
612 | variable. | 612 | variable. |
613 | To create these features, the best reference is | 613 | To create these features, the best reference is |
614 | <filename>meta/classes/core-image.bbclass</filename>, which | 614 | <filename>meta/classes/core-image.bbclass</filename>, which |
615 | shows how you can add features. | 615 | shows how you can add features. |
616 | In summary, the file looks at the contents of the | 616 | In summary, the file looks at the contents of the |
617 | <filename>IMAGE_FEATURES</filename> variable and then maps those | 617 | <filename>IMAGE_FEATURES</filename> variable and then maps those |
618 | contents into a set of tasks or packages. | 618 | contents into a set of tasks or packages. |
619 | Based on this information, the build system automatically | 619 | Based on this information, the build system automatically |
620 | generates the | 620 | generates the |
621 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'> IMAGE_INSTALL</ulink></filename> | 621 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'> IMAGE_INSTALL</ulink></filename> |
622 | variable. | 622 | variable. |
623 | You can add extra features by extending the class or creating a | 623 | You can add extra features by extending the class or creating a |
624 | custom class for use with specialized image | 624 | custom class for use with specialized image |
625 | <filename>.bb</filename> files. | 625 | <filename>.bb</filename> files. |
626 | You can also add more features by configuring the | 626 | You can also add more features by configuring the |
627 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename> | 627 | <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename> |
628 | variable in the <filename>local.conf</filename> file found in | 628 | variable in the <filename>local.conf</filename> file found in |
629 | the <filename>local.conf</filename> file, which is located in | 629 | the <filename>local.conf</filename> file, which is located in |
630 | the <link linkend='build-directory'>Build Directory</link>. | 630 | the <link linkend='build-directory'>Build Directory</link>. |
631 | </para> | 631 | </para> |
632 | 632 | ||
@@ -634,25 +634,25 @@ | |||
634 | <title>Choosing the SSH Server</title> | 634 | <title>Choosing the SSH Server</title> |
635 | 635 | ||
636 | <para> | 636 | <para> |
637 | The Yocto Project ships with two SSH servers you can use | 637 | The Yocto Project ships with two SSH servers you can use |
638 | with your images: Dropbear and OpenSSH. | 638 | with your images: Dropbear and OpenSSH. |
639 | Dropbear is a minimal SSH server appropriate for | 639 | Dropbear is a minimal SSH server appropriate for |
640 | resource-constrained environments, while OpenSSH is a | 640 | resource-constrained environments, while OpenSSH is a |
641 | well-known standard SSH server implementation. | 641 | well-known standard SSH server implementation. |
642 | By default, the <filename>core-image-sato</filename> image | 642 | By default, the <filename>core-image-sato</filename> image |
643 | is configured to use Dropbear. | 643 | is configured to use Dropbear. |
644 | The <filename>core-image-basic</filename> and | 644 | The <filename>core-image-basic</filename> and |
645 | <filename>core-image-lsb</filename> images both | 645 | <filename>core-image-lsb</filename> images both |
646 | include OpenSSH. | 646 | include OpenSSH. |
647 | The <filename>core-image-minimal</filename> image does not | 647 | The <filename>core-image-minimal</filename> image does not |
648 | contain an SSH server. | 648 | contain an SSH server. |
649 | </para> | 649 | </para> |
650 | 650 | ||
651 | <para> | 651 | <para> |
652 | You can customize your image and change these defaults. | 652 | You can customize your image and change these defaults. |
653 | Edit <filename>IMAGE_FEATURES</filename> variable | 653 | Edit <filename>IMAGE_FEATURES</filename> variable |
654 | so that it configures the image you are working with to | 654 | so that it configures the image you are working with to |
655 | include <filename>ssh-server-dropbear</filename> or | 655 | include <filename>ssh-server-dropbear</filename> or |
656 | <filename>ssh-server-openssh</filename>. | 656 | <filename>ssh-server-openssh</filename>. |
657 | </para> | 657 | </para> |
658 | </section> | 658 | </section> |
@@ -661,24 +661,24 @@ | |||
661 | <title>Creating a Read-Only Root Filesystem</title> | 661 | <title>Creating a Read-Only Root Filesystem</title> |
662 | 662 | ||
663 | <para> | 663 | <para> |
664 | Another example of customizing your image could be setting | 664 | Another example of customizing your image could be setting |
665 | up a read-only filesystem. | 665 | up a read-only filesystem. |
666 | Suppose, for security reasons, you need to disable the | 666 | Suppose, for security reasons, you need to disable the |
667 | your target device's root filesystem's write permisions | 667 | your target device's root filesystem's write permisions |
668 | (i.e. you need a read-only root filesystem). | 668 | (i.e. you need a read-only root filesystem). |
669 | Or, perhaps you are running the device's operating system | 669 | Or, perhaps you are running the device's operating system |
670 | from a read-only storage device. | 670 | from a read-only storage device. |
671 | For either case, you can customize your image for | 671 | For either case, you can customize your image for |
672 | that behavior. | 672 | that behavior. |
673 | </para> | 673 | </para> |
674 | 674 | ||
675 | <para> | 675 | <para> |
676 | To create a read-only root filesystem, simply add the | 676 | To create a read-only root filesystem, simply add the |
677 | "read-only-rootfs" feature to your image. | 677 | "read-only-rootfs" feature to your image. |
678 | Using either of the following statements in your | 678 | Using either of the following statements in your |
679 | image recipe or from within the | 679 | image recipe or from within the |
680 | <filename>local.conf</filename> file found in the Build | 680 | <filename>local.conf</filename> file found in the Build |
681 | Directory causes the build system to create a | 681 | Directory causes the build system to create a |
682 | read-only root filesystem: | 682 | read-only root filesystem: |
683 | <literallayout class='monospaced'> | 683 | <literallayout class='monospaced'> |
684 | IMAGE_FEATURES = "read-only-rootfs" | 684 | IMAGE_FEATURES = "read-only-rootfs" |
@@ -2320,16 +2320,16 @@ | |||
2320 | <para> | 2320 | <para> |
2321 | It is easiest to have something to start with when creating | 2321 | It is easiest to have something to start with when creating |
2322 | your own distribution. | 2322 | your own distribution. |
2323 | You can use the Yocto Project out-of-the-box to create the | 2323 | You can use the Yocto Project out-of-the-box to create the |
2324 | <filename>poky-tiny</filename> distribution. | 2324 | <filename>poky-tiny</filename> distribution. |
2325 | Ulitmately, you will want to make changes in your own | 2325 | Ulitmately, you will want to make changes in your own |
2326 | distribution that are likely modeled after | 2326 | distribution that are likely modeled after |
2327 | <filename>poky-tiny</filename>. | 2327 | <filename>poky-tiny</filename>. |
2328 | <note> | 2328 | <note> |
2329 | To use <filename>poky-tiny</filename> in your build, | 2329 | To use <filename>poky-tiny</filename> in your build, |
2330 | set the <filename>DISTRO</filename> variable in your | 2330 | set the <filename>DISTRO</filename> variable in your |
2331 | <filename>local.conf</filename> file to "poky-tiny" | 2331 | <filename>local.conf</filename> file to "poky-tiny" |
2332 | as described in the | 2332 | as described in the |
2333 | "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" | 2333 | "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" |
2334 | section. | 2334 | section. |
2335 | </note> | 2335 | </note> |
@@ -2344,7 +2344,7 @@ | |||
2344 | Dynamic memory contains memory that is allocated at runtime, | 2344 | Dynamic memory contains memory that is allocated at runtime, |
2345 | stacks, hash tables, and so forth. | 2345 | stacks, hash tables, and so forth. |
2346 | Temporary memory is recovered after the boot process. | 2346 | Temporary memory is recovered after the boot process. |
2347 | This memory consists of memory used for decompressing | 2347 | This memory consists of memory used for decompressing |
2348 | the kernel and for the <filename>__init__</filename> | 2348 | the kernel and for the <filename>__init__</filename> |
2349 | functions. | 2349 | functions. |
2350 | </para> | 2350 | </para> |
@@ -2560,7 +2560,7 @@ | |||
2560 | <title>Look for Other Ways to Minimize Size</title> | 2560 | <title>Look for Other Ways to Minimize Size</title> |
2561 | 2561 | ||
2562 | <para> | 2562 | <para> |
2563 | Depending on your particular circumstances, other areas that you | 2563 | Depending on your particular circumstances, other areas that you |
2564 | can trim likely exist. | 2564 | can trim likely exist. |
2565 | The key to finding these areas is through tools and methods | 2565 | The key to finding these areas is through tools and methods |
2566 | described here combined with experimentation and iteration. | 2566 | described here combined with experimentation and iteration. |
@@ -2570,35 +2570,35 @@ | |||
2570 | In general, follow this process: | 2570 | In general, follow this process: |
2571 | <orderedlist> | 2571 | <orderedlist> |
2572 | <listitem><para>Remove <filename>eglibc</filename> | 2572 | <listitem><para>Remove <filename>eglibc</filename> |
2573 | features from | 2573 | features from |
2574 | <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink> | 2574 | <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink> |
2575 | that you think you don't need.</para></listitem> | 2575 | that you think you don't need.</para></listitem> |
2576 | <listitem><para>Build your distribution. | 2576 | <listitem><para>Build your distribution. |
2577 | </para></listitem> | 2577 | </para></listitem> |
2578 | <listitem><para>If the build fails due to missing | 2578 | <listitem><para>If the build fails due to missing |
2579 | symbols in a package, determine if you can | 2579 | symbols in a package, determine if you can |
2580 | reconfigure the package to not need those | 2580 | reconfigure the package to not need those |
2581 | features. | 2581 | features. |
2582 | For example, change the configuration to not | 2582 | For example, change the configuration to not |
2583 | support wide character support as is done for | 2583 | support wide character support as is done for |
2584 | <filename>ncurses</filename>. | 2584 | <filename>ncurses</filename>. |
2585 | Or, if support for those characters is needed, | 2585 | Or, if support for those characters is needed, |
2586 | determine what <filename>eglibc</filename> | 2586 | determine what <filename>eglibc</filename> |
2587 | features provide the support and restore the | 2587 | features provide the support and restore the |
2588 | configuration. | 2588 | configuration. |
2589 | </para></listitem> | 2589 | </para></listitem> |
2590 | <listitem><para>Rebuild and repeat the process. | 2590 | <listitem><para>Rebuild and repeat the process. |
2591 | </para></listitem> | 2591 | </para></listitem> |
2592 | </orderedlist></para></listitem> | 2592 | </orderedlist></para></listitem> |
2593 | <listitem><para><filename>busybox</filename>: | 2593 | <listitem><para><filename>busybox</filename>: |
2594 | For BusyBox, use a process similar as described for | 2594 | For BusyBox, use a process similar as described for |
2595 | <filename>eglibc</filename>. | 2595 | <filename>eglibc</filename>. |
2596 | A difference is you will need to boot the resulting | 2596 | A difference is you will need to boot the resulting |
2597 | system to see if you are able to do everything you | 2597 | system to see if you are able to do everything you |
2598 | expect from the running system. | 2598 | expect from the running system. |
2599 | You need to be sure to integrate configuration fragments | 2599 | You need to be sure to integrate configuration fragments |
2600 | into Busybox because BusyBox handles its own core | 2600 | into Busybox because BusyBox handles its own core |
2601 | features and then allows you to add configuration | 2601 | features and then allows you to add configuration |
2602 | fragments on top. | 2602 | fragments on top. |
2603 | </para></listitem> | 2603 | </para></listitem> |
2604 | </itemizedlist> | 2604 | </itemizedlist> |
@@ -3126,8 +3126,9 @@ | |||
3126 | <title>Setting Up Runtime Package Management</title> | 3126 | <title>Setting Up Runtime Package Management</title> |
3127 | 3127 | ||
3128 | <para> | 3128 | <para> |
3129 | It is possible to set up a repository that is a host-based | 3129 | For RPM, IPK, and DEB package formats, it is possible to set |
3130 | package feed from which you can install packages on the | 3130 | up a repository that is a host-based |
3131 | package feed from which you can install packages on the | ||
3131 | target system during runtime. | 3132 | target system during runtime. |
3132 | Doing so is optional and depends on the following: | 3133 | Doing so is optional and depends on the following: |
3133 | <itemizedlist> | 3134 | <itemizedlist> |
@@ -3135,14 +3136,14 @@ | |||
3135 | You take specific steps to set up the feed. | 3136 | You take specific steps to set up the feed. |
3136 | </para></listitem> | 3137 | </para></listitem> |
3137 | <listitem><para> | 3138 | <listitem><para> |
3138 | When you build your image, you select to use the | 3139 | When you build your image, you select to use the |
3139 | RPM package manager by setting the | 3140 | appropriate package manager by setting the |
3140 | <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink> | 3141 | <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink> |
3141 | variable. | 3142 | variable. |
3142 | </para></listitem> | 3143 | </para></listitem> |
3143 | <listitem><para> | 3144 | <listitem><para> |
3144 | You have Apache 2 installed and configured on the | 3145 | You have a supported web server, such as Apache 2, |
3145 | development host. | 3146 | installed and configured on the development host. |
3146 | </para></listitem> | 3147 | </para></listitem> |
3147 | <listitem><para> | 3148 | <listitem><para> |
3148 | You have <filename>createrepo</filename> installed on | 3149 | You have <filename>createrepo</filename> installed on |
@@ -3152,14 +3153,16 @@ | |||
3152 | </para> | 3153 | </para> |
3153 | 3154 | ||
3154 | <para> | 3155 | <para> |
3155 | Here are the steps to set up this optional package feed: | 3156 | Following are the steps to set up the optional repository. |
3157 | This examples assumes you are using RPM and the Apache 2 | ||
3158 | server: | ||
3156 | <orderedlist> | 3159 | <orderedlist> |
3157 | <listitem><para> | 3160 | <listitem><para> |
3158 | Add the directory to your Apache configuration, which | 3161 | Add the directory to your Apache configuration, which |
3159 | you can find at | 3162 | you can find at |
3160 | <filename>/etc/httpd/conf/httpd.conf</filename>. | 3163 | <filename>/etc/httpd/conf/httpd.conf</filename>. |
3161 | Use commands similar to these on the development system. | 3164 | Use commands similar to these on the development system. |
3162 | These example commands assume a top-level | 3165 | These example commands assume a top-level |
3163 | <link linkend='source-directory'>Source Directory</link> | 3166 | <link linkend='source-directory'>Source Directory</link> |
3164 | named <filename>poky</filename> in your home directory: | 3167 | named <filename>poky</filename> in your home directory: |
3165 | <literallayout class='monospaced'> | 3168 | <literallayout class='monospaced'> |
@@ -3169,7 +3172,7 @@ | |||
3169 | <Directory "~/poky/build/tmp/deploy/rpm"> | 3172 | <Directory "~/poky/build/tmp/deploy/rpm"> |
3170 | Options +Indexes | 3173 | Options +Indexes |
3171 | </Directory> | 3174 | </Directory> |
3172 | </VirtualHost> | 3175 | </VirtualHost> |
3173 | </literallayout> | 3176 | </literallayout> |
3174 | </para></listitem> | 3177 | </para></listitem> |
3175 | <listitem><para> | 3178 | <listitem><para> |
@@ -3177,35 +3180,23 @@ | |||
3177 | For all commands, be sure you have root privileges. | 3180 | For all commands, be sure you have root privileges. |
3178 | </para> | 3181 | </para> |
3179 | <para> | 3182 | <para> |
3180 | If your development system is using Fedora or | 3183 | If your development system is using Fedora or |
3181 | CentOS, use the following: | 3184 | CentOS, use the following: |
3182 | </para> | 3185 | <literallayout class='monospaced'> |
3183 | <note> | 3186 | service httpd reload |
3184 | <emphasis>Note to Self:</emphasis> Paul says that | 3187 | </literallayout> |
3185 | some of the distros (Fedora and CentOS in | 3188 | For Ubuntu, use the following: |
3186 | particular) might have different commands based | 3189 | <literallayout class='monospaced'> |
3187 | on the distro version. | ||
3188 | We need links for the reader to follow for the | ||
3189 | specifics. | ||
3190 | We don't want to have to document all this | ||
3191 | distro-specific stuff. | ||
3192 | </note> | ||
3193 | <para> | ||
3194 | <literallayout class='monospaced'> | ||
3195 | service httpd reload | ||
3196 | </literallayout> | ||
3197 | For Ubuntu, use the following: | ||
3198 | <literallayout class='monospaced'> | ||
3199 | /etc/init.d/apache2 reload | 3190 | /etc/init.d/apache2 reload |
3200 | </literallayout> | 3191 | </literallayout> |
3201 | For OpenSUSE, use the following: | 3192 | For OpenSUSE, use the following: |
3202 | <literallayout class='monospaced'> | 3193 | <literallayout class='monospaced'> |
3203 | /etc/init.d/apache2 reload | 3194 | /etc/init.d/apache2 reload |
3204 | </literallayout> | 3195 | </literallayout> |
3205 | </para></listitem> | 3196 | </para></listitem> |
3206 | <listitem><para> | 3197 | <listitem><para> |
3207 | Change your working directory to | 3198 | Change your working directory to |
3208 | <filename>tmp/deploy/rpm</filename> in the | 3199 | <filename>tmp/deploy/rpm</filename> in the |
3209 | <link linkend='build-directory'>Build Directory</link>. | 3200 | <link linkend='build-directory'>Build Directory</link>. |
3210 | </para></listitem> | 3201 | </para></listitem> |
3211 | <listitem><para> | 3202 | <listitem><para> |
@@ -3217,13 +3208,13 @@ | |||
3217 | </para> | 3208 | </para> |
3218 | <para> | 3209 | <para> |
3219 | <note> | 3210 | <note> |
3220 | If you're updating, add | 3211 | If you're updating, add |
3221 | <filename>‐‐update</filename> to save some time. | 3212 | <filename>‐‐update</filename> to save some time. |
3222 | </note> | 3213 | </note> |
3223 | </para></listitem> | 3214 | </para></listitem> |
3224 | <listitem><para> | 3215 | <listitem><para> |
3225 | If you are using Security-Enhanced Linux (SELinux), | 3216 | If you are using Security-Enhanced Linux (SELinux), |
3226 | you need to label the files as being accessible | 3217 | you need to label the files as being accessible |
3227 | through Apache. | 3218 | through Apache. |
3228 | Use the following command from the development host: | 3219 | Use the following command from the development host: |
3229 | <literallayout class='monospaced'> | 3220 | <literallayout class='monospaced'> |
@@ -3232,14 +3223,14 @@ | |||
3232 | </para></listitem> | 3223 | </para></listitem> |
3233 | <listitem><para> | 3224 | <listitem><para> |
3234 | On the target machine, add the repository to Smart. | 3225 | On the target machine, add the repository to Smart. |
3235 | For <filename>somealias</filename>, provide a local | 3226 | For <filename>somealias</filename>, provide a local |
3236 | alias for the repository: | 3227 | alias for the repository: |
3237 | <literallayout class='monospaced'> | 3228 | <literallayout class='monospaced'> |
3238 | smart channel ‐‐add <somealias> type=rpm-md baseurl=http://server.name/rpm | 3229 | smart channel ‐‐add <somealias> type=rpm-md baseurl=http://server.name/rpm |
3239 | </literallayout> | 3230 | </literallayout> |
3240 | </para></listitem> | 3231 | </para></listitem> |
3241 | <listitem><para> | 3232 | <listitem><para> |
3242 | Also from the target machine, fetch the repository | 3233 | Also from the target machine, fetch the repository |
3243 | information using this command: | 3234 | information using this command: |
3244 | <literallayout class='monospaced'> | 3235 | <literallayout class='monospaced'> |
3245 | smart update | 3236 | smart update |
@@ -3249,9 +3240,9 @@ | |||
3249 | </para> | 3240 | </para> |
3250 | 3241 | ||
3251 | <para> | 3242 | <para> |
3252 | After taking these steps and making sure that the other | 3243 | After taking these steps and making sure that the other |
3253 | requirements mentioned at the beginning of the section are met, | 3244 | requirements mentioned at the beginning of the section are met, |
3254 | reboot the target device to take advantage of runtime package | 3245 | reboot the target device to take advantage of runtime package |
3255 | installations. | 3246 | installations. |
3256 | </para> | 3247 | </para> |
3257 | </section> | 3248 | </section> |