How to compile android goldfish 3.4 kernel and run on emulator

12,756

The target "goldfish_defconfig" configures the kernel for an ARM 926 but the now the emulator is configured to run on cortex A8 which is a armv7 architecture. You should use "goldfish_armv7_defconfig" instead.

Follow these steps to build a 3.4 kernel for emulator

git clone https://android.googlesource.com/kernel/goldfish.git
git checkout -t origin/android-goldfish-3.4 -b goldfish3.4

make ARCH=arm goldfish_armv7_defconfig
make ARCH=arm SUBARCH=arm CROSS_COMPILE=/Volumes/androidSpace/android_work/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin/arm-eabi-

This should build a 3.4 kernel which you can then run like this (I am assuming your directory structure has default sdk ramdisk.img)

./emulator -debug init -kernel /Volumes/androidSpace/goldfish/goldfish/arch/arm/boot/zImage -system /Volumes/androidSpace/android_work/out/target/product/generic/system.img -ramdisk /Volumes/androidSpace/android_work/out/target/product/generic/ramdisk.img -avd firstAvd -wipe-data

Try this out and let us know

Share:
12,756

Related videos on Youtube

user3208671
Author by

user3208671

Updated on October 23, 2022

Comments

  • user3208671
    user3208671 over 1 year

    First let me tell you that I am working on MAC with OS X 10.7.5. I am trying to compile Goldfish 3.4 kernel and run it on emulator. It compiles alright but when I run it the emulator opens and freezes. When I do a "top", I can see the emulator running like crazy but nothing turns up on the screen. Here is how I compiled the kernel

    git clone https://android.googlesource.com/kernel/goldfish.git
    git checkout -t origin/android-goldfish-3.4 -b goldfish3.4
    make ARCH=arm goldfish_defconfig
    make ARCH=arm SUBARCH=arm CROSS_COMPILE=/Volumes/androidSpace/android_work/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin/arm-eabi-
    

    Then I run the emulator via

    ./emulator -debug init -kernel /Volumes/androidSpace/goldfish/goldfish/arch/arm/boot/zImage -system /Volumes/androidSpace/android_work/out/target/product/generic/system.img -ramdisk /Volumes/androidSpace/android_work/out/target/product/generic/ramdisk.img -avd firstAvd -wipe-data
    

    Here is the last part of the debug output from running the emulator

    QEMU options list:
    emulator: argv[00] = "./emulator64-arm"
    emulator: argv[01] = "-android-hw"
    emulator: argv[02] = "/Users/deathwillarrive/.android/avd/firstAvd.avd/hardware-qemu.ini"
    Concatenated QEMU options:
    ./emulator64-arm -android-hw /Users/deathwillarrive/.android/avd/firstAvd.avd/hardware-qemu.ini
    emulator: registered 'boot-properties' qemud service
    emulator: nand_add_dev: system,size=0x22600000,initfile=/Volumes/androidSpace/android_work/out/target/product/generic/system.img,pagesize=512,extrasize=0
    emulator: mapping 'system' NAND image to /tmp/android-deathwillarrive/emulator-2Wyv0t
    emulator: nand_add_dev: userdata,size=0xc800000,file=/Users/deathwillarrive/.android/avd/firstAvd.avd/userdata-qemu.img,initfile=/Users/deathwillarrive/.android/avd/firstAvd.avd/userdata.img,pagesize=512,extrasize=0
    emulator: registered 'boot-properties' qemud service
    emulator: Adding boot property: 'dalvik.vm.heapsize' = '64m'
    emulator: Adding boot property: 'qemu.sf.lcd_density' = '320'
    emulator: Adding boot property: 'qemu.hw.mainkeys' = '0'
    emulator: Adding boot property: 'qemu.sf.fake_camera' = 'none'
    emulator: nand_add_dev: cache,size=0x4200000,file=/Users/deathwillarrive/.android/avd/firstAvd.avd/cache.img,pagesize=512,extrasize=0
    emulator: Initializing hardware OpenGLES emulation support
    emulator: Kernel parameters: qemu.gles=0 qemu=1 console=ttyS0 android.qemud=ttyS1 android.checkjni=1 ndns=1
    emulator: Trace file name is not set
    
    emulator: autoconfig: -scale 0.583594
    emulator: Could not open file: (null)/system/build.prop: No such file or directory
    emulator: control console listening on port 5554, ADB on port 5555
    emulator: sent '0012host:emulator:5555' to ADB server
    emulator: ping program: /Volumes/androidSpace/android_work/out/host/darwin-x86/bin/./DDSs
    

    The output just freezes here. Does anybody know the steps to build 3.4 goldfish kernel.