summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2013-04-01 09:18:34 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-04-04 14:13:44 +0100
commit184a6f0c8820707919373f4eb8648155526862fc (patch)
tree3abd5e3f8ed6df1157183c3bd482ee39df7f4488 /documentation/dev-manual
parente4f0cc178e4aa560c2ccfa2013c2cdf288a94486 (diff)
downloadpoky-184a6f0c8820707919373f4eb8648155526862fc.tar.gz
dev-manual: Applied review comments to building tiny section.
Fixes YOCTO #2568 These changes are based on Darren Hart's second review of this new section. (From yocto-docs rev: b61ef2b6cf96b45666e0f75753b76e0f875663b5) 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')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml87
1 files changed, 70 insertions, 17 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 544a14693a..5da9861c85 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -2209,8 +2209,8 @@
2209 <para> 2209 <para>
2210 This section presents information that shows you how you can 2210 This section presents information that shows you how you can
2211 trim your distribution to even smaller sizes than the 2211 trim your distribution to even smaller sizes than the
2212 8 Mbytes <filename>poky-tiny</filename> distribution that 2212 <filename>poky-tiny</filename> distribution, which is around
2213 can be built out-of-the-box using the Yocto Project. 2213 5 Mbytes, that can be built out-of-the-box using the Yocto Project.
2214 </para> 2214 </para>
2215 2215
2216 <section id='tiny-system-overview'> 2216 <section id='tiny-system-overview'>
@@ -2269,19 +2269,21 @@
2269 <title>Understand What Gives Your Image Size</title> 2269 <title>Understand What Gives Your Image Size</title>
2270 2270
2271 <para> 2271 <para>
2272 You will need to have an image from which you can 2272 It is easiest to have something to start with when creating
2273 work. 2273 your own distribution.
2274 The Yocto Project ships with the ability to create a 2274 You can use the Yocto Project out-of-the-box to create the
2275 <filename>poky-tiny</filename> distribution. 2275 <filename>poky-tiny</filename> distribution.
2276 This distribution consists of a small, sub-8 Mbyte kernel 2276 Ulitmately, you will want to make changes in your own
2277 that works with two shipped Board Support Packages (BSPs): 2277 distribution that are likely modeled after
2278 Fish River Island 2 and QEMU. 2278 <filename>poky-tiny</filename>.
2279 You can use this distribution as a starting point and trim 2279 <note>
2280 the size down from there. 2280 To use <filename>poky-tiny</filename> in your build,
2281 If you need to build out the <filename>poky-tiny</filename> 2281 set the <filename>DISTRO</filename> variable in your
2282 distribution, see the 2282 <filename>local.conf</filename> file to "poky-tiny"
2283 "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>" 2283 as described in the
2284 section for information. 2284 "<link linkend='creating-your-own-distribution'>Creating Your Own Distribution</link>"
2285 section.
2286 </note>
2285 </para> 2287 </para>
2286 2288
2287 <para> 2289 <para>
@@ -2292,8 +2294,9 @@
2292 in the code), and BSS (uninitialized data) sections. 2294 in the code), and BSS (uninitialized data) sections.
2293 Dynamic memory contains memory that is allocated at runtime, 2295 Dynamic memory contains memory that is allocated at runtime,
2294 stacks, hash tables, and so forth. 2296 stacks, hash tables, and so forth.
2295 Temporary memory is decompressed from the expanded kernel 2297 Temporary memory is recovered after the boot process.
2296 after boot and also includes the <filename>__init__</filename> 2298 This memory consists of memory used for decompressing
2299 the kernel and for the <filename>__init__</filename>
2297 functions. 2300 functions.
2298 </para> 2301 </para>
2299 2302
@@ -2304,7 +2307,8 @@
2304 the <filename>scripts</filename> directory: 2307 the <filename>scripts</filename> directory:
2305 <itemizedlist> 2308 <itemizedlist>
2306 <listitem><para><filename>ksize.py</filename>: Reports 2309 <listitem><para><filename>ksize.py</filename>: Reports
2307 component sizes for the kernel files.</para></listitem> 2310 component sizes for the kernel build objects.
2311 </para></listitem>
2308 <listitem><para><filename>dirsize.py</filename>: Reports 2312 <listitem><para><filename>dirsize.py</filename>: Reports
2309 component sizes for the root filesystem.</para></listitem> 2313 component sizes for the root filesystem.</para></listitem>
2310 </itemizedlist> 2314 </itemizedlist>
@@ -2503,6 +2507,55 @@
2503 </para> 2507 </para>
2504 </section> 2508 </section>
2505 2509
2510 <section id='look-for-other-ways-to-minimize-size'>
2511 <title>Look for Other Ways to Minimize Size</title>
2512
2513 <para>
2514 Depending on your particular circumstances, other areas that you
2515 can trim likely exist.
2516 The key to finding these areas is through tools and methods
2517 described here combined with experimentation and iteration.
2518 Here are a couple of areas to experiment with:
2519 <itemizedlist>
2520 <listitem><para><filename>eglibc</filename>:
2521 In general, follow this process:
2522 <orderedlist>
2523 <listitem><para>Remove <filename>eglibc</filename>
2524 features from
2525 <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink>
2526 that you think you don't need.</para></listitem>
2527 <listitem><para>Build your distribution.
2528 </para></listitem>
2529 <listitem><para>If the build fails due to missing
2530 symbols in a package, determine if you can
2531 reconfigure the package to not need those
2532 features.
2533 For example, change the configuration to not
2534 support wide character support as is done for
2535 <filename>ncurses</filename>.
2536 Or, if support for those characters is needed,
2537 determine what <filename>eglibc</filename>
2538 features provide the support and restore the
2539 configuration.
2540 </para></listitem>
2541 <listitem><para>Rebuild and repeat the process.
2542 </para></listitem>
2543 </orderedlist></para></listitem>
2544 <listitem><para><filename>busybox</filename>:
2545 For BusyBox, use a process similar as described for
2546 <filename>eglibc</filename>.
2547 A difference is you will need to boot the resulting
2548 system to see if you are able to do everything you
2549 expect from the running system.
2550 You need to be sure to integrate configuration fragments
2551 into Busybox because BusyBox handles its own core
2552 features and then allows you to add configuration
2553 fragments on top.
2554 </para></listitem>
2555 </itemizedlist>
2556 </para>
2557 </section>
2558
2506 <section id='iterate-on-the-process'> 2559 <section id='iterate-on-the-process'>
2507 <title>Iterate on the Process</title> 2560 <title>Iterate on the Process</title>
2508 2561