<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tbird20d</id>
	<title>Yocto Project - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tbird20d"/>
	<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/Special:Contributions/Tbird20d"/>
	<updated>2026-04-26T21:42:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8031</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8031"/>
		<updated>2012-11-14T22:51:43Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* exiting the system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/tmp/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead.  Here&#039;s the template:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here the actual full command I used:&lt;br /&gt;
&lt;br /&gt;
 $ tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel tmp/deploy/images/bzImage-qemux86.bin -initrd tmp/deploy/images/core-image-minimal-qemux86.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Some information about the running system ===&lt;br /&gt;
You can poke around, and see the status of various things.  &#039;ps&#039; shows only 22 processes running, with only 3 user-space (ie not kernel threads):&lt;br /&gt;
&lt;br /&gt;
 # ps | grep -v [[]&lt;br /&gt;
  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 root      2004 S    {init} /bin/sh /init&lt;br /&gt;
   38 root      2144 S    sh&lt;br /&gt;
   41 root      2144 R    ps&lt;br /&gt;
&lt;br /&gt;
So... busybox is really the only executable on the system, and it is providing /bin/sh.  /init is a shell script,&lt;br /&gt;
which will run /etc/rc.local, if one is present.  There&#039;s a sample in /etc/rc.local.sample that you can use as a&lt;br /&gt;
starting point to customize the init process.  If you turn on packages in yocto, there will be init scripts deposited&lt;br /&gt;
in /etc/init.d, which you can call from either /init or /etc/rc.local to invoke (none of that fancy sysV rc init scripts here!)&lt;br /&gt;
&lt;br /&gt;
I booted with mem=24M (that was about as small as I could go) and saw the following memory utilization:&lt;br /&gt;
 # free&lt;br /&gt;
             total         used         free       shared      buffers&lt;br /&gt;
 Mem:         19724         5944        13780            0            0&lt;br /&gt;
 -/+ buffers:               5944        13780&lt;br /&gt;
 Swap:            0            0            0&lt;br /&gt;
&lt;br /&gt;
The filesystem is a little over 3M in size:&lt;br /&gt;
 # du -sh /&lt;br /&gt;
 3.2M	/&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a sample of what the filesystem looks like (as of yocto-danny-8.0), with results sorted by size&lt;br /&gt;
and /sys, /proc and /dev omitted:&lt;br /&gt;
 # find / -type f -xdev | xargs ls -laSr&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.builtin.bin&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/network/nm-disabled-eth0&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/motd&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:14 /etc/ld.so.conf&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/default/usbd&lt;br /&gt;
 -rw-r--r--    1 root     root             6 Nov 14 22:05 /var/volatile/run/ifstate&lt;br /&gt;
 -rw-r--r--    1 root     root             8 Nov 14 00:45 /etc/hostname&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/version&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/timestamp&lt;br /&gt;
 -rw-r--r--    1 root     root            26 Nov 14 00:45 /etc/host.conf&lt;br /&gt;
 -rw-r--r--    1 root     root            38 Nov 14 00:45 /etc/filesystems&lt;br /&gt;
 -rw-r--r--    1 root     root            44 Nov 14 00:45 /etc/hosts&lt;br /&gt;
 -rw-r--r--    1 root     root            45 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias&lt;br /&gt;
 -rwxr-xr-x    1 root     root            49 Nov 14 00:22 /usr/share/udhcpc/default.script&lt;br /&gt;
 -rw-r--r--    1 root     root            49 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols&lt;br /&gt;
 -rw-r--r--    1 root     root            52 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.devname&lt;br /&gt;
 -rw-r--r--    1 root     root            72 Nov 14 00:45 /etc/issue.net&lt;br /&gt;
 -rw-r--r--    1 root     root            74 Nov 14 00:45 /etc/issue&lt;br /&gt;
 -rwxr-xr-x    1 root     root            93 Nov 13 20:19 /etc/default/devpts&lt;br /&gt;
 -rw-r--r--    1 root     root           109 Nov 14 00:45 /etc/shells&lt;br /&gt;
 -rw-r--r--    1 root     root           131 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.softdep&lt;br /&gt;
 -rw-r--r--    1 root     root           132 Nov 14 00:45 /etc/network/interfaces&lt;br /&gt;
 -rwxr-xr-x    1 root     root           152 Nov 14 00:45 /etc/skel/.profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           270 Nov 13 20:19 /etc/init.d/hostname.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           289 Nov 13 20:19 /etc/init.d/reboot&lt;br /&gt;
 -rwxr-xr-x    1 root     root           321 Nov 13 20:19 /etc/init.d/save-rtc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           410 Nov 14 00:45 /etc/skel/.bashrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root           438 Nov 13 20:19 /etc/init.d/sendsigs&lt;br /&gt;
 -rw-r--r--    1 root     root           446 Nov 14 21:23 /etc/group&lt;br /&gt;
 -rw-r--r--    1 root     root           465 Nov 14 00:45 /etc/nsswitch.conf&lt;br /&gt;
 -rwxr-xr-x    1 root     root           473 Nov 14 21:24 /init&lt;br /&gt;
 -rwxr-xr-x    1 root     root           492 Nov 13 20:19 /etc/init.d/banner.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           510 Nov 13 20:19 /etc/init.d/halt&lt;br /&gt;
 -rwxr-xr-x    1 root     root           516 Nov 13 20:19 /etc/init.d/umountfs&lt;br /&gt;
 -rwxr-xr-x    1 root     root           526 Nov 13 20:19 /etc/init.d/devpts.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           578 Nov 13 20:19 /etc/init.d/single&lt;br /&gt;
 -rwxr-xr-x    1 root     root           585 Nov 13 20:19 /etc/init.d/rmnologin.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           586 Nov 14 00:20 /usr/share/run-postinsts/run-postinsts.awk&lt;br /&gt;
 -rwxr-xr-x    1 root     root           609 Nov 14 00:20 /etc/init.d/run-postinsts&lt;br /&gt;
 -rwxr-xr-x    1 root     root           632 Nov 14 00:45 /etc/rc.local.sample&lt;br /&gt;
 -rw-r--r--    1 root     root           651 Nov 14 00:22 /etc/syslog-startup.conf.busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root           660 Nov 13 20:19 /etc/init.d/sysfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           704 Nov 14 00:45 /etc/fstab&lt;br /&gt;
 -rwxr-xr-x    1 root     root           711 Nov 13 20:19 /etc/init.d/umountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           719 Nov 14 21:23 /etc/passwd&lt;br /&gt;
 -rw-------    1 root     root           737 Nov 14 22:22 /.ash_history&lt;br /&gt;
 -rw-r--r--    1 root     root           783 Nov 14 21:24 /etc/ld.so.cache&lt;br /&gt;
 -rwxr-xr-x    1 root     root           809 Nov 14 00:45 /etc/network/if-pre-up.d/nfsroot&lt;br /&gt;
 -rw-------    1 root     root           836 Nov 14 21:24 /var/volatile/cache/ldconfig/aux-cache&lt;br /&gt;
 -rw-r--r--    1 root     root           847 Nov 14 00:45 /etc/profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           859 Nov 13 20:19 /etc/init.d/mountall.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           878 Nov 14 00:45 /etc/init.d/modutils.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           887 Nov 14 00:45 /etc/rpc&lt;br /&gt;
 -rw-r--r--    1 root     root          1123 Nov 13 20:19 /etc/init.d/functions.initscripts&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1349 Nov 13 20:19 /etc/init.d/urandom&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1540 Nov 13 20:19 /etc/init.d/mountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root          1633 Nov 14 00:45 /etc/inputrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1711 Nov 14 00:22 /etc/init.d/syslog.busybox&lt;br /&gt;
 -rw-r--r--    1 root     root          1740 Nov 13 20:19 /etc/default/volatiles/00_core&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1752 Nov 13 20:19 /etc/init.d/bootmisc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1909 Nov 14 00:45 /etc/init.d/networking&lt;br /&gt;
 -rw-r--r--    1 root     root          2146 Nov 14 00:22 /etc/busybox.links&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2514 Nov 14 00:22 /etc/init.d/hwclock.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2548 Nov 14 00:22 /etc/udhcpc.d/50default&lt;br /&gt;
 -rw-r--r--    1 root     root          2933 Nov 14 00:45 /etc/protocols&lt;br /&gt;
 -rwxr-xr-x    1 root     root          3229 Nov 13 20:19 /etc/init.d/checkroot.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4409 Nov 13 20:16 /usr/sbin/update-rc.d&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4524 Nov 14 00:45 /usr/bin/update-alternatives&lt;br /&gt;
 -rwxr-xr-x    1 root     root          5249 Nov 13 20:19 /etc/init.d/populate-volatile.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          6666 Nov 13 20:19 /etc/device_table&lt;br /&gt;
 -rwsr-xr-x    1 root     root          9544 Nov 14 00:14 /usr/lib/eglibc/pt_chown&lt;br /&gt;
 -rwxr-xr-x    1 root     root          9740 Nov 14 00:14 /lib/libutil-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         13828 Nov 14 00:14 /lib/libdl-2.16.so&lt;br /&gt;
 -rw-r--r--    1 root     root         19398 Nov 14 00:45 /etc/services&lt;br /&gt;
 -rwxr-xr-x    1 root     root         22020 Nov 14 00:14 /lib/libnss_dns-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         26064 Nov 14 00:14 /lib/libcrypt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         30624 Nov 14 00:14 /lib/librt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         34588 Nov 14 00:14 /lib/libnss_compat-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         46980 Nov 14 00:14 /lib/libnss_files-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         83716 Nov 14 00:14 /lib/libresolv-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         87860 Nov 14 00:14 /lib/libnsl-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         96128 Nov 14 00:14 /lib/libpthread-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        127228 Nov 14 00:14 /lib/ld-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        251328 Nov 14 00:14 /lib/libm-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        524924 Nov 14 00:14 /sbin/ldconfig&lt;br /&gt;
 -rwsr-xr-x    1 root     root        554820 Nov 14 00:22 /bin/busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root       1056128 Nov 14 00:14 /lib/libc-2.16.so&lt;br /&gt;
