conf/layer.conf: Update LAYERSERIES_COMPAT to warrior
[meta-ossystems-base.git] / conf / distro / oel-tiny.conf
1 # Distribution definition for: oel-tiny
2 #
3 # Copyright (c) 2011, Intel Corporation.
4 # Copyright (c) 2016, 2017 O.S. Systems Software LTDA.
5 # All rights reserved.
6 #
7 # This file is released under the MIT license as described in
8 # ../meta/COPYING.MIT.
9 #
10 # oel-tiny is intended to define a tiny Linux system comprised of a
11 # Linux kernel tailored to support each specific MACHINE and busybox.
12 # oel-tiny sets some basic policy to ensure a usable system while still
13 # keeping the rootfs and kernel image as small as possible.
14 #
15 # The policies defined are intended to meet the following goals:
16 # o Serial consoles only (no framebuffer or VGA console)
17 # o Basic support for IPV4 networking
18 # o Single user ash shell
19 # o Static images (no support for adding packages or libraries later)
20 # o Read-only or RAMFS root filesystem
21 # o Combined Linux kernel + rootfs in under 4MB
22 # o Allow the user to select between eglibc or uclibc with the TCLIBC variable
23 #
24 # This is currently a partial definition, the following tasks remain:
25 # [ ] Integrate linux-yocto-tiny ktype into linux-yocto
26 # [ ] Define linux-yocto-tiny configs for all supported BSPs
27 # [ ] Drop ldconfig from the installation
28 # [ ] Modify the runqemu scripts to work with ext2 parameter:
29 #     runqemu qemux86 qemuparams="-nographic" bootparams="console=ttyS0,115200 root=0800"
30 # [ ] Modify busybox to allow for DISTRO_FEATURES-like confiruration
31
32 require conf/distro/include/oel.inc
33
34 DISTRO = "oel-tiny"
35 DISTRO_NAME = "O.S. Systems Embedded Linux Tiny"
36
37 TCLIBC = "musl"
38 DISTROOVERRIDES = "oel:oel-tiny"
39 # FIXME: consider adding a new "tiny" feature
40 #DISTRO_FEATURES_append = " tiny"
41
42 # Distro config is evaluated after the machine config, so we have to explicitly
43 # set the kernel provider to override a machine config.
44 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto-tiny"
45 PREFERRED_VERSION_linux-yocto-tiny ?= "4.9%"
46
47 # We can use packagegroup-core-boot, but in the future we may need a new packagegroup-core-tiny
48 #OEL_TINY_DEFAULT_EXTRA_RDEPENDS += "packagegroup-core-boot"
49 # Drop kernel-module-af-packet from RRECOMMENDS
50 OEL_TINY_DEFAULT_EXTRA_RRECOMMENDS = ""
51
52 # FIXME: what should we do with this?
53 TCLIBCAPPEND = ""
54
55 # Disable wide char support for ncurses as we don't include it in
56 # in the LIBC features below.
57 # Leave native enable to avoid build failures
58 ENABLE_WIDEC = "false"
59 ENABLE_WIDEC_class-native = "true"
60
61 # Drop native language support. This removes the
62 # eglibc->bash->gettext->libc-posix-clang-wchar dependency.
63 USE_NLS="no"
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
68 DISTRO_FEATURES_TINY = "pci"
69 DISTRO_FEATURES_NET = "ipv4 ipv6"
70 DISTRO_FEATURES_USB = "usbhost"
71 #DISTRO_FEATURES_USBGADGET = "usbgadget"
72 #DISTRO_FEATURES_WIFI = "wifi"
73
74 DISTRO_FEATURES = " \
75     ${DISTRO_FEATURES_TINY} \
76     ${DISTRO_FEATURES_NET} \
77     ${DISTRO_FEATURES_USB} \
78     ${DISTRO_FEATURES_USBGADGET} \
79     ${DISTRO_FEATURES_WIFI} \
80 "
81
82 # Enable LFS - see bug YOCTO #5865
83 DISTRO_FEATURES_append_libc-uclibc = " largefile"
84 DISTRO_FEATURES_append_libc-musl = " largefile"
85
86 DISTRO_FEATURES_class-native = "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${OEL_DEFAULT_DISTRO_FEATURES}"
87 DISTRO_FEATURES_class-nativesdk = "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${OEL_DEFAULT_DISTRO_FEATURES}"
88
89 # Use tmpdevfs and the busybox runtime services
90 VIRTUAL-RUNTIME_dev_manager = ""
91 VIRTUAL-RUNTIME_login_manager = ""
92 VIRTUAL-RUNTIME_init_manager = "tiny-init-system"
93 VIRTUAL-RUNTIME_keymaps = ""
94
95 # FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in
96 # packagegroup-core-base to select modutils-initscripts or not.  Similar with "net" and
97 # netbase.
98
99 # By default we only support initramfs. We don't build live as that
100 # pulls in a lot of dependencies for the live image and the installer, like
101 # udev, grub, etc.  These pull in gettext, which fails to build with wide
102 # character support.
103 IMAGE_FSTYPES ??= "cpio.gz"
104
105 QB_DEFAULT_FSTYPE = "${IMAGE_FSTYPES}"
106
107 # Drop v86d from qemu dependency list (we support serial)
108 # Drop grub from meta-intel BSPs
109 # FIXME: A different mechanism is needed here. We could define -tiny
110 #        variants of all compatible machines, but that leads to a lot
111 #        more machine configs to maintain long term.
112 MACHINE_ESSENTIAL_EXTRA_RDEPENDS = ""
113
114 # The mtrace script included by eglibc is a perl script. This means the system
115 # will build perl in case this package is installed. Since we don't care about
116 # this script for the purposes of tiny, remove the dependency from here.
117 RDEPENDS_${PN}-mtrace_pn-eglibc = ""
118
119 PNBLACKLIST[build-appliance-image] = "not buildable with oel-tiny"
120 PNBLACKLIST[core-image-base] = "not buildable with oel-tiny"
121 PNBLACKLIST[core-image-clutter] = "not buildable with oel-tiny"
122 PNBLACKLIST[core-image-full-cmdline] = "not buildable with oel-tiny"
123 PNBLACKLIST[core-image-lsb] = "not buildable with oel-tiny"
124 PNBLACKLIST[core-image-lsb-dev] = "not buildable with oel-tiny"
125 PNBLACKLIST[core-image-lsb-sdk] = "not buildable with oel-tiny"
126 PNBLACKLIST[core-image-rt] = "not buildable with oel-tiny"
127 PNBLACKLIST[core-image-rt-sdk] = "not buildable with oel-tiny"
128 PNBLACKLIST[core-image-sato] = "not buildable with oel-tiny"
129 PNBLACKLIST[core-image-sato-dev] = "not buildable with oel-tiny"
130 PNBLACKLIST[core-image-sato-sdk] = "not buildable with oel-tiny"
131 PNBLACKLIST[core-image-x11] = "not buildable with oel-tiny"
132 PNBLACKLIST[core-image-weston] = "not buildable with oel-tiny"
133
134 # Disable python usage in opkg-utils since it won't build with tiny config
135 PACKAGECONFIG_remove_pn-opkg-utils = "python"