Add android-goldfish metadata to meta-extras

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3143 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Richard Purdie 2007-11-13 20:00:21 +00:00
parent 210caef864
commit fda2bb511e
6 changed files with 1318 additions and 0 deletions

View File

@ -0,0 +1,18 @@
#@TYPE: Machine
#@NAME: Android Machine setup
#@DESCRIPTION: Machine configuration for the Android platform
TARGET_ARCH = "arm"
PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te"
require conf/machine/include/qemu.inc
require conf/machine/include/tune-arm926ejs.inc
KERNEL_IMAGETYPE = "zImage"
IMAGE_FSTYPES = "tar.bz2 yaffs2"
EXTRA_IMAGECMD_yaffs2 = "0"
SERIAL_CONSOLE = "115200 ttyS0"
PREFERRED_PROVIDER_virtual/kernel = "linux-android-goldfish"

View File

@ -0,0 +1,16 @@
---
arch/arm/kernel/vmlinux.lds.S | 1 +
1 file changed, 1 insertion(+)
Index: linux-2.6.22/arch/arm/kernel/vmlinux.lds.S
===================================================================
--- linux-2.6.22.orig/arch/arm/kernel/vmlinux.lds.S 2007-09-11 18:32:29.000000000 +0200
+++ linux-2.6.22/arch/arm/kernel/vmlinux.lds.S 2007-09-11 18:33:42.000000000 +0200
@@ -94,6 +94,7 @@
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
+ *(.note.*)
#ifdef CONFIG_MMU
*(.fixup)
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,171 @@
DESCRIPTION = "2.6 Linux Android Kernel from Google"
SECTION = "kernel"
LICENSE = "GPL"
inherit kernel
PR = "r0"
SRC_URI = "http://android.googlecode.com/files/linux-2.6.23-android-m3-rc20.tar.gz \
file://binutils-buildid-arm.patch;patch=1 \
file://defconfig-android-goldfish"
S = "${WORKDIR}/kernel"
RPROVIDES_kernel-base += "hostap-modules"
DOSRC = "http://www.do13.de/openzaurus/patches"
RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
JLSRC = "http://www.cs.wisc.edu/~lenz/zaurus/files"
BASRC = "http://www.orca.cx/zaurus/patches"
CHSRC = "http://oz.drigon.com/patches"
TKSRC = "http://www.informatik.hu-berlin.de/~tkunze/zaurus/patches"
COMPATIBLE_HOST = "arm.*-linux"
COMPATIBLE_MACHINE = 'android'
KERNEL_CUSTOM_NAME ?= ""
KERNEL_DEPLOY_NAME ?= "${KERNEL_IMAGETYPE}-${PV}-${KERNEL_CUSTOM_NAME}${MACHINE}-${DATETIME}.bin"
KERNEL_SYMLINK_NAME ?= "${KERNEL_IMAGETYPE}-${KERNEL_CUSTOM_NAME}${MACHINE}.bin"
KERNEL_DEFCONFIG ?= "defconfig-${MACHINE}"
CMDLINE_CON = "console=ttyS0,115200n8 console=tty1 noinitrd"
CMDLINE_CON_collie = "console=ttySA0,115200n8 console=tty1 noinitrd"
CMDLINE_CON_qemuarm = "console=ttyAMA0,115200n8 console=tty1 noinitrd"
CMDLINE_CON_zylonite = "console=ttyS0,38400"
CMDLINE_ROOT ?= "root=/dev/mtdblock2 rootfstype=jffs2"
CMDLINE_ROOT_spitz ?= "root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw"
#CMDLINE_ROOT_spitz = "root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=3 rw"
CMDLINE_OTHER = "dyntick=enable"
CMDLINE_DEBUG = '${@base_contains("IMAGE_FEATURES", "debug-tweaks", "debug", "quiet", d)}'
##############################################################
# Configure memory/ramdisk split for collie
#
export mem = '${@bb.data.getVar("COLLIE_MEMORY_SIZE",d,1) or "32"}'
export rd = '${@bb.data.getVar("COLLIE_RAMDISK_SIZE",d,1) or "32"}'
CMDLINE_MEM_collie = "mem=${mem}M"
CMDLINE_MEM_zylonite = "mem=64M"
CMDLINE_ROTATE_spitz = "fbcon=rotate:1"
CMDLINE_ROTATE_akita = "fbcon=rotate:1"
CMDLINE_ROTATE_collie = "fbcon=rotate:1"
CMDLINE_ROTATE_poodle = "fbcon=rotate:1"
CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_MEM} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}"
do_configure() {
rm -f ${S}/.config
if [ "${MACHINE}" = "tosa" ]; then
gcc_version=`${KERNEL_CC} -dumpversion`
if [ "${gcc_version}" = "4.0.1" ] || [ "${gcc_version}" = "4.0.2" ]; then
die "tosa kernel wont work with gcc 4.0.x"
fi
fi
if [ ! -e ${WORKDIR}/${KERNEL_DEFCONFIG} ]; then
die "No default configuration for ${MACHINE} available."
fi
if [ "${MACHINE}" = "collie" ]; then
mempos=`echo "obase=16; $mem * 1024 * 1024" | bc`
rdsize=`echo "$rd * 1024" | bc`
total=`expr $mem + $rd`
addr=`echo "obase=16; ibase=16; C0000000 + $mempos" | bc`
if [ "$rd" = "0" ]
then
echo "No RAMDISK"
echo "# CONFIG_MTD_MTDRAM_SA1100 is not set" >> ${S}/.config
else
echo "RAMDIR = $rdsize on $addr"
echo "CONFIG_MTD_MTDRAM_SA1100=y" >> ${S}/.config
echo "CONFIG_MTDRAM_TOTAL_SIZE=$rdsize" >> ${S}/.config
echo "CONFIG_MTDRAM_ERASE_SIZE=1" >> ${S}/.config
echo "CONFIG_MTDRAM_ABS_POS=$addr" >> ${S}/.config
fi
fi
echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
echo "CONFIG_AEABI=y" >> ${S}/.config
echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
else
echo "# CONFIG_AEABI is not set" >> ${S}/.config
echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
fi
if [ "${DISTRO}" = "poky" -a "${MACHINE}" != "collie" ]; then
echo "CONFIG_LOGO=y" >> ${S}/.config
echo "CONFIG_LOGO_OHAND_CLUT224=y" >> ${S}/.config
echo "# CONFIG_LOGO_OZ240_CLUT224 is not set" >> ${S}/.config
echo "# CONFIG_LOGO_OZ480_CLUT224 is not set" >> ${S}/.config
echo "# CONFIG_LOGO_OZ640_CLUT224 is not set" >> ${S}/.config
echo "# CONFIG_LOGO_LINUX_CLUT224 is not set" >> ${S}/.config
else
echo "# CONFIG_LOGO is not set" >> ${S}/.config
echo "# CONFIG_LOGO_OHAND_CLUT224 is not set" >> ${S}/.config
echo "# CONFIG_LOGO_LINUX_CLUT224 is not set" >> ${S}/.config
echo "# CONFIG_LOGO_OZ240_CLUT224 is not set" >> ${S}/.config
echo "# CONFIG_LOGO_OZ480_CLUT224 is not set" >> ${S}/.config
echo "# CONFIG_LOGO_OZ640_CLUT224 is not set" >> ${S}/.config
fi
sed -e '/CONFIG_AEABI/d' \
-e '/CONFIG_OABI_COMPAT=/d' \
-e '/CONFIG_CMDLINE=/d' \
-e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
-e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
-e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
-e '/CONFIG_MTDRAM_ABS_POS=/d' \
-e '/CONFIG_LOGO=/d' \
-e '/CONFIG_LOGO_LINUX_CLUT224=/d' \
-e '/CONFIG_LOGO_OHAND_CLUT224=/d' \
-e '/CONFIG_LOGO_OZ240_CLUT224=/d' \
-e '/CONFIG_LOGO_OZ480_CLUT224=/d' \
-e '/CONFIG_LOGO_OZ640_CLUT224=/d' \
'${WORKDIR}/${KERNEL_DEFCONFIG}' >>'${S}/.config'
yes '' | oe_runmake oldconfig
}
# Check the kernel is below the 1264*1024 byte limit for the PXA Zaurii
do_compile_append() {
case ${MACHINE} in
c7x0 | akita | poodle | spitz | tosa )
size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
if [ $size -ge 1294336 ]; then
rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE}
echo "Size is $size"
die "This kernel is too big for your PXA Zaurus and will destroy data if you flash it. Please reduce the size of the kernel by making more of it modular."
fi
;;
collie )
size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
if [ $size -ge 1048576 ]; then
rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE}
echo "Size is $size"
die "This kernel is too big for your Collie and will not be flashed. Please reduce the size of the kernel by making more of it modular."
fi
;;
*)
;;
esac
}
do_deploy() {
install -d ${DEPLOY_DIR_IMAGE}
install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_DEPLOY_NAME}
cd ${DEPLOY_DIR_IMAGE}
ln -sf ${KERNEL_DEPLOY_NAME} ${KERNEL_SYMLINK_NAME}
#tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib
}
do_deploy[dirs] = "${S}"
addtask deploy before do_package after do_install
# wlan-ng stuff need compiled kernel sources
do_rm_work() {
}