&lt;br /&gt;
busybox, ldconfig and libc (and other libc-related libs) make up about 95% of the system.&lt;br /&gt;
&lt;br /&gt;
If busybox were statically linked, and ldconfig and libc were omitted, I believe it would&lt;br /&gt;
reduce the size of the system substantially.&lt;br /&gt;
&lt;br /&gt;
=== exiting the system ===&lt;br /&gt;
There is no &#039;shutdown&#039; command, but you can use &#039;ctrl-a to execute a command to the qemu monitor, and &#039;ctrl-a b&#039; to issue a sysrq to the Linux kernel.&lt;br /&gt;
You can do a sysrq-B to do a reboot.  Do: ctrl-a h to see available commands, and ctrl-a x to exit qemu.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8030</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8030"/>
		<updated>2012-11-14T22:50:46Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Some information about the running system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/tmp/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead.  Here&#039;s the template:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here the actual full command I used:&lt;br /&gt;
&lt;br /&gt;
 $ tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel tmp/deploy/images/bzImage-qemux86.bin -initrd tmp/deploy/images/core-image-minimal-qemux86.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Some information about the running system ===&lt;br /&gt;
You can poke around, and see the status of various things.  &#039;ps&#039; shows only 22 processes running, with only 3 user-space (ie not kernel threads):&lt;br /&gt;
&lt;br /&gt;
 # ps | grep -v [[]&lt;br /&gt;
  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 root      2004 S    {init} /bin/sh /init&lt;br /&gt;
   38 root      2144 S    sh&lt;br /&gt;
   41 root      2144 R    ps&lt;br /&gt;
&lt;br /&gt;
So... busybox is really the only executable on the system, and it is providing /bin/sh.  /init is a shell script,&lt;br /&gt;
which will run /etc/rc.local, if one is present.  There&#039;s a sample in /etc/rc.local.sample that you can use as a&lt;br /&gt;
starting point to customize the init process.  If you turn on packages in yocto, there will be init scripts deposited&lt;br /&gt;
in /etc/init.d, which you can call from either /init or /etc/rc.local to invoke (none of that fancy sysV rc init scripts here!)&lt;br /&gt;
&lt;br /&gt;
I booted with mem=24M (that was about as small as I could go) and saw the following memory utilization:&lt;br /&gt;
 # free&lt;br /&gt;
             total         used         free       shared      buffers&lt;br /&gt;
 Mem:         19724         5944        13780            0            0&lt;br /&gt;
 -/+ buffers:               5944        13780&lt;br /&gt;
 Swap:            0            0            0&lt;br /&gt;
&lt;br /&gt;
The filesystem is a little over 3M in size:&lt;br /&gt;
 # du -sh /&lt;br /&gt;
 3.2M	/&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a sample of what the filesystem looks like (as of yocto-danny-8.0), with results sorted by size&lt;br /&gt;
and /sys, /proc and /dev omitted:&lt;br /&gt;
 # find / -type f -xdev | xargs ls -laSr&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.builtin.bin&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/network/nm-disabled-eth0&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/motd&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:14 /etc/ld.so.conf&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/default/usbd&lt;br /&gt;
 -rw-r--r--    1 root     root             6 Nov 14 22:05 /var/volatile/run/ifstate&lt;br /&gt;
 -rw-r--r--    1 root     root             8 Nov 14 00:45 /etc/hostname&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/version&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/timestamp&lt;br /&gt;
 -rw-r--r--    1 root     root            26 Nov 14 00:45 /etc/host.conf&lt;br /&gt;
 -rw-r--r--    1 root     root            38 Nov 14 00:45 /etc/filesystems&lt;br /&gt;
 -rw-r--r--    1 root     root            44 Nov 14 00:45 /etc/hosts&lt;br /&gt;
 -rw-r--r--    1 root     root            45 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias&lt;br /&gt;
 -rwxr-xr-x    1 root     root            49 Nov 14 00:22 /usr/share/udhcpc/default.script&lt;br /&gt;
 -rw-r--r--    1 root     root            49 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols&lt;br /&gt;
 -rw-r--r--    1 root     root            52 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.devname&lt;br /&gt;
 -rw-r--r--    1 root     root            72 Nov 14 00:45 /etc/issue.net&lt;br /&gt;
 -rw-r--r--    1 root     root            74 Nov 14 00:45 /etc/issue&lt;br /&gt;
 -rwxr-xr-x    1 root     root            93 Nov 13 20:19 /etc/default/devpts&lt;br /&gt;
 -rw-r--r--    1 root     root           109 Nov 14 00:45 /etc/shells&lt;br /&gt;
 -rw-r--r--    1 root     root           131 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.softdep&lt;br /&gt;
 -rw-r--r--    1 root     root           132 Nov 14 00:45 /etc/network/interfaces&lt;br /&gt;
 -rwxr-xr-x    1 root     root           152 Nov 14 00:45 /etc/skel/.profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           270 Nov 13 20:19 /etc/init.d/hostname.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           289 Nov 13 20:19 /etc/init.d/reboot&lt;br /&gt;
 -rwxr-xr-x    1 root     root           321 Nov 13 20:19 /etc/init.d/save-rtc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           410 Nov 14 00:45 /etc/skel/.bashrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root           438 Nov 13 20:19 /etc/init.d/sendsigs&lt;br /&gt;
 -rw-r--r--    1 root     root           446 Nov 14 21:23 /etc/group&lt;br /&gt;
 -rw-r--r--    1 root     root           465 Nov 14 00:45 /etc/nsswitch.conf&lt;br /&gt;
 -rwxr-xr-x    1 root     root           473 Nov 14 21:24 /init&lt;br /&gt;
 -rwxr-xr-x    1 root     root           492 Nov 13 20:19 /etc/init.d/banner.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           510 Nov 13 20:19 /etc/init.d/halt&lt;br /&gt;
 -rwxr-xr-x    1 root     root           516 Nov 13 20:19 /etc/init.d/umountfs&lt;br /&gt;
 -rwxr-xr-x    1 root     root           526 Nov 13 20:19 /etc/init.d/devpts.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           578 Nov 13 20:19 /etc/init.d/single&lt;br /&gt;
 -rwxr-xr-x    1 root     root           585 Nov 13 20:19 /etc/init.d/rmnologin.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           586 Nov 14 00:20 /usr/share/run-postinsts/run-postinsts.awk&lt;br /&gt;
 -rwxr-xr-x    1 root     root           609 Nov 14 00:20 /etc/init.d/run-postinsts&lt;br /&gt;
 -rwxr-xr-x    1 root     root           632 Nov 14 00:45 /etc/rc.local.sample&lt;br /&gt;
 -rw-r--r--    1 root     root           651 Nov 14 00:22 /etc/syslog-startup.conf.busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root           660 Nov 13 20:19 /etc/init.d/sysfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           704 Nov 14 00:45 /etc/fstab&lt;br /&gt;
 -rwxr-xr-x    1 root     root           711 Nov 13 20:19 /etc/init.d/umountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           719 Nov 14 21:23 /etc/passwd&lt;br /&gt;
 -rw-------    1 root     root           737 Nov 14 22:22 /.ash_history&lt;br /&gt;
 -rw-r--r--    1 root     root           783 Nov 14 21:24 /etc/ld.so.cache&lt;br /&gt;
 -rwxr-xr-x    1 root     root           809 Nov 14 00:45 /etc/network/if-pre-up.d/nfsroot&lt;br /&gt;
 -rw-------    1 root     root           836 Nov 14 21:24 /var/volatile/cache/ldconfig/aux-cache&lt;br /&gt;
 -rw-r--r--    1 root     root           847 Nov 14 00:45 /etc/profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           859 Nov 13 20:19 /etc/init.d/mountall.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           878 Nov 14 00:45 /etc/init.d/modutils.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           887 Nov 14 00:45 /etc/rpc&lt;br /&gt;
 -rw-r--r--    1 root     root          1123 Nov 13 20:19 /etc/init.d/functions.initscripts&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1349 Nov 13 20:19 /etc/init.d/urandom&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1540 Nov 13 20:19 /etc/init.d/mountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root          1633 Nov 14 00:45 /etc/inputrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1711 Nov 14 00:22 /etc/init.d/syslog.busybox&lt;br /&gt;
 -rw-r--r--    1 root     root          1740 Nov 13 20:19 /etc/default/volatiles/00_core&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1752 Nov 13 20:19 /etc/init.d/bootmisc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1909 Nov 14 00:45 /etc/init.d/networking&lt;br /&gt;
 -rw-r--r--    1 root     root          2146 Nov 14 00:22 /etc/busybox.links&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2514 Nov 14 00:22 /etc/init.d/hwclock.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2548 Nov 14 00:22 /etc/udhcpc.d/50default&lt;br /&gt;
 -rw-r--r--    1 root     root          2933 Nov 14 00:45 /etc/protocols&lt;br /&gt;
 -rwxr-xr-x    1 root     root          3229 Nov 13 20:19 /etc/init.d/checkroot.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4409 Nov 13 20:16 /usr/sbin/update-rc.d&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4524 Nov 14 00:45 /usr/bin/update-alternatives&lt;br /&gt;
 -rwxr-xr-x    1 root     root          5249 Nov 13 20:19 /etc/init.d/populate-volatile.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          6666 Nov 13 20:19 /etc/device_table&lt;br /&gt;
 -rwsr-xr-x    1 root     root          9544 Nov 14 00:14 /usr/lib/eglibc/pt_chown&lt;br /&gt;
 -rwxr-xr-x    1 root     root          9740 Nov 14 00:14 /lib/libutil-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         13828 Nov 14 00:14 /lib/libdl-2.16.so&lt;br /&gt;
 -rw-r--r--    1 root     root         19398 Nov 14 00:45 /etc/services&lt;br /&gt;
 -rwxr-xr-x    1 root     root         22020 Nov 14 00:14 /lib/libnss_dns-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         26064 Nov 14 00:14 /lib/libcrypt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         30624 Nov 14 00:14 /lib/librt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         34588 Nov 14 00:14 /lib/libnss_compat-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         46980 Nov 14 00:14 /lib/libnss_files-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         83716 Nov 14 00:14 /lib/libresolv-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         87860 Nov 14 00:14 /lib/libnsl-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         96128 Nov 14 00:14 /lib/libpthread-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        127228 Nov 14 00:14 /lib/ld-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        251328 Nov 14 00:14 /lib/libm-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        524924 Nov 14 00:14 /sbin/ldconfig&lt;br /&gt;
 -rwsr-xr-x    1 root     root        554820 Nov 14 00:22 /bin/busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root       1056128 Nov 14 00:14 /lib/libc-2.16.so&lt;br /&gt;
