#@-------------------------------------------------------------------- #@TYPE: Distribution #@NAME: Angstrom #@DESCRIPTION: The Linux Distribution for Kernel 2.6 based devices #@MAINTAINER: Graeme 'XorA' Gregory #@MAINTAINER: Koen Kooi #@MAINTAINER: Philip 'Crofton' Balister #@-------------------------------------------------------------------- # We welcome bugreports sent to # angstrom-distro-devel@linuxtogo.org # # For more contact info please visit # http://www.angstrom-distribution.org/contact DISTRO_VERSION = "2011.03" DISTRO_REVISION = "4" DISTRO_PR = ".6" OLDEST_KERNEL ?= "2.6.16" 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" PREFERRED_PROVIDER_dbus-glib = "dbus-glib" PREFERRED_PROVIDER_hotplug = "udev" PREFERRED_PROVIDER_opkg ?= "opkg" 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" ANGSTROM_BLACKLIST_pn-bash-noemu = "doesn't work on the target" PREFERRED_PROVIDER_bash = "bash" ANGSTROMLIBC ?= "glibc" require conf/distro/include/angstrom.inc # Toolchain virtuals: require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc require conf/distro/include/arm-thumb.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 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)}' # 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"