aboutsummaryrefslogtreecommitdiff
path: root/conf/distro/kaeilos.conf
blob: b4b20b4af92974bdf2dc258d5692d1de7f8c4258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#@--------------------------------------------------------------------
#@TYPE: Distribution
#@NAME: KaeilOS(R) - http://www.kaeilos.com
#@DESCRIPTION: KaeilOS Linux Distribution for Kernel 2.6 based devices
#              This version is strictly conformed to Angstrom 
#@MAINTAINER: Marco Cavallini <m.cavallini@koansoftware.com>
#@VERSION: 13-07-2011
#
# KaeilOS is a registered trade mark of KOAN - Bergamo - Italia
# Use this at your own risk, we welcome bugreports filed at 
# Product website : http://www.KaeilOS.com
#@--------------------------------------------------------------------

DISTRO_VERSION = "2011.3-${DATE}"
DISTRO_REVISION = "3"
DISTRO_PR = ".8"

OLDEST_KERNEL ?= "2.6.16"

require conf/distro/include/kaeilos-2009-preferred-versions.inc
require conf/distro/include/preferred-opie-versions-1.2.5.inc

#Images built can have to modes:
# 'debug': empty rootpassword, strace included
# 'release' no root password, no strace and gdb by default
DISTRO_TYPE ?= "debug"
#DISTRO_TYPE = "release"

# Set the toolchain type (internal, external) and brand (generic, csl etc.)
TOOLCHAIN_TYPE ?= "internal"
TOOLCHAIN_BRAND ?= ""

# Ship just basic locale by default. Locales are big (~1Mb uncompr.), so
# shipping some adhoc subset will be still useless and size burden for
# users of all other languages/countries. Instead, worth to make it easy
# to install additional languages: installer/wizard + metapackages which
# will RRECOMMEND as much as possible content for a given language
# (locales, UI transalations, help, etc. - useless for pros, but really 
# helpful for common users).
# Also, it appears that no locales fit in 16Mb for now. "C" locale rules!
IMAGE_LINGUAS = '${@base_less_or_equal("ROOT_FLASH_SIZE", "16", "", "en-us", d)}'

# increase inode/block ratio for ext2 filesystem 
EXTRA_IMAGECMD_ext2 = "-i 4096"

# set feed path variables
FEED_BASEPATH = "feeds/unstable/${ANGSTROM_PKG_FORMAT}/${LIBC}/"


#The angstrom-mirrors.bbclass should have everything, but we can use this as a fallback
CVS_TARBALL_STASH ?= "\
		     http://www.angstrom-distribution.org/unstable/sources/ \
		    "


#Make sure we use 2.6 on machines with a 2.4/2.6 selector
KERNEL = "kernel26"
MACHINE_KERNEL_VERSION = "2.6"
PCMCIA_MANAGER = "pcmciautils"

#Preferred version for the kernel on various machines
PREFERRED_VERSION_linux-handhelds-2.6 ?= "2.6.21-hh20"

#Initramfs for kernels
#KERNEL_INITRAMFS_DIR = "${TMPDIR}/deploy/uclibc/images/${MACHINE}/"
#KERNEL_INITRAMFS_PATH = "${KERNEL_INITRAMFS_DIR}/$(readlink ${KERNEL_INITRAMFS_DIR}initramfs-bootmenu-image-${MACHINE}.cpio.gz)"

#This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against
LINUX_LIBC_HEADERS_VERSION ?= "2.6.31"
PREFERRED_VERSION_linux-libc-headers = "${LINUX_LIBC_HEADERS_VERSION}"
PREFERRED_VERSION_linux-libc-headers-native = "${LINUX_LIBC_HEADERS_VERSION}"

# see into glibc-package.bbclass : added KaeilOS hack supporting glibc 2.9
#Prefer glibc 2.6 and uclibc 0.9.30, these have had the most testing.
PREFERRED_VERSION_glibc 			?= "2.9"
PREFERRED_VERSION_glibc-initial 	?= "2.9"
PREFERRED_VERSION_uclibc        	?= "0.9.30.2"
PREFERRED_VERSION_uclibc-initial	?= "0.9.30.2"
PREFERRED_VERSION_eglibc			?= "2.9"
PREFERRED_VERSION_eglibc-initial	?= "2.9"

#powerpc needs additional patches to gcc
ANGSTROM_GCC_VERSION_ppc405 		?= "4.1.1"
ANGSTROM_GCC_VERSION_xilinx-ml403	?= "4.1.1"
ANGSTROM_GCC_VERSION_xilinx-ml403	?= "4.1.1"

# Blackfin has its on gcc
ANGSTROM_GCC_VERSION_bfin			= "4.1.2"

# Uncomment this if want need to build an armv7a kernel with CSL toolchain (<2.6.27 don't boot with mainline gcc)
#KERNEL_CCSUFFIX_armv7a = "-4.2.1+csl-arm-2007q3-53"
KERNEL_CCSUFFIX_archos5 = "-4.2.1+csl-arm-2007q3-53"
KERNEL_CCSUFFIX_archos5it = "-4.2.1+csl-arm-2007q3-53"

#avr32 only has support for gcc 4.2.2
ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"

#armv4 needs at least gcc 4.4.2 for eabi
ANGSTROM_GCC_VERSION_armv4              ?= "4.4.2"