&lt;br /&gt;
busybox, ldconfig and libc (and other libc-related libs) make up about 95% of the system.&lt;br /&gt;
&lt;br /&gt;
If busybox were statically linked, and ldconfig and libc were omitted, I believe it would&lt;br /&gt;
reduce the size of the system substantially.&lt;br /&gt;
&lt;br /&gt;
=== exiting the system ===&lt;br /&gt;
There is no &#039;shutdown&#039; command, but you can use &#039;ctrl-a to execute a command to the qemu monitor, and &#039;ctrl-a b&#039; to issue a sysrq to the Linux kernel.&lt;br /&gt;
You can do a sysrq-B to do a reboot.  Do: ctrl-a h to see available commands, and ctrl-a x to exit the qemu.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8029</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8029"/>
		<updated>2012-11-14T22:40:35Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Basic use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/tmp/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead.  Here&#039;s the template:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here the actual full command I used:&lt;br /&gt;
&lt;br /&gt;
 $ tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel tmp/deploy/images/bzImage-qemux86.bin -initrd tmp/deploy/images/core-image-minimal-qemux86.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Some information about the running system ===&lt;br /&gt;
You can poke around, and see the status of various things.  &#039;ps&#039; shows only 22 processes running, with only 3 user-space (ie not kernel threads):&lt;br /&gt;
&lt;br /&gt;
 # ps | grep -v [[]&lt;br /&gt;
  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 root      2004 S    {init} /bin/sh /init&lt;br /&gt;
   38 root      2144 S    sh&lt;br /&gt;
   41 root      2144 R    ps&lt;br /&gt;
&lt;br /&gt;
So... busybox is really the only executable on the system, and it is providing /bin/sh.  /init is a shell script,&lt;br /&gt;
which will run /etc/rc.local, if one is present.  There&#039;s a sample in /etc/rc.local.sample that you can use as a&lt;br /&gt;
starting point to customize the init process.  If you turn on packages in yocto, there will be init scripts deposited&lt;br /&gt;
in /etc/init.d, which you can call from either /init or /etc/rc.local to invoke (none of that fancy sysV rc init scripts here!)&lt;br /&gt;
&lt;br /&gt;
I booted with mem=24M (that was about as small as I could go) and saw the following memory utilization:&lt;br /&gt;
 # free&lt;br /&gt;
             total         used         free       shared      buffers&lt;br /&gt;
 Mem:         19724         5944        13780            0            0&lt;br /&gt;
 -/+ buffers:               5944        13780&lt;br /&gt;
 Swap:            0            0            0&lt;br /&gt;
&lt;br /&gt;
The filesystem is a little over 3M in size:&lt;br /&gt;
 # du -sh /&lt;br /&gt;
 3.2M	/&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a sample of what the filesystem looks like (as of yocto-danny-8.0), with results sorted by size&lt;br /&gt;
and /sys, /proc and /dev omitted:&lt;br /&gt;
 # find / -type f -xdev | xargs ls -laSr&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.builtin.bin&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/network/nm-disabled-eth0&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/motd&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:14 /etc/ld.so.conf&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/default/usbd&lt;br /&gt;
 -rw-r--r--    1 root     root             6 Nov 14 22:05 /var/volatile/run/ifstate&lt;br /&gt;
 -rw-r--r--    1 root     root             8 Nov 14 00:45 /etc/hostname&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/version&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/timestamp&lt;br /&gt;
 -rw-r--r--    1 root     root            26 Nov 14 00:45 /etc/host.conf&lt;br /&gt;
 -rw-r--r--    1 root     root            38 Nov 14 00:45 /etc/filesystems&lt;br /&gt;
 -rw-r--r--    1 root     root            44 Nov 14 00:45 /etc/hosts&lt;br /&gt;
 -rw-r--r--    1 root     root            45 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias&lt;br /&gt;
 -rwxr-xr-x    1 root     root            49 Nov 14 00:22 /usr/share/udhcpc/default.script&lt;br /&gt;
 -rw-r--r--    1 root     root            49 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols&lt;br /&gt;
 -rw-r--r--    1 root     root            52 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.devname&lt;br /&gt;
 -rw-r--r--    1 root     root            72 Nov 14 00:45 /etc/issue.net&lt;br /&gt;
 -rw-r--r--    1 root     root            74 Nov 14 00:45 /etc/issue&lt;br /&gt;
 -rwxr-xr-x    1 root     root            93 Nov 13 20:19 /etc/default/devpts&lt;br /&gt;
 -rw-r--r--    1 root     root           109 Nov 14 00:45 /etc/shells&lt;br /&gt;
 -rw-r--r--    1 root     root           131 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.softdep&lt;br /&gt;
 -rw-r--r--    1 root     root           132 Nov 14 00:45 /etc/network/interfaces&lt;br /&gt;
 -rwxr-xr-x    1 root     root           152 Nov 14 00:45 /etc/skel/.profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           270 Nov 13 20:19 /etc/init.d/hostname.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           289 Nov 13 20:19 /etc/init.d/reboot&lt;br /&gt;
 -rwxr-xr-x    1 root     root           321 Nov 13 20:19 /etc/init.d/save-rtc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           410 Nov 14 00:45 /etc/skel/.bashrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root           438 Nov 13 20:19 /etc/init.d/sendsigs&lt;br /&gt;
 -rw-r--r--    1 root     root           446 Nov 14 21:23 /etc/group&lt;br /&gt;
 -rw-r--r--    1 root     root           465 Nov 14 00:45 /etc/nsswitch.conf&lt;br /&gt;
 -rwxr-xr-x    1 root     root           473 Nov 14 21:24 /init&lt;br /&gt;
 -rwxr-xr-x    1 root     root           492 Nov 13 20:19 /etc/init.d/banner.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           510 Nov 13 20:19 /etc/init.d/halt&lt;br /&gt;
 -rwxr-xr-x    1 root     root           516 Nov 13 20:19 /etc/init.d/umountfs&lt;br /&gt;
 -rwxr-xr-x    1 root     root           526 Nov 13 20:19 /etc/init.d/devpts.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           578 Nov 13 20:19 /etc/init.d/single&lt;br /&gt;
 -rwxr-xr-x    1 root     root           585 Nov 13 20:19 /etc/init.d/rmnologin.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           586 Nov 14 00:20 /usr/share/run-postinsts/run-postinsts.awk&lt;br /&gt;
 -rwxr-xr-x    1 root     root           609 Nov 14 00:20 /etc/init.d/run-postinsts&lt;br /&gt;
 -rwxr-xr-x    1 root     root           632 Nov 14 00:45 /etc/rc.local.sample&lt;br /&gt;
 -rw-r--r--    1 root     root           651 Nov 14 00:22 /etc/syslog-startup.conf.busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root           660 Nov 13 20:19 /etc/init.d/sysfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           704 Nov 14 00:45 /etc/fstab&lt;br /&gt;
 -rwxr-xr-x    1 root     root           711 Nov 13 20:19 /etc/init.d/umountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           719 Nov 14 21:23 /etc/passwd&lt;br /&gt;
 -rw-------    1 root     root           737 Nov 14 22:22 /.ash_history&lt;br /&gt;
 -rw-r--r--    1 root     root           783 Nov 14 21:24 /etc/ld.so.cache&lt;br /&gt;
 -rwxr-xr-x    1 root     root           809 Nov 14 00:45 /etc/network/if-pre-up.d/nfsroot&lt;br /&gt;
 -rw-------    1 root     root           836 Nov 14 21:24 /var/volatile/cache/ldconfig/aux-cache&lt;br /&gt;
 -rw-r--r--    1 root     root           847 Nov 14 00:45 /etc/profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           859 Nov 13 20:19 /etc/init.d/mountall.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           878 Nov 14 00:45 /etc/init.d/modutils.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           887 Nov 14 00:45 /etc/rpc&lt;br /&gt;
 -rw-r--r--    1 root     root          1123 Nov 13 20:19 /etc/init.d/functions.initscripts&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1349 Nov 13 20:19 /etc/init.d/urandom&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1540 Nov 13 20:19 /etc/init.d/mountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root          1633 Nov 14 00:45 /etc/inputrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1711 Nov 14 00:22 /etc/init.d/syslog.busybox&lt;br /&gt;
 -rw-r--r--    1 root     root          1740 Nov 13 20:19 /etc/default/volatiles/00_core&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1752 Nov 13 20:19 /etc/init.d/bootmisc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1909 Nov 14 00:45 /etc/init.d/networking&lt;br /&gt;
 -rw-r--r--    1 root     root          2146 Nov 14 00:22 /etc/busybox.links&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2514 Nov 14 00:22 /etc/init.d/hwclock.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2548 Nov 14 00:22 /etc/udhcpc.d/50default&lt;br /&gt;
 -rw-r--r--    1 root     root          2933 Nov 14 00:45 /etc/protocols&lt;br /&gt;
 -rwxr-xr-x    1 root     root          3229 Nov 13 20:19 /etc/init.d/checkroot.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4409 Nov 13 20:16 /usr/sbin/update-rc.d&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4524 Nov 14 00:45 /usr/bin/update-alternatives&lt;br /&gt;
 -rwxr-xr-x    1 root     root          5249 Nov 13 20:19 /etc/init.d/populate-volatile.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          6666 Nov 13 20:19 /etc/device_table&lt;br /&gt;
 -rwsr-xr-x    1 root     root          9544 Nov 14 00:14 /usr/lib/eglibc/pt_chown&lt;br /&gt;
 -rwxr-xr-x    1 root     root          9740 Nov 14 00:14 /lib/libutil-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         13828 Nov 14 00:14 /lib/libdl-2.16.so&lt;br /&gt;
 -rw-r--r--    1 root     root         19398 Nov 14 00:45 /etc/services&lt;br /&gt;
 -rwxr-xr-x    1 root     root         22020 Nov 14 00:14 /lib/libnss_dns-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         26064 Nov 14 00:14 /lib/libcrypt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         30624 Nov 14 00:14 /lib/librt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         34588 Nov 14 00:14 /lib/libnss_compat-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         46980 Nov 14 00:14 /lib/libnss_files-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         83716 Nov 14 00:14 /lib/libresolv-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         87860 Nov 14 00:14 /lib/libnsl-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         96128 Nov 14 00:14 /lib/libpthread-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        127228 Nov 14 00:14 /lib/ld-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        251328 Nov 14 00:14 /lib/libm-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        524924 Nov 14 00:14 /sbin/ldconfig&lt;br /&gt;
 -rwsr-xr-x    1 root     root        554820 Nov 14 00:22 /bin/busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root       1056128 Nov 14 00:14 /lib/libc-2.16.so&lt;br /&gt;
