2012-01-03 16:18:35 +00:00
|
|
|
# Distribution definition for: poky-tiny
|
|
|
|
#
|
|
|
|
# Copyright (c) 2011, Intel Corporation.
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
2012-01-05 23:37:35 +00:00
|
|
|
# This file is released under the MIT license as described in
|
|
|
|
# ../meta/COPYING.MIT.
|
|
|
|
#
|
2012-01-03 16:18:35 +00:00
|
|
|
# Poky-tiny is intended to define a tiny Linux system comprised of a
|
|
|
|
# Linux kernel tailored to support each specific MACHINE and busybox.
|
|
|
|
# Poky-tiny sets some basic policy to ensure a usable system while still
|
|
|
|
# keeping the rootfs and kernel image as small as possible.
|
|
|
|
#
|
|
|
|
# The policies defined are intended to meet the following goals:
|
|
|
|
# o Serial consoles only (no framebuffer or VGA console)
|
|
|
|
# o Basic support for IPV4 networking
|
|
|
|
# o Single user ash shell
|
|
|
|
# o Static images (no support for adding packages or libraries later)
|
|
|
|
# o Read-only or RAMFS root filesystem
|
|
|
|
# o Combined Linux kernel + rootfs in under 4MB
|
|
|
|
# o Allow the user to select between eglibc or uclibc with the TCLIBC variable
|
|
|
|
#
|
|
|
|
# This is currently a partial definition, the following tasks remain:
|
|
|
|
# [ ] Integrate linux-yocto-tiny ktype into linux-yocto
|
|
|
|
# [ ] Define linux-yocto-tiny configs for all supported BSPs
|
|
|
|
# [ ] Drop ldconfig from the installation
|
|
|
|
# [ ] Modify the runqemu scripts to work with ext2 parameter:
|
|
|
|
# runqemu qemux86 qemuparams="-nographic" bootparams="console=ttyS0,115200 root=0800"
|
|
|
|
# [ ] Modify busybox to allow for DISTRO_FEATURES-like confiruration
|
|
|
|
|
|
|
|
require conf/distro/poky.conf
|
|
|
|
DISTRO = "poky-tiny"
|
|
|
|
|
|
|
|
# FIXME: consider adding a new "tiny" feature
|
|
|
|
#DISTRO_FEATURES_append = " tiny"
|
|
|
|
|
|
|
|
# Distro config is evaluated after the machine config, so we have to explicitly
|
|
|
|
# set the kernel provider to override a machine config.
|
|
|
|
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-tiny"
|
2012-10-05 22:33:29 +00:00
|
|
|
PREFERRED_VERSION_linux-yocto-tiny = "3.4%"
|
2012-01-03 16:18:35 +00:00
|
|
|
|
2012-09-03 10:44:57 +00:00
|
|
|
# We can use packagegroup-core-boot, but in the future we may need a new packagegroup-core-tiny
|
|
|
|
#POKY_DEFAULT_EXTRA_RDEPENDS += "packagegroup-core-boot"
|
2012-01-03 16:18:35 +00:00
|
|
|
# Drop kernel-module-af-packet from RRECOMMENDS
|
|
|
|
POKY_DEFAULT_EXTRA_RRECOMMENDS = ""
|
|
|
|
|
|
|
|
# FIXME: what should we do with this?
|
|
|
|
TCLIBCAPPEND = ""
|
|
|
|
|
|
|
|
# Disable wide char support for ncurses as we don't include it in
|
|
|
|
# in the LIBC features below.
|
|
|
|
ENABLE_WIDEC="false"
|
|
|
|
|
2012-01-05 23:37:35 +00:00
|
|
|
# Drop native language support. This removes the
|
|
|
|
# eglibc->bash->gettext->libc-posix-clang-wchar dependency.
|
|
|
|
USE_NLS="no"
|
|
|
|
|
2012-02-25 16:29:30 +00:00
|
|
|
# -dev packages require pkgconfig, but it pulls in glib->dbus->shadow
|
|
|
|
# which breaks with tiny's minimal libc.
|
|
|
|
# -dev packages are not currently supported on poky-tiny.
|
|
|
|
ASSUME_PROVIDED += "pkgconfig$"
|
|
|
|
|
2012-01-03 16:18:35 +00:00
|
|
|
# Reconfigure eglibc for a smaller installation
|
|
|
|
# Comment out any of the lines below to disable them in the build
|
|
|
|
DISTRO_FEATURES_LIBC_TINY = "libc-libm libc-crypt"
|
2012-09-06 23:47:08 +00:00
|
|
|
DISTRO_FEATURES_LIBC_TINY_append_x86-64 = " libc-libm-big"
|
2012-04-17 01:06:12 +00:00
|
|
|
|
2012-01-03 16:18:35 +00:00
|
|
|
# Required for "who"
|
|
|
|
DISTRO_FEATURES_LIBC_MINIMAL = "libc-utmp libc-getlogin"
|
|
|
|
DISTRO_FEATURES_LIBC_REGEX = "libc-posix-regexp"
|
|
|
|
DISTRO_FEATURES_LIBC_NET = "libc-inet libc-nis"
|
|
|
|
|
|
|
|
DISTRO_FEATURES_LIBC = "${DISTRO_FEATURES_LIBC_TINY} \
|
|
|
|
${DISTRO_FEATURES_LIBC_MINIMAL} \
|
|
|
|
${DISTRO_FEATURES_LIBC_REGEX} \
|
|
|
|
${DISTRO_FEATURES_LIBC_NET} \
|
|
|
|
"
|
|
|
|
|
|
|
|
# Comment out any of the lines below to disable them in the build
|
|
|
|
# DISTRO_FEATURES options:
|
|
|
|
# alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci
|
|
|
|
DISTRO_FEATURES_TINY = "pci"
|
|
|
|
DISTRO_FEATURES_NET = "ipv4"
|
|
|
|
DISTRO_FEATURES_USB = "usbhost"
|
|
|
|
#DISTRO_FEATURES_USBGADGET = "usbgadget"
|
|
|
|
#DISTRO_FEATURES_WIFI = "wifi"
|
|
|
|
|
|
|
|
DISTRO_FEATURES = "${DISTRO_FEATURES_TINY} \
|
|
|
|
${DISTRO_FEATURES_NET} \
|
|
|
|
${DISTRO_FEATURES_USB} \
|
|
|
|
${DISTRO_FEATURES_USBGADGET} \
|
|
|
|
${DISTRO_FEATURES_WIFI} \
|
|
|
|
${DISTRO_FEATURES_LIBC} \
|
|
|
|
"
|
|
|
|
|
|
|
|
# Use tmpdevfs and the busybox runtime services
|
|
|
|
VIRTUAL-RUNTIME_dev_manager = ""
|
|
|
|
VIRTUAL-RUNTIME_login_manager = ""
|
tiny-init: Basic init mechanism for poky-tiny
Currently poky-tiny images will boot and run /bin/sh, which results in
error messages to the console about being unable to open the tty and job
control being disabled.
The shell must be session leader to open the tty, and the tty must not
be /dev/console (it should be a vt or a physical tty like ttyS0), the
tty is required for job control (handling signals, etc.).
The goals of poky-tiny are to be an initial starting point from which to
build a distribution that does what you want, and NOTHING more.
This patch results in a system that boots with the virtual filesystems
mounted, the local network interface up, and a shell with job control
running, and a hook (/etc/rc.local) for easy customization. Nothing
else.
Enabling the basic busybox init, including the ability to give the
controlling console to commands starting with a dash in inittab results
in a 5664 byte delta (compared with 2560 bytes for enabling setsid and
cttyhack). Note that the help in busybox suggests the cttyhack may be
more reliable than the init support for handing over the controlling
terminal.
So the difference between using a standard init and just enabling the
two options is about 3k, but enabling setsid and cttyhack may enable
others to things besides what I am looking to do. Enabling init in both
DISTRO_FEATURES and busybox is fairly trivial to do, so I think it's
better to leave that as something to add if needed, rather than
something to remove, as that is more consistent with the goals of
poky-tiny.
Thanks to Tim Bird for his suggestion to include support for rc.local by
default.
(From meta-yocto rev: 5ae60ed46b34cbf4ab17fe7eab3d46e2f78ee7b8)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Tim Bird <tim.bird@am.sony.com>
CC: Thomas Frydrych <tf+lists.yocto@r-finger.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
CC: Paul Eggleton <paul.eggleton@linux.intel.com>
CC: Phil Blundell <philb@gnu.org>
CC: Khem Raj <raj.khem@gmail.com>
CC: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 04:05:17 +00:00
|
|
|
VIRTUAL-RUNTIME_init_manager = "tiny-init"
|
2012-01-03 16:18:35 +00:00
|
|
|
VIRTUAL-RUNTIME_keymaps = ""
|
|
|
|
|
|
|
|
# FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in
|
2012-09-03 10:44:57 +00:00
|
|
|
# packagegroup-core-base to select modutils-initscripts or not. Similar with "net" and
|
2012-01-03 16:18:35 +00:00
|
|
|
# netbase.
|
|
|
|
|
|
|
|
# By default we only support ext2 and initramfs. We don't build live as that
|
|
|
|
# pulls in a lot of dependencies for the live image and the installer, like
|
|
|
|
# udev, grub, etc. These pull in gettext, which fails to build with wide
|
|
|
|
# character support.
|
|
|
|
IMAGE_FSTYPES = "ext2 cpio.gz"
|
|
|
|
|
|
|
|
# Drop v86d from qemu dependency list (we support serial)
|
|
|
|
# Drop grub from meta-intel BSPs
|
|
|
|
# FIXME: A different mechanism is needed here. We could define -tiny
|
|
|
|
# variants of all compatible machines, but that leads to a lot
|
|
|
|
# more machine configs to maintain long term.
|
|
|
|
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = ""
|
2012-06-12 23:50:45 +00:00
|
|
|
|
|
|
|
# The mtrace script included by eglibc is a perl script. This means the system
|
|
|
|
# will build perl in case this package is installed. Since we don't care about
|
|
|
|
# this script for the purposes of tiny, remove the dependency from here.
|
|
|
|
RDEPENDS_${PN}-mtrace_pn-eglibc = ""
|
2012-12-10 09:07:59 +00:00
|
|
|
|
|
|
|
INHERIT += "blacklist"
|
|
|
|
PNBLACKLIST[build-appliance-image] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-base] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-basic] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-clutter] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-gtk-directfb] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-lsb] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-lsb-dev] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-lsb-sdk] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-rt] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-rt-sdk] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-sato] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-sato-dev] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-sato-sdk] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[core-image-x11] = "not buildable with poky-tiny"
|
|
|
|
PNBLACKLIST[qt4e-demo-image] = "not buildable with poky-tiny"
|