基于Cortex-a15的模拟环境搭建——Guest Android

使用Android作为Guest系统跑在Qemu中

1、首先进行qemu-system-arm的编译

./configure --cross-prefix=arm-linux-gnueabi- \
--enable-kvm \
--enable-fdt \
--target-list=arm-softmmu \
--static

当然,首先要确定你的系统里面有相关的交叉编译的工具。zlib之类的。其次,这样编译出来的qemu-system-arm是无法显示图形化界面的。图形化界面的显示需要依赖于SDL函数库。

编译Configure的时候qemu会显示出相关选项让你--enable-sdl但是,我在编译的时候一直都是显示 cann't find sdl。 Google之,大家都是说要一个libsdl1.2-dev,注意这个是Debian/Ubuntu下的要求。但是我的已经是有了这个库的。。。莫名其妙的就是无法打开这个配置。

2、将编译好的qemu-system-arm拷贝到nfsroot/root下面

3、根据

https://wiki.linaro.org/Platform/Android/AndroidOnFastModels

准备所需要的Android的kernel、以及文件系统。当然,最后是一个已经做好的启动盘mmc.bin

这个Android是linaro已经优化了的,当然。。你可以自己去repo源代码然后编译

4、启动Host系统。telnet之,仅仅是为了可以复制粘贴命令~=,=

5、将产生的mmc.bin以及解压的boot文件夹中的

Initrd和zImagewithDT cp到/srv/nfsroot/root下

6、启动Guest系统

./qemu-system-arm \
-enable-kvm \
-kernel zImagewithDT \
-sd mmc.bin \
-initrd boot/Initrd \
-m 512 -M vexpress-a15 -cpu cortex-a15 -nographic \
-append "console=ttyAMA0 mem=512M init=/init"

等。很长时间。真的很长。。。然后出现root@android,就是进去了。不过。。很卡很卡很卡很卡很卡。

此时host是一个kernel, Guest是Android~~~~~

基于Cortex-a15的模拟环境搭建——Guest Android_第1张图片



最后的最后,一点心得

一开始的时候没有加上-initrd选项,qemu一直报错,无法识别mmc.bin的文件系统类型。

这个是很正常的。我把mmc.bin挂载了之后看过,里面一共有四个分区,boot的文件系统是VFat的其他是ext4的,能识别就怪了。。。。

查看了linaro-media-create的制作脚本,他本来就没有mkfs的。实际上就把它做出来的东西当成一个光盘使用就好了。


问题

求有没有大牛可以指导如何弄出界面来 =。=


你可能感兴趣的:(qemu,kvm,qemu,kvm)