&lt;br /&gt;
busybox, ldconfig and libc (and other libc-related libs) make up about 95% of the system.&lt;br /&gt;
&lt;br /&gt;
If busybox were statically linked, and ldconfig and libc were omitted, I&#039;m believe it would&lt;br /&gt;
reduce the size of the system substantially.&lt;br /&gt;
&lt;br /&gt;
=== exiting the system ===&lt;br /&gt;
There is no &#039;shutdown&#039; command, but you can use &#039;ctrl-a to execute a command to the qemu monitor, and &#039;ctrl-a b&#039; to issue a sysrq to the Linux kernel.&lt;br /&gt;
You can do a sysrq-B to do a reboot.  Do: ctrl-a h to see available commands, and ctrl-a x to exit the qemu.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8025</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8025"/>
		<updated>2012-11-14T22:26:47Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Some information about the running system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead.  Here&#039;s the template:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here the actual full command I used:&lt;br /&gt;
&lt;br /&gt;
 $ tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel tmp/deploy/images/bzImage-qemux86.bin -initrd tmp/deploy/images/core-image-minimal-qemux86.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Some information about the running system ===&lt;br /&gt;
You can poke around, and see the status of various things.  &#039;ps&#039; shows only 22 processes running, with only 3 user-space (ie not kernel threads):&lt;br /&gt;
&lt;br /&gt;
 # ps | grep -v [[]&lt;br /&gt;
  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 root      2004 S    {init} /bin/sh /init&lt;br /&gt;
   38 root      2144 S    sh&lt;br /&gt;
   41 root      2144 R    ps&lt;br /&gt;
&lt;br /&gt;
So... busybox is really the only executable on the system, and it is providing /bin/sh.  /init is a shell script,&lt;br /&gt;
which will run /etc/rc.local, if one is present.  There&#039;s a sample in /etc/rc.local.sample that you can use as a&lt;br /&gt;
starting point to customize the init process.  If you turn on packages in yocto, there will be init scripts deposited&lt;br /&gt;
in /etc/init.d, which you can call from either /init or /etc/rc.local to invoke (none of that fancy sysV rc init scripts here!)&lt;br /&gt;
&lt;br /&gt;
I booted with mem=24M (that was about as small as I could go) and saw the following memory utilization:&lt;br /&gt;
 # free&lt;br /&gt;
             total         used         free       shared      buffers&lt;br /&gt;
 Mem:         19724         5944        13780            0            0&lt;br /&gt;
 -/+ buffers:               5944        13780&lt;br /&gt;
 Swap:            0            0            0&lt;br /&gt;
&lt;br /&gt;
The filesystem is a little over 3M in size:&lt;br /&gt;
 # du -sh /&lt;br /&gt;
 3.2M	/&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a sample of what the filesystem looks like (as of yocto-danny-8.0), with results sorted by size&lt;br /&gt;
and /sys, /proc and /dev omitted:&lt;br /&gt;
 # find / -type f -xdev | xargs ls -laSr&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.builtin.bin&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/network/nm-disabled-eth0&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/motd&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:14 /etc/ld.so.conf&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/default/usbd&lt;br /&gt;
 -rw-r--r--    1 root     root             6 Nov 14 22:05 /var/volatile/run/ifstate&lt;br /&gt;
 -rw-r--r--    1 root     root             8 Nov 14 00:45 /etc/hostname&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/version&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/timestamp&lt;br /&gt;
 -rw-r--r--    1 root     root            26 Nov 14 00:45 /etc/host.conf&lt;br /&gt;
 -rw-r--r--    1 root     root            38 Nov 14 00:45 /etc/filesystems&lt;br /&gt;
 -rw-r--r--    1 root     root            44 Nov 14 00:45 /etc/hosts&lt;br /&gt;
 -rw-r--r--    1 root     root            45 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias&lt;br /&gt;
 -rwxr-xr-x    1 root     root            49 Nov 14 00:22 /usr/share/udhcpc/default.script&lt;br /&gt;
 -rw-r--r--    1 root     root            49 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols&lt;br /&gt;
 -rw-r--r--    1 root     root            52 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.devname&lt;br /&gt;
 -rw-r--r--    1 root     root            72 Nov 14 00:45 /etc/issue.net&lt;br /&gt;
 -rw-r--r--    1 root     root            74 Nov 14 00:45 /etc/issue&lt;br /&gt;
 -rwxr-xr-x    1 root     root            93 Nov 13 20:19 /etc/default/devpts&lt;br /&gt;
 -rw-r--r--    1 root     root           109 Nov 14 00:45 /etc/shells&lt;br /&gt;
 -rw-r--r--    1 root     root           131 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.softdep&lt;br /&gt;
 -rw-r--r--    1 root     root           132 Nov 14 00:45 /etc/network/interfaces&lt;br /&gt;
 -rwxr-xr-x    1 root     root           152 Nov 14 00:45 /etc/skel/.profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           270 Nov 13 20:19 /etc/init.d/hostname.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           289 Nov 13 20:19 /etc/init.d/reboot&lt;br /&gt;
 -rwxr-xr-x    1 root     root           321 Nov 13 20:19 /etc/init.d/save-rtc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           410 Nov 14 00:45 /etc/skel/.bashrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root           438 Nov 13 20:19 /etc/init.d/sendsigs&lt;br /&gt;
 -rw-r--r--    1 root     root           446 Nov 14 21:23 /etc/group&lt;br /&gt;
 -rw-r--r--    1 root     root           465 Nov 14 00:45 /etc/nsswitch.conf&lt;br /&gt;
 -rwxr-xr-x    1 root     root           473 Nov 14 21:24 /init&lt;br /&gt;
 -rwxr-xr-x    1 root     root           492 Nov 13 20:19 /etc/init.d/banner.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           510 Nov 13 20:19 /etc/init.d/halt&lt;br /&gt;
 -rwxr-xr-x    1 root     root           516 Nov 13 20:19 /etc/init.d/umountfs&lt;br /&gt;
 -rwxr-xr-x    1 root     root           526 Nov 13 20:19 /etc/init.d/devpts.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           578 Nov 13 20:19 /etc/init.d/single&lt;br /&gt;
 -rwxr-xr-x    1 root     root           585 Nov 13 20:19 /etc/init.d/rmnologin.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           586 Nov 14 00:20 /usr/share/run-postinsts/run-postinsts.awk&lt;br /&gt;
 -rwxr-xr-x    1 root     root           609 Nov 14 00:20 /etc/init.d/run-postinsts&lt;br /&gt;
 -rwxr-xr-x    1 root     root           632 Nov 14 00:45 /etc/rc.local.sample&lt;br /&gt;
 -rw-r--r--    1 root     root           651 Nov 14 00:22 /etc/syslog-startup.conf.busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root           660 Nov 13 20:19 /etc/init.d/sysfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           704 Nov 14 00:45 /etc/fstab&lt;br /&gt;
 -rwxr-xr-x    1 root     root           711 Nov 13 20:19 /etc/init.d/umountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           719 Nov 14 21:23 /etc/passwd&lt;br /&gt;
 -rw-------    1 root     root           737 Nov 14 22:22 /.ash_history&lt;br /&gt;
 -rw-r--r--    1 root     root           783 Nov 14 21:24 /etc/ld.so.cache&lt;br /&gt;
 -rwxr-xr-x    1 root     root           809 Nov 14 00:45 /etc/network/if-pre-up.d/nfsroot&lt;br /&gt;
 -rw-------    1 root     root           836 Nov 14 21:24 /var/volatile/cache/ldconfig/aux-cache&lt;br /&gt;
 -rw-r--r--    1 root     root           847 Nov 14 00:45 /etc/profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           859 Nov 13 20:19 /etc/init.d/mountall.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           878 Nov 14 00:45 /etc/init.d/modutils.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           887 Nov 14 00:45 /etc/rpc&lt;br /&gt;
 -rw-r--r--    1 root     root          1123 Nov 13 20:19 /etc/init.d/functions.initscripts&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1349 Nov 13 20:19 /etc/init.d/urandom&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1540 Nov 13 20:19 /etc/init.d/mountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root          1633 Nov 14 00:45 /etc/inputrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1711 Nov 14 00:22 /etc/init.d/syslog.busybox&lt;br /&gt;
 -rw-r--r--    1 root     root          1740 Nov 13 20:19 /etc/default/volatiles/00_core&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1752 Nov 13 20:19 /etc/init.d/bootmisc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1909 Nov 14 00:45 /etc/init.d/networking&lt;br /&gt;
 -rw-r--r--    1 root     root          2146 Nov 14 00:22 /etc/busybox.links&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2514 Nov 14 00:22 /etc/init.d/hwclock.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2548 Nov 14 00:22 /etc/udhcpc.d/50default&lt;br /&gt;
 -rw-r--r--    1 root     root          2933 Nov 14 00:45 /etc/protocols&lt;br /&gt;
 -rwxr-xr-x    1 root     root          3229 Nov 13 20:19 /etc/init.d/checkroot.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4409 Nov 13 20:16 /usr/sbin/update-rc.d&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4524 Nov 14 00:45 /usr/bin/update-alternatives&lt;br /&gt;
 -rwxr-xr-x    1 root     root          5249 Nov 13 20:19 /etc/init.d/populate-volatile.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          6666 Nov 13 20:19 /etc/device_table&lt;br /&gt;
 -rwsr-xr-x    1 root     root          9544 Nov 14 00:14 /usr/lib/eglibc/pt_chown&lt;br /&gt;
 -rwxr-xr-x    1 root     root          9740 Nov 14 00:14 /lib/libutil-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         13828 Nov 14 00:14 /lib/libdl-2.16.so&lt;br /&gt;
 -rw-r--r--    1 root     root         19398 Nov 14 00:45 /etc/services&lt;br /&gt;
 -rwxr-xr-x    1 root     root         22020 Nov 14 00:14 /lib/libnss_dns-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         26064 Nov 14 00:14 /lib/libcrypt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         30624 Nov 14 00:14 /lib/librt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         34588 Nov 14 00:14 /lib/libnss_compat-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         46980 Nov 14 00:14 /lib/libnss_files-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         83716 Nov 14 00:14 /lib/libresolv-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         87860 Nov 14 00:14 /lib/libnsl-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         96128 Nov 14 00:14 /lib/libpthread-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        127228 Nov 14 00:14 /lib/ld-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        251328 Nov 14 00:14 /lib/libm-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        524924 Nov 14 00:14 /sbin/ldconfig&lt;br /&gt;
 -rwsr-xr-x    1 root     root        554820 Nov 14 00:22 /bin/busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root       1056128 Nov 14 00:14 /lib/libc-2.16.so&lt;br /&gt;
