summaryrefslogtreecommitdiff
path: root/conf/distro/angstrom-2008.1.conf
blob: e81808656a33b33a743ed6309d574d289217ff3a (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
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
#@--------------------------------------------------------------------
#@TYPE: Distribution
#@NAME: Angstrom <http://www.angstrom-distribution.org>
#@DESCRIPTION: The Linux Distribution for Kernel 2.6 based devices
#@MAINTAINER: Graeme 'XorA' Gregory <dp@xora.org.uk>
#@MAINTAINER: Koen Kooi <koen@openembedded.org>
#@MAINTAINER: Philip 'Crofton' Balister <philip@balister.org>
#@--------------------------------------------------------------------

# This is a aimed to be the next stable angstrom release. 
# If you want something stable *right now*, use angstrom-2008.1
# with the stable/2009 branch
#
# Use this at your own risk, we welcome bugreports sent to
#    angstrom-distro-devel@linuxtogo.org
#
# For more contact info please visit
#    http://www.angstrom-distribution.org/contact
#
# Again, in doubt, use DISTRO="angstrom-2008.1" with the 
# stable/2009 branch

#DISTRO_VERSION = "2009.X"
DISTRO_VERSION = "2010.7-test-${DATE}"
DISTRO_REVISION = "3"
DISTRO_PR = ".5"

OLDEST_KERNEL ?= "2.6.16"

#build staging from packages
INHERIT += "packaged-staging"

require conf/distro/include/sane-srcdates.inc
require conf/distro/include/sane-srcrevs.inc
require conf/distro/include/angstrom-2008-preferred-versions.inc
require conf/distro/include/preferred-opie-versions-1.2.4.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)}'


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

# Uncomment this to fetch packaged-staging packages from the central angstrom server
#PSTAGE_MIRROR = "${ANGSTROM_URI}/${FEED_BASEPATH}packaged-staging"

#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}"

#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"

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

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

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"

require conf/distro/include/angstrom.inc

# Set DISTRO_FEED_CONFIGS to our config var, assigned in the above .inc
DISTRO_FEED_CONFIGS = "${ANGSTROM_FEED_CONFIGS}"

# If we're using an .ipk based rootfs, we want to have opkg-nogpg 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-nogpg-nocurl angstrom-version ${ANGSTROM_FEED_CONFIGS}"

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

# 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)}'

# This hooks into task-base, so it won't do anything if your images doesn't include task-base.
# angstrom-version: ship this to have an identifiable rootfs so user can report bugs against a specific version
# ANGSTROM_FEED_CONFIGS: configfiles for the online feeds
# util-linux-ng-mount util-linux-ng-umount: busybox mount is broken
# angstrom-libc-fixup-hack: fixes an obscure bug with libc.so symlink
DISTRO_EXTRA_RDEPENDS += "\
    angstrom-version \
    ${ANGSTROM_FEED_CONFIGS} \
    util-linux-ng-mount util-linux-ng-umount \
    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-angstrom", "",d)}'
ARM_INSTRUCTION_SET_pn-uclibc = "arm"
ARM_INSTRUCTION_SET_pn-uclibc-initial = "arm"