View File

@ -0,0 +1,25 @@
LICENSE = "GPL"
DEPENDS = "zlib-native"
PV = "0.0-rc20"
PR = "r0"
SRC_URI = "http://android.googlecode.com/files/android-emulator-m3-rc20.tar.bz2 \
file://fixes.patch;patch=1"
S = "${WORKDIR}/android-emulator-20071111/qemu"
EXTRA_OECONF = "--disable-gfx-check --target-list=arm-softmmu --enable-nand --enable-skins --enable-trace --enable-shaper --use-sdl-config=${prefix}/hackedsdl/bin/sdl-config --disable-user --disable-kqemu --enable-sdl --static-png --static-sdl"
inherit autotools
inherit native
do_unfubar () {
chmod -R u+w ${WORKDIR}/
cd ${WORKDIR}/android-emulator-20071111/sdl
configure --prefix=${prefix}/hackedsdl
make
make install
}
addtask unfubar after do_unpack before do_patch

View File

@ -0,0 +1,45 @@
Index: qemu/linux-user/elfload.c
===================================================================
--- qemu.orig/linux-user/elfload.c 2007-11-12 06:58:42.000000000 +0000
+++ qemu/linux-user/elfload.c 2007-11-12 20:41:37.000000000 +0000
@@ -12,6 +12,10 @@
#include "qemu.h"
#include "disas.h"
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
/* this flag is uneffective under linux too, should be deleted */
#ifndef MAP_DENYWRITE
#define MAP_DENYWRITE 0
Index: qemu/linux-user/linuxload.c
===================================================================
--- qemu.orig/linux-user/linuxload.c 2007-11-12 06:58:42.000000000 +0000
+++ qemu/linux-user/linuxload.c 2007-11-12 20:35:16.000000000 +0000
@@ -12,6 +12,10 @@
#define NGROUPS 32
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
/* ??? This should really be somewhere else. */
void memcpy_to_target(target_ulong dest, const void *src,
unsigned long len)
Index: qemu/hw/qfb_fs.c
===================================================================
--- qemu.orig/hw/qfb_fs.c 2007-11-12 06:58:41.000000000 +0000
+++ qemu/hw/qfb_fs.c 2007-11-12 20:59:34.000000000 +0000
@@ -14,6 +14,10 @@
#include <sys/xattr.h>
#include <errno.h>
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
/* all mount paths */
static int next_path_index = 0;
static struct mount_path mount_paths[MAX_MOUNT_PATHS];