2014-01-22 65 views
6

首先讓我告訴你,我正在使用OS X 10.7.5的MAC。我正在編譯Goldfish 3.4內核並在仿真器上運行它。它編譯好,但是當我運行它時,模擬器打開並凍結。當我做一個「頂級」時,我可以看到模擬器瘋狂地運行,但屏幕上沒有任何東西出現。這裏是我編譯內核如何編譯android金魚3.4內核並在仿真器上運行

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- 

然後我通過

./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 

這裏運行模擬器調試輸出的最後一部分運行模擬器

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 

輸出只凍結在這裏。有人知道建立3.4金魚內核的步驟嗎?

回答

10

目標「goldfish_defconfig」爲ARM 926配置內核,但現在仿真器配置爲在armv7架構的cortex A8上運行。您應該使用「goldfish_armv7_defconfig」。

按照以下步驟建立一個3.4內核仿真器

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- 

這應該建立一個3.4的內核,然後可以這樣運行了(我假設你的目錄結構已經默認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 

試試這個,讓我們知道

+2

超級..它的工作就像一個魅力。謝謝 – user3208671