&lt;br /&gt;
busybox, ldconfig and libc (and other libc-related libs) make up about 95% of the system.&lt;br /&gt;
&lt;br /&gt;
If busybox were statically linked, and ldconfig and libc were omitted, I&#039;m believe it would&lt;br /&gt;
reduce the size of the system substantially.&lt;br /&gt;
&lt;br /&gt;
=== exiting the system ===&lt;br /&gt;
There is no &#039;shutdown&#039; command, but you can use &#039;ctrl-a to execute a command to the qemu monitor, and &#039;ctrl-a b&#039; to issue a sysrq to the Linux kernel.&lt;br /&gt;
You can do a sysrq-B to do a reboot.  Do: ctrl-a h to see available commands, and ctrl-a x to exit the qemu.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8024</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8024"/>
		<updated>2012-11-14T22:23:39Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Some information about the running system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead.  Here&#039;s the template:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here the actual full command I used:&lt;br /&gt;
&lt;br /&gt;
 $ tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel tmp/deploy/images/bzImage-qemux86.bin -initrd tmp/deploy/images/core-image-minimal-qemux86.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Some information about the running system ===&lt;br /&gt;
You can poke around, and see the status of various things.  &#039;ps&#039; shows only 22 processes running, with only 3 user-space (ie not kernel threads):&lt;br /&gt;
&lt;br /&gt;
 # ps | grep -v [[]&lt;br /&gt;
  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 root      2004 S    {init} /bin/sh /init&lt;br /&gt;
   38 root      2144 S    sh&lt;br /&gt;
   41 root      2144 R    ps&lt;br /&gt;
&lt;br /&gt;
So... busybox is really the only executable on the system, and it is providing /bin/sh.  /init is a shell script,&lt;br /&gt;
which will run /etc/rc.local, if one is present.  There&#039;s a sample in /etc/rc.local.sample that you can use as a&lt;br /&gt;
starting point to customize the init process.  If you turn on packages in yocto, there will be init scripts deposited&lt;br /&gt;
in /etc/init.d, which you can call from either /init or /etc/rc.local to invoke (none of that fancy sysV rc init scripts here!)&lt;br /&gt;
&lt;br /&gt;
I booted with mem=24M (that was about as small as I could go) and saw the following memory utilization:&lt;br /&gt;
 # free&lt;br /&gt;
             total         used         free       shared      buffers&lt;br /&gt;
 Mem:         19724         5944        13780            0            0&lt;br /&gt;
 -/+ buffers:               5944        13780&lt;br /&gt;
 Swap:            0            0            0&lt;br /&gt;
&lt;br /&gt;
The filesystem is a little over 3M in size:&lt;br /&gt;
 # du -sh /&lt;br /&gt;
 3.2M	/&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a sample of what the filesystem looks like (as of yocto-danny-8.0), with results sorted by size&lt;br /&gt;
