[yocto] [RFC PATCH 0/9] New distribution definition for poky-tiny

Darren Hart dvhart at linux.intel.com
Wed Dec 21 01:02:46 PST 2011


Poky-tiny defines a new distro policy for building tiny Linux images.
Rather than create new image tasks and recipes, it reuses existing ones,
modifying them as necessary. I believe it defines policy appropriate for
the distribution, but I'd welcome feedback regarding the distro/image split.
Please see th poky-tiny commit log for details on the policy goals.

In its current form, poky-tiny builds a qemux86 core-image-minimal image
and kernel in 2.6 MB (compressed):

1.2M bzImage-qemux86.bin
1.4M core-image-minimal-qemux86.cpio.gz

After mounting the rootfs:

$ sudo du -hs .
3.4M    .

$ sudo ~/bin/dirsize.py 25000
[sudo] password for dvhart: 
   2927998 .
   1754686 ./lib
   1022080 ./lib/libc-2.13.so
    157124 ./lib/libm-2.13.so
    119036 ./lib/ld-2.13.so
     96128 ./lib/libpthread-2.13.so
     91960 ./lib/libnsl-2.13.so
     83748 ./lib/libresolv-2.13.so
     46656 ./lib/libnss_files-2.13.so
     34588 ./lib/libnss_compat-2.13.so
     30624 ./lib/librt-2.13.so
     26056 ./lib/libcrypt-2.13.so
    549600 ./bin
    549600 ./bin/busybox
    531908 ./sbin
    531908 ./sbin/ldconfig
     71860 ./etc
     28006 ./etc/init.d
Displayed 2789508/2927998 bytes (95.27%)

This image can be tested in qemu with:
qemu-system-i386 -kernel /build/poky/qemux86/tmp/deploy/images/bzImage-qemux86.bin -append "console=ttyS0,115200 root=0800" -nographic /build/poky/qemux86/tmp/deploy/images/core-image-minimal-qemux86.ext2

This results in booting to a busybox shell:
/bin/sh: can't access tty; job control turned off
/ # 

This series includes two patches from others that are still pending inclusion,
but are necessary to build poky-tiny images:
o native.bbclass: Fix variable remapping coverage
o license: Fix manifest conditional

The linux-yocto-tiny recipe is a placeholder until the linux-yocto_3.2 recipes
are ready for master. At that time, linux-yocto-tiny will drop all config
fragments in favor of the to-be-in-tree versions and make use of a new
yocto/standard/tiny/base branch. For now, this recipe allows us to build
poky-tiny with a reasonably small kernel.

Several of these patches are known to be suboptimal, but are included to allow
for building and testing the series as well as to illicit feedback.  Many of
these "hacks" could be avoided by defining MACHINE-tiny variants and creating a
core-image-tiny recipe and a task-core-tiny task. I'd prefer to avoid all of
those things if possible by making the existing infrastructure flexible enough
to be used with poky-tiny. For example, I could not discover a way to use
oe_filter_out inside poky-tiny.conf to remove "keyboard" for MACHINE_FEATURES.

Finally, I appreciate that this series is a mix of patches destined for oe-core
and poky. I felt it would be preferable to keep it all together for the RFC, and
to CC those that I knew would be interested. The final request will be sent
piecemeal through the appropriate channels.

Thanks,

Darren

The following changes since commit 4648aadfe161d2e0ec51408f35fdf8996727bd22:

  ui/crumbs/hobprefs: trigger a reparse after changing IMAGE_FSTYPES (2011-12-20 13:15:54 +0000)

are available in the git repository at:
  git://git.pokylinux.org/poky-contrib dvhart/tiny
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/tiny

Beth Flanagan (1):
  license: Fix manifest conditional

Darren Hart (7):
  ncurses: Allow override of ENABLE_WIDEC
  eglibc: Only add eglibc-utils to PACKAGES if wchar is supported
  linux-yocto-tiny: New kernel recipe for poky-tiny distro (INCOMPLETE)
  task-core-boot: Allow DISTRO to disable keymaps
  distro: Factor out poky-common.inc from poky.conf
  distro: Add poky-tiny distro definition
  image_types: Ensure /init exists for cpio rootfs archives

Richard Purdie (1):
  native.bbclass: Fix variable remapping coverage

 meta-yocto/conf/distro/poky-common.inc             |   55 ++
 meta-yocto/conf/distro/poky-tiny.conf              |  104 ++++
 meta-yocto/conf/distro/poky.conf                   |   53 +--
 meta/classes/image_types.bbclass                   |   10 +-
 meta/classes/license.bbclass                       |    4 +-
 meta/classes/native.bbclass                        |    2 +-
 meta/recipes-core/eglibc/eglibc-package.inc        |    6 +-
 meta/recipes-core/ncurses/ncurses.inc              |    2 +-
 meta/recipes-core/tasks/task-core-boot.bb          |    7 +-
 meta/recipes-devtools/autoconf/autoconf.inc        |    2 +
 meta/recipes-devtools/autoconf/autoconf_2.68.bb    |    8 -
 meta/recipes-devtools/automake/automake_1.11.1.bb  |    4 +-
 .../recipes-devtools/python/python-native_2.7.2.bb |    2 +
 meta/recipes-gnome/gnome/gconf_3.2.3.bb            |    1 +
 meta/recipes-kernel/linux/linux-yocto-tiny/ata.cfg |    9 +
 .../recipes-kernel/linux/linux-yocto-tiny/core.cfg |   19 +
 .../linux/linux-yocto-tiny/debug.cfg               |    5 +
 .../linux/linux-yocto-tiny/devtmpfs.cfg            |    6 +
 .../linux/linux-yocto-tiny/e1000.cfg               |    7 +
 .../recipes-kernel/linux/linux-yocto-tiny/ext2.cfg |    1 +
 .../recipes-kernel/linux/linux-yocto-tiny/ext3.cfg |    2 +
 .../recipes-kernel/linux/linux-yocto-tiny/lzma.cfg |    3 +
 meta/recipes-kernel/linux/linux-yocto-tiny/net.cfg |   26 +
 .../linux/linux-yocto-tiny/qemux86/defconfig       |  613 ++++++++++++++++++++
 .../linux/linux-yocto-tiny/ramfs.cfg               |    6 +
 .../linux/linux-yocto-tiny/rtc-pc.cfg              |   13 +
 .../linux/linux-yocto-tiny/serial.cfg              |    7 +
 meta/recipes-kernel/linux/linux-yocto-tiny/smp.cfg |    7 +
 meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb  |   36 ++
 meta/recipes-support/boost/boost.inc               |    1 +
 30 files changed, 952 insertions(+), 69 deletions(-)
 create mode 100644 meta-yocto/conf/distro/poky-common.inc
 create mode 100644 meta-yocto/conf/distro/poky-tiny.conf
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/ata.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/core.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/debug.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/devtmpfs.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/e1000.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/ext2.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/ext3.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/lzma.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/net.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/qemux86/defconfig
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/ramfs.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/rtc-pc.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/serial.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny/smp.cfg
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb

-- 
1.7.6.4




More information about the yocto mailing list