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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
|
#@--------------------------------------------------------------------
#@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 = "2009.X-test-${DATE}"
DISTRO_REVISION = "3"
DISTRO_PR = ".4"
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}/"
#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
PREFERRED_VERSION_linux-libc-headers = "2.6.31"
#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"
PREFERRED_VERSION_uclibc-initial ?= "0.9.30"
# Preferred provider for virtual/psplash
# This enforces a specific brand to be used, in our case the angstrom
# one. In case you want to change the logo or something like that we
# suggest you to create another recipe (e.g: psplash-<brand>) for that
# and add that into your image.
# You can also opt to change or override this line, but that isn't
# needed because psplash is using update-alternatives.
PREFERRED_PROVIDER_virtual/psplash ?= "psplash-angstrom"
PREFERRED_PROVIDER_avahi = "avahi"
PREFERRED_PROVIDER_virtual/libusb0 ?= "libusb-compat"
PREFERRED_PROVIDER_virtual/gail ?= "gtk+"
PREFERRED_PROVIDER_libfribidi = "fribidi"
#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"
#avr32 only has support for gcc 4.2.2
ANGSTROM_GCC_VERSION_avr32 ?= "4.2.2"
#Everybody else can just use this:
ANGSTROM_GCC_VERSION ?= "4.3.3"
ANGSTROM_BINUTILS_VERSION ?= "2.18"
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
# hostap stuff, we prefer the in-kernel modules, but those don't work for all machines
PREFERRED_PROVIDER_hostap-conf ?= "hostap-conf"
PREFERRED_PROVIDER_hostap-modules_h2200 ?= "hostap-modules"
PREFERRED_PROVIDER_hostap-modules_hx4700 ?= "hostap-modules"
PREFERRED_PROVIDER_virtual/db ?= "db"
PREFERRED_PROVIDER_virtual/db-native ?= "db-native"
PREFERRED_PROVIDER_virtual/libsdl ?= "libsdl-x11"
PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
# Others:
PREFERRED_PROVIDER_dbus-glib = "dbus-glib"
PREFERRED_PROVIDER_esound ?= "pulseaudio"
PREFERRED_PROVIDER_gconf ?= "gconf"
PREFERRED_PROVIDER_gnome-vfs ?= "gnome-vfs"
PREFERRED_PROVIDER_gnome-vfs-plugin-file ?= "gnome-vfs"
PREFERRED_PROVIDER_tslib ?= "tslib"
PREFERRED_PROVIDER_tslib-conf ?= "tslib"
PREFERRED_PROVIDER_libgpewidget ?= "libgpewidget"
PREFERRED_PROVIDER_ntp ?= "ntp"
PREFERRED_PROVIDER_hotplug = "udev"
PREFERRED_PROVIDER_opkg ?= "opkg-nogpg"
PREFERRED_PROVIDER_libxss = "libxss"
PREFERRED_PROVIDER_bluez-utils-dbus = "bluez-utils"
PREFERRED_PROVIDER_bluez-libs = "bluez4"
PREFERRED_PROVIDER_bluez-utils = "bluez4"
PREFERRED_PROVIDER_util-linux = "util-linux-ng"
# The default is too old for linux-libc-headers-2.6.31:
PREFERRED_VERSION_mplayer = "0.0+1.0rc2+svnr29789"
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"
# we don't ship gtk-directfb by default
PREFERRED_PROVIDER_gtk+ ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-ani ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-bmpg ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-gif ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-ico ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-jpeg ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-pcx ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-png ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-pnm ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-ras ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-tga ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-wbmp ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-xbm ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-xpm ?= "gtk+"
# QT stuff:
# There are several flavours of qt4x11 in OE, so lets pick one that is buildable for everyone
PREFERRED_PROVIDER_qt4x11 ?= "qt4-x11-free"
#Silence a warning during parsing
PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap"
#This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
require conf/distro/include/angstrom${ARM_ABI}.inc
# 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 angstrom-version ${ANGSTROM_FEED_CONFIGS}"
# 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"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_xserver ?= "xserver-xorg"
# 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"
|