#Everybody else can just use this: 
ANGSTROM_GCC_VERSION                     ?= "4.3.3"

ANGSTROM_BINUTILS_VERSION                ?= "2.18"
ANGSTROM_BINUTILS_VERSION_armv4          ?= "2.20"
ANGSTROM_BINUTILS_VERSION_armv7a         ?= "2.18.50.0.7"

PREFERRED_VERSION_binutils               ?= "${ANGSTROM_BINUTILS_VERSION}"
PREFERRED_VERSION_binutils-cross         ?= "${ANGSTROM_BINUTILS_VERSION}"
PREFERRED_VERSION_binutils-cross-sdk     ?= "${ANGSTROM_BINUTILS_VERSION}"

PREFERRED_VERSION_gcc                    ?= "${ANGSTROM_GCC_VERSION}"
PREFERRED_VERSION_gcc-cross              ?= "${ANGSTROM_GCC_VERSION}"
PREFERRED_VERSION_gcc-cross-sdk          ?= "${ANGSTROM_GCC_VERSION}"
PREFERRED_VERSION_gcc-cross-initial      ?= "${ANGSTROM_GCC_VERSION}"
PREFERRED_VERSION_gcc-cross-intermediate ?= "${ANGSTROM_GCC_VERSION}"

#avr32 only has patches for binutils 2.17 in OE
PREFERRED_VERSION_binutils_avr32 = "2.17"
PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"

PREFERRED_PROVIDER_dbus-glib             = "dbus-glib"
PREFERRED_PROVIDER_hotplug               = "udev"
PREFERRED_PROVIDER_opkg                 ?= "opkg"

# see recipes/bluez/bluez4*.bb for further dependencies of this setting 
ANGSTROM_BLACKLIST_pn-bluez-libs	= "bluez-libs 3.x has been replaced by bluez4"
ANGSTROM_BLACKLIST_pn-bluez-utils	= "bluez-utils 3.x has been replaced by bluez4"

ANGSTROM_BLACKLIST_pn-fso-apm       = "regular apmd is good enough"

ANGSTROM_BLACKLIST_pn-ipkg			= "ipkg has been superseded by opkg"

ANGSTROMLIBC ?= "glibc"

require conf/distro/include/kaeilos.inc

# Toolchain virtuals:
require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
require conf/distro/include/arm-thumb.inc

# If we're using an .ipk based rootfs, we want to have opkg installed so postinst script can run
# We also take this opportunity to inject angstrom-version and the feed configs into the rootfs
IPKG_VARIANT = "opkg angstrom-version ${ANGSTROM_FEED_CONFIGS}"

# we need the same provider for opkg and u-a
PREFERRED_PROVIDER_virtual/update-alternatives = "opkg"

# Select xserver-xorg as default, since kdrive has been EOL'ed
XSERVER ?= "xserver-xorg xf86-input-evdev xf86-input-keyboard xf86-input-mouse xf86-video-fbdev" 

# do some task-base stuff here

# Prefer bluez4, it's needed for things like connman. Bluez4 is also largely backward compatible with
# bluez 3.x
DISTRO_BLUETOOTH_MANAGER = "\
	blueprobe \
	bluez4 \
   "

# We want to ship extra debug utils in the rootfs when doing a debug build 
DEBUG_APPS ?= ""
DEBUG_APPS += '${@base_conditional("DISTRO_TYPE", "release", "", "strace procps",d)}'

# KaeilOS want to ship some extra stuff. This should be moved into task-base eventually
# contains ipkg specific stuff as well :(
DISTRO_EXTRA_RDEPENDS += "\
    update-modules \
    kaeilos-version \
    opkg opkg-collateral ${ANGSTROM_FEED_CONFIGS} \
    util-linux-ng-mount util-linux-ng-umount \
    ${DEBUG_APPS} angstrom-libc-fixup-hack \
    "

# This also hooks into task-base, but isn't mandatory.
# If you don't want parts of this in your task-base using images you can put this in the image recipe:
# BAD_RECOMMENDATIONS = "avahi-daemon avahi-autoipd"
# Note that BAD_RECOMMENDATIONS is a feature of rootfs_ipk.bbclass, not angstrom
# kernel modules: ship fs modules so you can mount stuff and af-packet so networking works
# avahi: makes finding your device on the network a lot easier
# openssh-sftp-server: provides sftp which combined with avahi makes it real easy to use things like sshfs
# psplash-angstrom: angstrom branded psplash, you can add your own psplash-foo to an image, it uses update-alternatives
# DEBUG_APPS: ship strace and procpc to make simple debugging a lot easier
DISTRO_EXTRA_RRECOMMENDS += " \
    kernel-module-vfat \
    kernel-module-ext2 \
    kernel-module-ext3 \
    kernel-module-af-packet \
    avahi-daemon \
    avahi-autoipd \
    openssh-sftp-server \
    ${DEBUG_APPS} \
"

SPLASH ?= ' ${@base_contains("MACHINE_FEATURES", "screen", "psplash-kaeilos", "",d)}'
ARM_INSTRUCTION_SET_pn-uclibc = "arm"
ARM_INSTRUCTION_SET_pn-uclibc-initial = "arm"