diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 0f6c78b855..aa52d17025 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -2197,12 +2197,13 @@
Very small distributions have some significant advantages such
- as requiring less on-die memory (cheaper), better performance
- through efficient cache usage, lower power requirements due to less
- memory, faster boot times, and reduced development overhead.
+ as requiring less on-die or in-package memory (cheaper), better
+ performance through efficient cache usage, lower power requirements
+ due to less memory, faster boot times, and reduced development
+ overhead.
Some real-world examples where a very small distribution gives
you distinct advantages are digital cameras, medical devices,
- small headless systems, and partitioned flash.
+ and small headless systems.
@@ -2217,10 +2218,9 @@
The following list presents the overall steps you need to
- consider and perform to create very small systems that
- have a kernel and root filesystem under 4 Mbytes, boot to the
- shell in under two seconds, maintain ipv4
- functionality, and avoid an initial RAM disk:
+ consider and perform to create distributions with smaller
+ filesystems, faster boot times, maintain your critical
+ functionality, and avoid initial RAM disks:
Determine your goals and guiding
principles.
@@ -2254,7 +2254,7 @@
Do not create any difficult "hacks"
to achieve your goals.
- Leverage off the device-specific
+ Leverage the device-specific
options.Work in a separate layer so that you
keep changes isolated.
@@ -2290,11 +2290,10 @@
Memory consists of static, dynamic, and temporary memory.
Static memory is the TEXT (the code), DATA (initialized data
in the code), and BSS (uninitialized data) sections.
- Dynamic memory contains memory that is allocate at runtime,
+ Dynamic memory contains memory that is allocated at runtime,
stacks, hash tables, and so forth.
Temporary memory is decompressed from the expanded kernel
- after boot.
- Temporary memory also includes the __init__
+ after boot and also includes the __init__
functions.
@@ -2305,9 +2304,9 @@
the scripts directory:
ksize.py: Reports
- the size of the kernel files.
+ component sizes for the kernel files.dirsize.py: Reports
- the size of the root filesystem.
+ component sizes for root filesystem.
This next tool and command helps you organize configuration
fragments and view file dependencies in a human-readable form:
@@ -2332,12 +2331,12 @@
section of the Yocto Project Linux Kernel Development
Manual and the "Creating Configuration Fragments"
section, which is in this manual.
- bitbake -u depexp -g core-image-*:
+ bitbake -u depexp -g <bitbake_target>:
Using the BitBake command with these options brings up
a Dependency Explorer from which you can view file
dependencies.
Understanding these dependencies allows you to make
- sane decisions when cutting out various pieces of the
+ informed decisions when cutting out various pieces of the
kernel and root filesystem.
@@ -2357,7 +2356,7 @@
First, check out what is hogging your file system running the
- dirsize.sh script from your root directory:
+ dirsize.py script from your root directory:
$ cd <root-directory-of-image>
$ dirsize.py 100000 > dirsize-100k.log
@@ -2366,6 +2365,9 @@
You can apply a filter to the script to ignore files under
a certain size.
This example filters out anything below 100 Kbytes.
+ The sizes reported by the tool are uncompressed and thus,
+ will be smaller by a relatively constant factor in a
+ compressed root filesystem.
When you examine your log file, you can focus on areas of the
root filesystem that take up large amounts of memory.
@@ -2388,7 +2390,8 @@
result in minimal impact on the feature set.
For example, you might not need a VGA display.
Or, you might be able to get by with devtmpfs
- and mdev.
+ and mdev instead of
+ udev.
@@ -2402,10 +2405,14 @@
- Some other examples of where you can look to eliminate size
- from the root filesystem are using ext2
- rather than ext3, which requires a
- 1 Mbyte journal.
+ Finally, you should consider exactly what filesystem you need
+ to meet your needs while also reducing size.
+ For example, consider cramfs,
+ squashfs, ubifs,
+ ext2, or an initramfs
+ using initramfs.
+ Be aware that ext3 requires a 1 Mbyte
+ journal.
If you are okay with running read-only you don't need this
journal.
@@ -2446,6 +2453,9 @@
taken up with the built-in .o files for
drivers, networking, core kernel files, filesystem, sound,
and so forth.
+ The sizes reported by the tool are uncompressed and thus,
+ will be smaller by a relatively constant factor in a compressed
+ kernel image.
Look to reduce the areas that are large and taking up around
the "90% rule".