and /sys, /proc and /dev omitted:&lt;br /&gt;
/ # find / -type f -xdev | xargs ls -laSr&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.builtin.bin&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/network/nm-disabled-eth0&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/motd&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:14 /etc/ld.so.conf&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 /etc/default/usbd&lt;br /&gt;
 -rw-r--r--    1 root     root             6 Nov 14 22:05 /var/volatile/run/ifstate&lt;br /&gt;
 -rw-r--r--    1 root     root             8 Nov 14 00:45 /etc/hostname&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.dep.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/version&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 /etc/timestamp&lt;br /&gt;
 -rw-r--r--    1 root     root            26 Nov 14 00:45 /etc/host.conf&lt;br /&gt;
 -rw-r--r--    1 root     root            38 Nov 14 00:45 /etc/filesystems&lt;br /&gt;
 -rw-r--r--    1 root     root            44 Nov 14 00:45 /etc/hosts&lt;br /&gt;
 -rw-r--r--    1 root     root            45 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.alias&lt;br /&gt;
 -rwxr-xr-x    1 root     root            49 Nov 14 00:22 /usr/share/udhcpc/default.script&lt;br /&gt;
 -rw-r--r--    1 root     root            49 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.symbols&lt;br /&gt;
 -rw-r--r--    1 root     root            52 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.devname&lt;br /&gt;
 -rw-r--r--    1 root     root            72 Nov 14 00:45 /etc/issue.net&lt;br /&gt;
 -rw-r--r--    1 root     root            74 Nov 14 00:45 /etc/issue&lt;br /&gt;
 -rwxr-xr-x    1 root     root            93 Nov 13 20:19 /etc/default/devpts&lt;br /&gt;
 -rw-r--r--    1 root     root           109 Nov 14 00:45 /etc/shells&lt;br /&gt;
 -rw-r--r--    1 root     root           131 Nov 14 21:24 /lib/modules/3.4.11-yocto-tiny/modules.softdep&lt;br /&gt;
 -rw-r--r--    1 root     root           132 Nov 14 00:45 /etc/network/interfaces&lt;br /&gt;
 -rwxr-xr-x    1 root     root           152 Nov 14 00:45 /etc/skel/.profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           270 Nov 13 20:19 /etc/init.d/hostname.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           289 Nov 13 20:19 /etc/init.d/reboot&lt;br /&gt;
 -rwxr-xr-x    1 root     root           321 Nov 13 20:19 /etc/init.d/save-rtc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           410 Nov 14 00:45 /etc/skel/.bashrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root           438 Nov 13 20:19 /etc/init.d/sendsigs&lt;br /&gt;
 -rw-r--r--    1 root     root           446 Nov 14 21:23 /etc/group&lt;br /&gt;
 -rw-r--r--    1 root     root           465 Nov 14 00:45 /etc/nsswitch.conf&lt;br /&gt;
 -rwxr-xr-x    1 root     root           473 Nov 14 21:24 /init&lt;br /&gt;
 -rwxr-xr-x    1 root     root           492 Nov 13 20:19 /etc/init.d/banner.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           510 Nov 13 20:19 /etc/init.d/halt&lt;br /&gt;
 -rwxr-xr-x    1 root     root           516 Nov 13 20:19 /etc/init.d/umountfs&lt;br /&gt;
 -rwxr-xr-x    1 root     root           526 Nov 13 20:19 /etc/init.d/devpts.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           578 Nov 13 20:19 /etc/init.d/single&lt;br /&gt;
 -rwxr-xr-x    1 root     root           585 Nov 13 20:19 /etc/init.d/rmnologin.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           586 Nov 14 00:20 /usr/share/run-postinsts/run-postinsts.awk&lt;br /&gt;
 -rwxr-xr-x    1 root     root           609 Nov 14 00:20 /etc/init.d/run-postinsts&lt;br /&gt;
 -rwxr-xr-x    1 root     root           632 Nov 14 00:45 /etc/rc.local.sample&lt;br /&gt;
 -rw-r--r--    1 root     root           651 Nov 14 00:22 /etc/syslog-startup.conf.busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root           660 Nov 13 20:19 /etc/init.d/sysfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           704 Nov 14 00:45 /etc/fstab&lt;br /&gt;
 -rwxr-xr-x    1 root     root           711 Nov 13 20:19 /etc/init.d/umountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           719 Nov 14 21:23 /etc/passwd&lt;br /&gt;
 -rw-------    1 root     root           737 Nov 14 22:22 /.ash_history&lt;br /&gt;
 -rw-r--r--    1 root     root           783 Nov 14 21:24 /etc/ld.so.cache&lt;br /&gt;
 -rwxr-xr-x    1 root     root           809 Nov 14 00:45 /etc/network/if-pre-up.d/nfsroot&lt;br /&gt;
 -rw-------    1 root     root           836 Nov 14 21:24 /var/volatile/cache/ldconfig/aux-cache&lt;br /&gt;
 -rw-r--r--    1 root     root           847 Nov 14 00:45 /etc/profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           859 Nov 13 20:19 /etc/init.d/mountall.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           878 Nov 14 00:45 /etc/init.d/modutils.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           887 Nov 14 00:45 /etc/rpc&lt;br /&gt;
 -rw-r--r--    1 root     root          1123 Nov 13 20:19 /etc/init.d/functions.initscripts&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1349 Nov 13 20:19 /etc/init.d/urandom&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1540 Nov 13 20:19 /etc/init.d/mountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root          1633 Nov 14 00:45 /etc/inputrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1711 Nov 14 00:22 /etc/init.d/syslog.busybox&lt;br /&gt;
 -rw-r--r--    1 root     root          1740 Nov 13 20:19 /etc/default/volatiles/00_core&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1752 Nov 13 20:19 /etc/init.d/bootmisc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1909 Nov 14 00:45 /etc/init.d/networking&lt;br /&gt;
 -rw-r--r--    1 root     root          2146 Nov 14 00:22 /etc/busybox.links&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2514 Nov 14 00:22 /etc/init.d/hwclock.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2548 Nov 14 00:22 /etc/udhcpc.d/50default&lt;br /&gt;
 -rw-r--r--    1 root     root          2933 Nov 14 00:45 /etc/protocols&lt;br /&gt;
 -rwxr-xr-x    1 root     root          3229 Nov 13 20:19 /etc/init.d/checkroot.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4409 Nov 13 20:16 /usr/sbin/update-rc.d&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4524 Nov 14 00:45 /usr/bin/update-alternatives&lt;br /&gt;
 -rwxr-xr-x    1 root     root          5249 Nov 13 20:19 /etc/init.d/populate-volatile.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          6666 Nov 13 20:19 /etc/device_table&lt;br /&gt;
 -rwsr-xr-x    1 root     root          9544 Nov 14 00:14 /usr/lib/eglibc/pt_chown&lt;br /&gt;
 -rwxr-xr-x    1 root     root          9740 Nov 14 00:14 /lib/libutil-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         13828 Nov 14 00:14 /lib/libdl-2.16.so&lt;br /&gt;
 -rw-r--r--    1 root     root         19398 Nov 14 00:45 /etc/services&lt;br /&gt;
 -rwxr-xr-x    1 root     root         22020 Nov 14 00:14 /lib/libnss_dns-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         26064 Nov 14 00:14 /lib/libcrypt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         30624 Nov 14 00:14 /lib/librt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         34588 Nov 14 00:14 /lib/libnss_compat-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         46980 Nov 14 00:14 /lib/libnss_files-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         83716 Nov 14 00:14 /lib/libresolv-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         87860 Nov 14 00:14 /lib/libnsl-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         96128 Nov 14 00:14 /lib/libpthread-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        127228 Nov 14 00:14 /lib/ld-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        251328 Nov 14 00:14 /lib/libm-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        524924 Nov 14 00:14 /sbin/ldconfig&lt;br /&gt;
 -rwsr-xr-x    1 root     root        554820 Nov 14 00:22 /bin/busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root       1056128 Nov 14 00:14 /lib/libc-2.16.so&lt;br /&gt;
&lt;br /&gt;
busybox, ldconfig and libc (and other libc-related libs) make up about 95% of the system.&lt;br /&gt;
&lt;br /&gt;
If busybox were statically linked, and ldconfig and libc were omitted, I&#039;m believe it would&lt;br /&gt;
reduce the size of the system substantially.&lt;br /&gt;
&lt;br /&gt;
=== exiting the system ===&lt;br /&gt;
There is no &#039;shutdown&#039; command, but you can use &#039;ctrl-a to execute a command to the qemu monitor, and &#039;ctrl-a b&#039; to issue a sysrq to the Linux kernel.&lt;br /&gt;
You can do a sysrq-B to do a reboot.  Do: ctrl-a h to see available commands, and ctrl-a x to exit the qemu.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8023</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8023"/>
		<updated>2012-11-14T22:18:56Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Invoking qemu with poky-tiny images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead.  Here&#039;s the template:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here the actual full command I used:&lt;br /&gt;
&lt;br /&gt;
 $ tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel tmp/deploy/images/bzImage-qemux86.bin -initrd tmp/deploy/images/core-image-minimal-qemux86.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Some information about the running system ===&lt;br /&gt;
You can poke around, and see the status of various things.  &#039;ps&#039; shows only 22 processes running, with only 3 user-space (ie not kernel threads):&lt;br /&gt;
&lt;br /&gt;
 # ps | grep -v [[]&lt;br /&gt;
  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 root      2004 S    {init} /bin/sh /init&lt;br /&gt;
   38 root      2144 S    sh&lt;br /&gt;
   41 root      2144 R    ps&lt;br /&gt;
&lt;br /&gt;
So... busybox is really the only executable on the system, and it is providing /bin/sh.  /init is a shell script,&lt;br /&gt;
which will run /etc/rc.local, if one is present.  There&#039;s a sample in /etc/rc.local.sample that you can use as a&lt;br /&gt;
starting point to customize the init process.  If you turn on packages in yocto, there will be init scripts deposited&lt;br /&gt;
in /etc/init.d, which you can call from either /init or /etc/rc.local to invoke (none of that fancy sysV rc init scripts here!)&lt;br /&gt;
&lt;br /&gt;
I booted with mem=24M (that was about as small as I could go) and saw the following memory utilization:&lt;br /&gt;
 # free&lt;br /&gt;
             total         used         free       shared      buffers&lt;br /&gt;
 Mem:         19724         5944        13780            0            0&lt;br /&gt;
 -/+ buffers:               5944        13780&lt;br /&gt;
 Swap:            0            0            0&lt;br /&gt;
&lt;br /&gt;
The filesystem is a little over 3M in size:&lt;br /&gt;
 # du -sh /&lt;br /&gt;
 3.2M	/&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a sample of what the filesystem looks like (as of yocto-danny-8.0), with results sorted by size:&lt;br /&gt;
