基于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~~~~~
最后的最后,一点心得
一开始的时候没有加上-initrd选项,qemu一直报错,无法识别mmc.bin的文件系统类型。
这个是很正常的。我把mmc.bin挂载了之后看过,里面一共有四个分区,boot的文件系统是VFat的其他是ext4的,能识别就怪了。。。。
查看了linaro-media-create的制作脚本,他本来就没有mkfs的。实际上就把它做出来的东西当成一个光盘使用就好了。
问题
求有没有大牛可以指导如何弄出界面来 =。=
更多相关文章
- 【凯子哥带你学Framework】Activity界面显示全解析(下)
- ProxyDroid使用Eclipse(none maven)重新编译运行
- Android从底部弹出一个PopupWindow
- Android组件----1.文本TextView详解
- android编译系统 - findleaves.sh
- 【Android】 ImageView.ScaleType设置图解
- android html 与webview属性从冲突
- google Android编译本地C++程序方法
- 完整的android开发环境搭建和源代码编译过程