summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Hart <dvhart@linux.intel.com>2012-01-03 08:18:35 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-05 22:22:38 +0000
commita10af679ec0cc497c0ddeb672a16d3200080720e (patch)
tree2a663f2e52362383a292922d017400b925e8f027
parentc226ccb90624c6234c2a37a7d2c1adfeb2e98f51 (diff)
downloadpoky-a10af679ec0cc497c0ddeb672a16d3200080720e.tar.gz
distro: Add poky-tiny distro definition
Poky-tiny is intended for building very small OS images. The distro definition sets the providers for the kernel and the runtime services. It also reduces the eglibc component list and other DISTRO_FEATURE elements. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta-yocto/conf/distro/poky-tiny.conf103
1 files changed, 103 insertions, 0 deletions
diff --git a/meta-yocto/conf/distro/poky-tiny.conf b/meta-yocto/conf/distro/poky-tiny.conf
new file mode 100644
index 0000000000..49c4397a42
--- /dev/null
+++ b/meta-yocto/conf/distro/poky-tiny.conf
@@ -0,0 +1,103 @@
1# Distribution definition for: poky-tiny
2#
3# Copyright (c) 2011, Intel Corporation.
4# All rights reserved.
5#
6# Poky-tiny is intended to define a tiny Linux system comprised of a
7# Linux kernel tailored to support each specific MACHINE and busybox.
8# Poky-tiny sets some basic policy to ensure a usable system while still
9# keeping the rootfs and kernel image as small as possible.
10#
11# The policies defined are intended to meet the following goals:
12# o Serial consoles only (no framebuffer or VGA console)
13# o Basic support for IPV4 networking
14# o Single user ash shell
15# o Static images (no support for adding packages or libraries later)
16# o Read-only or RAMFS root filesystem
17# o Combined Linux kernel + rootfs in under 4MB
18# o Allow the user to select between eglibc or uclibc with the TCLIBC variable
19#
20# This is currently a partial definition, the following tasks remain:
21# [ ] Integrate linux-yocto-tiny ktype into linux-yocto
22# [ ] Define linux-yocto-tiny configs for all supported BSPs
23# [ ] Drop ldconfig from the installation
24# [ ] Modify the runqemu scripts to work with ext2 parameter:
25# runqemu qemux86 qemuparams="-nographic" bootparams="console=ttyS0,115200 root=0800"
26# [ ] Modify busybox to allow for DISTRO_FEATURES-like confiruration
27
28require conf/distro/poky.conf
29DISTRO = "poky-tiny"
30
31# FIXME: consider adding a new "tiny" feature
32#DISTRO_FEATURES_append = " tiny"
33
34# Distro config is evaluated after the machine config, so we have to explicitly
35# set the kernel provider to override a machine config.
36PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-tiny"
37PREFERRED_VERSION_linux-yocto-tiny = "3.0%"
38
39# We can use task-core-boot, but in the future we may need a new task-core-tiny
40#POKY_DEFAULT_EXTRA_RDEPENDS += "task-core-boot"
41# Drop kernel-module-af-packet from RRECOMMENDS
42POKY_DEFAULT_EXTRA_RRECOMMENDS = ""
43
44# FIXME: what should we do with this?
45TCLIBCAPPEND = ""
46
47# Disable wide char support for ncurses as we don't include it in
48# in the LIBC features below.
49ENABLE_WIDEC="false"
50
51# Reconfigure eglibc for a smaller installation
52# Comment out any of the lines below to disable them in the build
53DISTRO_FEATURES_LIBC_TINY = "libc-libm libc-crypt"
54# Required for "who"
55DISTRO_FEATURES_LIBC_MINIMAL = "libc-utmp libc-getlogin"
56DISTRO_FEATURES_LIBC_REGEX = "libc-posix-regexp"
57DISTRO_FEATURES_LIBC_NET = "libc-inet libc-nis"
58
59DISTRO_FEATURES_LIBC = "${DISTRO_FEATURES_LIBC_TINY} \
60 ${DISTRO_FEATURES_LIBC_MINIMAL} \
61 ${DISTRO_FEATURES_LIBC_REGEX} \
62 ${DISTRO_FEATURES_LIBC_NET} \
63 "
64
65# Comment out any of the lines below to disable them in the build
66# DISTRO_FEATURES options:
67# alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci
68DISTRO_FEATURES_TINY = "pci"
69DISTRO_FEATURES_NET = "ipv4"
70DISTRO_FEATURES_USB = "usbhost"
71#DISTRO_FEATURES_USBGADGET = "usbgadget"
72#DISTRO_FEATURES_WIFI = "wifi"
73
74DISTRO_FEATURES = "${DISTRO_FEATURES_TINY} \
75 ${DISTRO_FEATURES_NET} \
76 ${DISTRO_FEATURES_USB} \
77 ${DISTRO_FEATURES_USBGADGET} \
78 ${DISTRO_FEATURES_WIFI} \
79 ${DISTRO_FEATURES_LIBC} \
80 "
81
82# Use tmpdevfs and the busybox runtime services
83VIRTUAL-RUNTIME_dev_manager = ""
84VIRTUAL-RUNTIME_login_manager = ""
85VIRTUAL-RUNTIME_init_manager = ""
86VIRTUAL-RUNTIME_keymaps = ""
87
88# FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in
89# task-core-base to select modutils-initscripts or not. Similar with "net" and
90# netbase.
91
92# By default we only support ext2 and initramfs. We don't build live as that
93# pulls in a lot of dependencies for the live image and the installer, like
94# udev, grub, etc. These pull in gettext, which fails to build with wide
95# character support.
96IMAGE_FSTYPES = "ext2 cpio.gz"
97
98# Drop v86d from qemu dependency list (we support serial)
99# Drop grub from meta-intel BSPs
100# FIXME: A different mechanism is needed here. We could define -tiny
101# variants of all compatible machines, but that leads to a lot
102# more machine configs to maintain long term.
103MACHINE_ESSENTIAL_EXTRA_RDEPENDS = ""