2014-01-22 7 views
6

Lassen Sie mich zuerst sagen, dass ich auf MAC mit OS X 10.7.5 arbeite. Ich versuche, Goldfish 3.4 Kernel zu kompilieren und es auf Emulator auszuführen. Es kompiliert in Ordnung, aber wenn ich es starte, öffnet sich der Emulator und friert ein. Wenn ich ein "Top" mache, kann ich sehen, dass der Emulator wie verrückt läuft, aber nichts erscheint auf dem Bildschirm. Hier ist, wie ich den Kernel kompiliertWie man android goldfish 3.4 Kernel kompiliert und auf Emulator läuft

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- 

Dann laufe ich den Emulator über

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

ist hier der letzte Teil des Debug-Ausgabe vom Laufen des Emulators

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 

Der Ausgang nur friert hier ein. Kennt jemand die Schritte, 3.4 Goldfish Kernel zu bauen.

Antwort

10

Das Ziel "goldfish_defconfig" konfiguriert den Kernel für einen ARM 926, aber jetzt ist der Emulator so konfiguriert, dass er auf Cortex A8 läuft, welches eine armv7-Architektur ist. Sie sollten stattdessen "goldfish_armv7_defconfig" verwenden.

Gehen Sie wie folgt vor, um einen 3.4-Kernel für Emulator zu bauen

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- 

Dieses eine 3.4 Kernel bauen sollte, die Sie dann wie folgt ausführen kann

(I Verzeichnisstruktur gehe davon aus Standard-sdk ramdisk.img hat)
./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 

Probieren sie dies aus und lassen sie uns

+2

super-weiß .. es wie ein Charme. Vielen Dank – user3208671