&lt;br /&gt;
 # find . -type f | grep -v /sys | grep -v /proc | grep -v /dev | xargs ls -laSr&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.dep&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.builtin.bin&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 ./etc/network/nm-disabled-eth0&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 ./etc/motd&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:14 ./etc/ld.so.conf&lt;br /&gt;
 -rw-r--r--    1 root     root             0 Nov 14 00:45 ./etc/default/usbd&lt;br /&gt;
 -rw-r--r--    1 root     root             6 Nov 14 22:05 ./var/volatile/run/ifstate&lt;br /&gt;
 -rw-r--r--    1 root     root             8 Nov 14 00:45 ./etc/hostname&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.symbols.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.dep.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            12 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.alias.bin&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 ./etc/version&lt;br /&gt;
 -rw-r--r--    1 root     root            13 Nov 14 21:24 ./etc/timestamp&lt;br /&gt;
 -rw-r--r--    1 root     root            26 Nov 14 00:45 ./etc/host.conf&lt;br /&gt;
 -rw-r--r--    1 root     root            38 Nov 14 00:45 ./etc/filesystems&lt;br /&gt;
 -rw-r--r--    1 root     root            44 Nov 14 00:45 ./etc/hosts&lt;br /&gt;
 -rw-r--r--    1 root     root            45 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.alias&lt;br /&gt;
 -rwxr-xr-x    1 root     root            49 Nov 14 00:22 ./usr/share/udhcpc/default.script&lt;br /&gt;
 -rw-r--r--    1 root     root            49 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.symbols&lt;br /&gt;
 -rw-r--r--    1 root     root            52 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.devname&lt;br /&gt;
 -rw-r--r--    1 root     root            72 Nov 14 00:45 ./etc/issue.net&lt;br /&gt;
 -rw-r--r--    1 root     root            74 Nov 14 00:45 ./etc/issue&lt;br /&gt;
 -rw-r--r--    1 root     root           109 Nov 14 00:45 ./etc/shells&lt;br /&gt;
 -rw-r--r--    1 root     root           131 Nov 14 21:24 ./lib/modules/3.4.11-yocto-tiny/modules.softdep&lt;br /&gt;
 -rw-r--r--    1 root     root           132 Nov 14 00:45 ./etc/network/interfaces&lt;br /&gt;
 -rwxr-xr-x    1 root     root           152 Nov 14 00:45 ./etc/skel/.profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           270 Nov 13 20:19 ./etc/init.d/hostname.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           289 Nov 13 20:19 ./etc/init.d/reboot&lt;br /&gt;
 -rwxr-xr-x    1 root     root           321 Nov 13 20:19 ./etc/init.d/save-rtc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           410 Nov 14 00:45 ./etc/skel/.bashrc&lt;br /&gt;
 -rwxr-xr-x    1 root     root           438 Nov 13 20:19 ./etc/init.d/sendsigs&lt;br /&gt;
 -rw-r--r--    1 root     root           446 Nov 14 21:23 ./etc/group&lt;br /&gt;
 -rw-r--r--    1 root     root           465 Nov 14 00:45 ./etc/nsswitch.conf&lt;br /&gt;
 -rwxr-xr-x    1 root     root           473 Nov 14 21:24 ./init&lt;br /&gt;
 -rwxr-xr-x    1 root     root           492 Nov 13 20:19 ./etc/init.d/banner.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           510 Nov 13 20:19 ./etc/init.d/halt&lt;br /&gt;
 -rw-------    1 root     root           513 Nov 14 22:11 ./.ash_history&lt;br /&gt;
 -rwxr-xr-x    1 root     root           516 Nov 13 20:19 ./etc/init.d/umountfs&lt;br /&gt;
 -rwxr-xr-x    1 root     root           578 Nov 13 20:19 ./etc/init.d/single&lt;br /&gt;
 -rwxr-xr-x    1 root     root           585 Nov 13 20:19 ./etc/init.d/rmnologin.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           586 Nov 14 00:20 ./usr/share/run-postinsts/run-postinsts.awk&lt;br /&gt;
 -rwxr-xr-x    1 root     root           609 Nov 14 00:20 ./etc/init.d/run-postinsts&lt;br /&gt;
 -rwxr-xr-x    1 root     root           632 Nov 14 00:45 ./etc/rc.local.sample&lt;br /&gt;
 -rw-r--r--    1 root     root           704 Nov 14 00:45 ./etc/fstab&lt;br /&gt;
 -rwxr-xr-x    1 root     root           711 Nov 13 20:19 ./etc/init.d/umountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           719 Nov 14 21:23 ./etc/passwd&lt;br /&gt;
 -rw-r--r--    1 root     root           783 Nov 14 21:24 ./etc/ld.so.cache&lt;br /&gt;
 -rwxr-xr-x    1 root     root           809 Nov 14 00:45 ./etc/network/if-pre-up.d/nfsroot&lt;br /&gt;
 -rw-------    1 root     root           836 Nov 14 21:24 ./var/volatile/cache/ldconfig/aux-cache&lt;br /&gt;
 -rw-r--r--    1 root     root           847 Nov 14 00:45 ./etc/profile&lt;br /&gt;
 -rwxr-xr-x    1 root     root           859 Nov 13 20:19 ./etc/init.d/mountall.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root           878 Nov 14 00:45 ./etc/init.d/modutils.sh&lt;br /&gt;
 -rw-r--r--    1 root     root           887 Nov 14 00:45 ./etc/rpc&lt;br /&gt;
 -rw-r--r--    1 root     root          1123 Nov 13 20:19 ./etc/init.d/functions.initscripts&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1349 Nov 13 20:19 ./etc/init.d/urandom&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1540 Nov 13 20:19 ./etc/init.d/mountnfs.sh&lt;br /&gt;
 -rw-r--r--    1 root     root          1633 Nov 14 00:45 ./etc/inputrc&lt;br /&gt;
 -rw-r--r--    1 root     root          1740 Nov 13 20:19 ./etc/default/volatiles/00_core&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1752 Nov 13 20:19 ./etc/init.d/bootmisc.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          1909 Nov 14 00:45 ./etc/init.d/networking&lt;br /&gt;
 -rw-r--r--    1 root     root          2146 Nov 14 00:22 ./etc/busybox.links&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2514 Nov 14 00:22 ./etc/init.d/hwclock.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          2548 Nov 14 00:22 ./etc/udhcpc.d/50default&lt;br /&gt;
 -rw-r--r--    1 root     root          2933 Nov 14 00:45 ./etc/protocols&lt;br /&gt;
 -rwxr-xr-x    1 root     root          3229 Nov 13 20:19 ./etc/init.d/checkroot.sh&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4409 Nov 13 20:16 ./usr/sbin/update-rc.d&lt;br /&gt;
 -rwxr-xr-x    1 root     root          4524 Nov 14 00:45 ./usr/bin/update-alternatives&lt;br /&gt;
 -rwxr-xr-x    1 root     root          5249 Nov 13 20:19 ./etc/init.d/populate-volatile.sh&lt;br /&gt;
 -rwsr-xr-x    1 root     root          9544 Nov 14 00:14 ./usr/lib/eglibc/pt_chown&lt;br /&gt;
 -rwxr-xr-x    1 root     root          9740 Nov 14 00:14 ./lib/libutil-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         13828 Nov 14 00:14 ./lib/libdl-2.16.so&lt;br /&gt;
 -rw-r--r--    1 root     root         19398 Nov 14 00:45 ./etc/services&lt;br /&gt;
 -rwxr-xr-x    1 root     root         22020 Nov 14 00:14 ./lib/libnss_dns-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         26064 Nov 14 00:14 ./lib/libcrypt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         30624 Nov 14 00:14 ./lib/librt-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         34588 Nov 14 00:14 ./lib/libnss_compat-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         46980 Nov 14 00:14 ./lib/libnss_files-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         83716 Nov 14 00:14 ./lib/libresolv-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         87860 Nov 14 00:14 ./lib/libnsl-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root         96128 Nov 14 00:14 ./lib/libpthread-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        127228 Nov 14 00:14 ./lib/ld-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        251328 Nov 14 00:14 ./lib/libm-2.16.so&lt;br /&gt;
 -rwxr-xr-x    1 root     root        524924 Nov 14 00:14 ./sbin/ldconfig&lt;br /&gt;
 -rwsr-xr-x    1 root     root        554820 Nov 14 00:22 ./bin/busybox&lt;br /&gt;
 -rwxr-xr-x    1 root     root       1056128 Nov 14 00:14 ./lib/libc-2.16.so&lt;br /&gt;
&lt;br /&gt;
busybox, ldconfig and libc (and other libc-related libs) make up about 95% of the system.&lt;br /&gt;
&lt;br /&gt;
If busybox were statically linked, and ldconfig and libc were omitted, I&#039;m believe it would&lt;br /&gt;
reduce the size of the system substantially.&lt;br /&gt;
&lt;br /&gt;
=== exiting the system ===&lt;br /&gt;
There is no &#039;shutdown&#039; command, but you can use &#039;ctrl-a to execute a command to the qemu monitor, and &#039;ctrl-a b&#039; to issue a sysrq to the Linux kernel.&lt;br /&gt;
You can do a sysrq-B to do a reboot.  Do: ctrl-a h to see available commands, and ctrl-a x to exit the qemu.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8022</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8022"/>
		<updated>2012-11-14T21:38:53Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Invoking qemu with poky-tiny images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead.  Here&#039;s the template:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here the actual full command I used:&lt;br /&gt;
&lt;br /&gt;
 $ tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -kernel tmp/deploy/images/bzImage-qemux86.bin -initrd tmp/deploy/images/core-image-minimal-qemux86.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8016</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8016"/>
		<updated>2012-11-14T20:55:02Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
** The kernel recipe for poky-tiny is in &amp;lt;yocto-dir&amp;gt;/meta/recipes-kernel/linux/linux-yocto-tiny_x.x.bb&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
** in the kernel recipe file, it has COMPATIBLE_MACHINE=&amp;quot;(qemux86)&amp;quot;&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8015</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8015"/>
		<updated>2012-11-14T20:22:43Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;  This means it will build both an ext2 filesystem image, and a cpio.gz image (suitable for use as an initramfs).&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized? (eg. gotchas for adding to IMAGE_INSTALL or IMAGE_FEATURES)?&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8014</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8014"/>
		<updated>2012-11-14T20:09:01Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart.&lt;br /&gt;
&lt;br /&gt;
=== Basic use ===&lt;br /&gt;
To use the poky-tiny distro, adjust the DISTRO setting in your conf/local.conf file.&lt;br /&gt;
That is, set it to: &amp;quot;DISTRO=poky-tiny&amp;quot;&lt;br /&gt;
&lt;br /&gt;
poky-tiny does not include a target-side package manager, so it is useful, to avoid&lt;br /&gt;
extra dependencies, to use it with the IPKG package management scheme.  This is the lightest-weight&lt;br /&gt;
package management scheme.  Set this in your conf/local.conf file:&lt;br /&gt;
 PACKAGE_CLASSES ?= &amp;quot;package_ipk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then do a basic build of the system:&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
