samedi 6 juin 2015

[android] Building the android kernel for the x86_64 emulator

See previous post for more details: Here

my avd is Nexus_5_API_22
export my_avd=Nexus_5_API_22
What is the version of linux running on the x86_64 emulator ?
adb shell dmesg| grep "Linux version"

<5>[    0.000000] Linux version 3.10.0+ (tic@debian) (gcc version 4.9.2 (Debian 4.9.2-10) ) #2 PREEMPT Fri Jun 5 15:07:50 CEST 2015
Oh it's a more recent one than the i386 version!
git checkout remotes/origin/android-goldfish-3.10 -b emu_x86_64
ls arch/x86/configs
i386_defconfig      i386_ranchu_defconfig  x86_64_emu_defconfig
i386_emu_defconfig  x86_64_defconfig       x86_64_ranchu_defconfig
There are more config than before, great it means it is actively developped :)

Ranchu is the successor of goldfish, based on a more resent version of qemu. Linaro team is working on it, It should replace Goldfish in due time. (It even support the android arm64 platform :) )

But for now the emulator which ships with android is goldfish so let's stay with that.
ARCH=x86_64
make x86_64_emu_defconfig
make -j`nproc`
Give it a try:
emulator -kernel arch/x86/bzImage -avd $my_avd -qemu -enable-kvm
I couldn't get it to work with this exact commandline, so I used
emulator64-x86 -kernel arch/x86/boot/bzImage -avd $my_avd -gpu off -qemu --enable-kvm 
That's all! Now developp you own modules ;)

Aucun commentaire:

Enregistrer un commentaire