使用Android作为Guest系统跑在Qemu中
1、首先进行qemu-system-arm的编译
./configure --cross-prefix=arm-linux-gnueabi- \ --enable-kvm \ --enable-fdt \ --target-list=arm-softmmu \ --static
编译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"
此时host是一个kernel, Guest是Android~~~~~
最后的最后,一点心得
一开始的时候没有加上-initrd选项,qemu一直报错,无法识别mmc.bin的文件系统类型。
这个是很正常的。我把mmc.bin挂载了之后看过,里面一共有四个分区,boot的文件系统是VFat的其他是ext4的,能识别就怪了。。。。
查看了linaro-media-create的制作脚本,他本来就没有mkfs的。实际上就把它做出来的东西当成一个光盘使用就好了。
问题
求有没有大牛可以指导如何弄出界面来 =。=