Resulting images should appear in your &amp;lt;build-dir&amp;gt;/deploy/images directory.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
** As of poky-danny-8.0 (the 1.3 release of yocto), poky-tiny.conf defined the following images: IMAGE_FSTYPES = &amp;quot;ext2 cpio.gz&amp;quot;&lt;br /&gt;
* What machines are supported (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized?&lt;br /&gt;
** eg. gotchas for adding to IMAGE_&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Projects&amp;diff=8013</id>
		<title>Projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Projects&amp;diff=8013"/>
		<updated>2012-11-14T19:52:34Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Welcome to the Projects Page */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to the Projects Page ==&lt;br /&gt;
* [[AutoBuilder]]&lt;br /&gt;
* [[Poky]]&lt;br /&gt;
* [[SDK Generator]]&lt;br /&gt;
* [[Eclipse Plug-in]]&lt;br /&gt;
* [[Anjuta Plug-in]]&lt;br /&gt;
* [[Pseudo]]&lt;br /&gt;
* [[Swabber]]&lt;br /&gt;
* [[Cross-Prelink]]&lt;br /&gt;
* [[QA]]&lt;br /&gt;
* [[Documentation]]&lt;br /&gt;
* [[BSPs]]&lt;br /&gt;
* [[Tracing and Profiling]]&lt;br /&gt;
* Linux Kernel&lt;br /&gt;
** [[Linux_Kernel/Boot_Time|Boot Time]]&lt;br /&gt;
** [[Linux_kernel/Image_Size|Image Size]]&lt;br /&gt;
* [[Multilib]]&lt;br /&gt;
* [[BitBake/GUI|BitBake GUI&#039;s]]&lt;br /&gt;
* [[x32 abi]]&lt;br /&gt;
* [[Baryon]]&lt;br /&gt;
* [[Build Appliance Design]]&lt;br /&gt;
* [[Hob2 (Hob v2)]]&lt;br /&gt;
* [[Web UI]]&lt;br /&gt;
* [[OpenGL pass-through in QEMU]]&lt;br /&gt;
* [[DLNA Media Server Virtual Appliance]]&lt;br /&gt;
* [[Running an x86 Yocto Linux image under QEMU KVM]]&lt;br /&gt;
* [[Web Application for Interactive Kiosk Devices]]&lt;br /&gt;
* [[Virtualization with KVM]]&lt;br /&gt;
* [[Projects/Poky-Tiny]]&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8012</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8012"/>
		<updated>2012-11-14T19:51:23Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* uclibc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart, and is available by setting&lt;br /&gt;
your DISTRO in conf/local.conf to DISTRO=poky-tiny.&lt;br /&gt;
&lt;br /&gt;
This page is a work in progress - the following sections would be good to fill out:&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
* What machines (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized?&lt;br /&gt;
** eg. gotchas for adding to IMAGE_&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file is the routine: features_to_uclibc_settings(),&lt;br /&gt;
which maps items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8011</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8011"/>
		<updated>2012-11-14T19:50:56Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: /* Controlling LIBC features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart, and is available by setting&lt;br /&gt;
your DISTRO in conf/local.conf to DISTRO=poky-tiny.&lt;br /&gt;
&lt;br /&gt;
This page is a work in progress - the following sections would be good to fill out:&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
* What machines (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized?&lt;br /&gt;
** eg. gotchas for adding to IMAGE_&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
==== eglibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/eglibc/eglibc-options.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: distro_features_check_deps() and features_to_eglibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific eglibc settings.&lt;br /&gt;
&lt;br /&gt;
==== uclibc ====&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&amp;lt;yocto-dir&amp;gt;/meta/recipes-core/uclibc/uclibc-config.inc&lt;br /&gt;
&lt;br /&gt;
Listed in that file are the routines: features_to_uclibc_settings(),&lt;br /&gt;
which map items listed in DISTRO_FEATURES_LIBC into specific uclibc settings.&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8010</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8010"/>
		<updated>2012-11-14T19:43:20Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: add presentation - adjust headings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart, and is available by setting&lt;br /&gt;
your DISTRO in conf/local.conf to DISTRO=poky-tiny.&lt;br /&gt;
&lt;br /&gt;
This page is a work in progress - the following sections would be good to fill out:&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
* What machines (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized?&lt;br /&gt;
** eg. gotchas for adding to IMAGE_&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Presentation: [http://elinux.org/images/2/2b/Elce11_hart.pdf Tuning Linux For Embedded Systems: When Less Is More] by Darren Hart, ELC Europe 2011, October 2011, Prague, Czech Republic&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8009</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8009"/>
		<updated>2012-11-14T19:40:23Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions and images&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart, and is available by setting&lt;br /&gt;
your DISTRO in conf/local.conf to DISTRO=poky-tiny.&lt;br /&gt;
&lt;br /&gt;
This page is a work in progress - the following sections would be good to fill out:&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
* What machines (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized?&lt;br /&gt;
** eg. gotchas for adding to IMAGE_&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Adjusting poky-tiny ==&lt;br /&gt;
=== Controlling LIBC features ===&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Controlling kernel features ===&lt;br /&gt;
&lt;br /&gt;
=== Controlling busybox features ===&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the build ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8008</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8008"/>
		<updated>2012-11-14T19:33:39Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart, and is available by setting&lt;br /&gt;
your DISTRO in conf/local.conf to DISTRO=poky-tiny.&lt;br /&gt;
&lt;br /&gt;
This page is a work in progress - the following sections would be good to fill out:&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
* What machines (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized?&lt;br /&gt;
** eg. gotchas for adding to IMAGE_&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro ==&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
== Controlling LIBC features ==&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Controlling kernel features ==&lt;br /&gt;
&lt;br /&gt;
== Controlling busybox features ==&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images ==&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8007</id>
		<title>Poky-Tiny</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Poky-Tiny&amp;diff=8007"/>
		<updated>2012-11-14T19:33:09Z</updated>

		<summary type="html">&lt;p&gt;Tbird20d: work-in-progress 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poky-tiny is a variant of the poky distribution which is stripped down to minimal configuration.&lt;br /&gt;
&lt;br /&gt;
It is intended to be useful for a few different purposes:&lt;br /&gt;
* as a demonstration of techniques useful for reducing other images&lt;br /&gt;
* as a springboard for very low-end distributions&lt;br /&gt;
* as a place to experiment with whole-system optimization techniques&lt;br /&gt;
&lt;br /&gt;
It was written by Darren Hart, and is available by setting&lt;br /&gt;
your DISTRO in conf/local.conf to DISTRO=poky-tiny.&lt;br /&gt;
&lt;br /&gt;
This page is a work in progress - the following sections would be good to fill out:&lt;br /&gt;
&lt;br /&gt;
== FAQ&lt;br /&gt;
* where is poky-tiny defined?&lt;br /&gt;
** poky-tiny is defined in &amp;lt;yocto-dir&amp;gt;/meta-yocto/conf/distro/poky-tiny.conf.  Some other recipes and images have been modified to support the features in poky-tiny.&lt;br /&gt;
* What images are supported?&lt;br /&gt;
* What machines (are there any restrictions)?&lt;br /&gt;
* What features have been eliminated?&lt;br /&gt;
* What is the size difference between poky-tiny and poky (core-image-minimal)?&lt;br /&gt;
* Are there differences in the way poky-tiny is customized, from the way default &#039;poky&#039; is customized?&lt;br /&gt;
** eg. gotchas for adding to IMAGE_&lt;br /&gt;
&lt;br /&gt;
== Creating your own tiny-based distro&lt;br /&gt;
You can create your own distro, based on the tiny work, by copying the poky-tiny.conf file&lt;br /&gt;
to your own layer, and editing it from there.&lt;br /&gt;
&lt;br /&gt;
Assuming you are calling your layer &#039;meta-foo&#039;, you could do the following:&lt;br /&gt;
&lt;br /&gt;
* create your meta-foo layer (see other docs for this)&lt;br /&gt;
* copy the poky-tiny distro configuration file to your own layer&lt;br /&gt;
 $ install -p meta-foo/conf/distro&lt;br /&gt;
 $ cp meta-yocto/conf/distro/poky-tiny.conf meta-foo/conf/distro/foo-tiny.conf&lt;br /&gt;
* edit your conf/local.conf to use your foo-tiny.conf distro&lt;br /&gt;
 $ vi &amp;lt;build-dir&amp;gt;/conf/local.conf&lt;br /&gt;
 [change it so &amp;quot;DISTRO?=foo-tiny&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
== Controlling LIBC features&lt;br /&gt;
Inside foo-tiny.conf (derived from poky-tiny.conf), you can specify what LIBC features to support&lt;br /&gt;
by modifying the DISTRO_FEATURES_LIBC variable.&lt;br /&gt;
&lt;br /&gt;
This variable is declared to be a space-separated list of other DISTRO_FEATURES_LIBC_xxx variables.&lt;br /&gt;
To turn on or off features in libc, edit the values of these variables.&lt;br /&gt;
&lt;br /&gt;
To see different options that are available, see the file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Controlling kernel features&lt;br /&gt;
&lt;br /&gt;
== Controlling busybox features&lt;br /&gt;
&lt;br /&gt;
== Invoking qemu with poky-tiny images&lt;br /&gt;
Runqemu doesn&#039;t understand poky-tiny (or initramfs?).  Try executing qemu directly instead:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-i386 -kernel path/to/kernel -initrd path/to/image.cpio.gz -nographic -append &amp;quot;console=ttyS0 root=/dev/ram0&amp;quot;&lt;/div&gt;</summary>
		<author><name>Tbird20d</name></author>
	</entry>
</feed>