设为首页 加入收藏

TOP

在Qemu的beagleboard上运行Android
2014-11-24 12:25:57 来源: 作者: 【 】 浏览:0
Tags:Qemu beagleboard 运行 Android

相关阅读:


主要工作是制作一个qemu-system-arm可以识别的模拟sd卡文件。


在上一篇文章中我们已经分析了 linaro-media-create所创建的img文件,当时也考虑了可以将创建的img文件loop回到/dev/loopx上,然后修改这个img文件,让它包含启动Android需要的文件。不过整个过程比较麻烦。


在网上看了一下,发现Linaro项目中就有一个linaro-anroid-media-create工具可以用于创建Android的模拟sd卡,测试一下发现之前安装qemu-system的时候已经安装了linaro-anroid-media-create 工具,使用方式如下:


linaro-anroid-media-create --dev $BOARD --image-file ./myandroid.img --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2


对应BeagleBoard的命令就是:


linaro-anroid-media-create --dev beagle --image-file ./myandroid.img --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2


剩下的问题就是找的BeagleBoard对应的boot.tar.bz2 , system.tar.bz2 , userdata.tar.bz2这三个文件了。


这三个文件在Linaro项目网站上可以下载,链接如下:http://releases.linaro.org/platform/linaro-n/android/11.09/beaglexm/


下载了以上三个文件,然后执行linaro-anroid-media-create命令生成myandroid.img文件,再通过以下命令通过qemu-system-arm启动这个系统


sudo qemu-system-arm -M beaglexm -m 512 -sd ./myandroid.img -clock unix -serial stdio


然后就可以看到qemu启动,本来满心欢喜地等待Android的启动,没想到系统启动过程出错,跑到booting the kernel的时候报如下错误:


Uncompressing Linux... done, booting the kernel.
omap2_inth_read: Bad register 0x00000020


看错误的话MLO和u-boot.bin都没有问题,应该是linux kernel有问题,于是将myandroid.img文件的第一个分区loop回来,命令如下:


sudo mount -o loop,offset=$[63*512] ./myandroid.img ./mountpoint


然后删除了uImage文件,拷贝了一个之前为BeagleBoard编译Android的时候做好的uImage文件,再次启动。


这次启动成功了,看到了Android小机器人,adb也启动了,不过后面的界面就跑不起来了。查看了一下错误,可能是qemu上的模拟BeagleBoard没办法模拟HDMI的原因。于是没有细究,毕竟咱不是用这个来调试Android上的应用的,需要调试Android应用的话就直接用Android SDK上的模拟器了,有意思的是Android SDK上的Android模拟器其实也是基于qemu模拟器的。


下面是运行截图:


在Qemu的beagleboard上运行Android


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux 内核定时器 timer_list详解 下一篇Java 中Long与long引起的bug

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)