使用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的。实际上就把它做出来的东西当成一个光盘使用就好了。


问题

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


更多相关文章

  1. 【凯子哥带你学Framework】Activity界面显示全解析(下)
  2. ProxyDroid使用Eclipse(none maven)重新编译运行
  3. Android从底部弹出一个PopupWindow
  4. Android组件----1.文本TextView详解
  5. android编译系统 - findleaves.sh
  6. 【Android】 ImageView.ScaleType设置图解
  7. android html 与webview属性从冲突
  8. google Android编译本地C++程序方法
  9. 完整的android开发环境搭建和源代码编译过程

随机推荐

  1. 利用busybox制作android下的ramdisk启动
  2. 自定义TextView实现跑马灯
  3. android学习日记之intent与IPC
  4. TinyTask: 一个Android异步任务处理库
  5. Android----单元测试 (1)
  6. [HTML5]android远程调试工具chrome
  7. Android学习笔记,Notification通知事件
  8. Android精华笔记
  9. android中自定义的控件,使用自定义属性at
  10. Android(安卓)混淆代码总结 和 Android(