免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3014 | 回复: 1
打印 上一主题 下一主题

Google Android操作系统成功移植摩托E680 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-03 12:24 |只看该作者 |倒序浏览

                1.引言
如今越来越多的Google Android爱好者们开始移植Android系统到现有掌上设备上。最早的成功移植
Android系统是在Zaurus上,然后是在OMAP芯片组基础上的N810。
有些开发者将Android运行在来PXA270的开发板上。我们知道,摩托罗拉 MOTO E680系列
EZX 手机使用intel XScal-PXA270 应用芯片处理器,同时使用Linux 2.4.20 kernel。在经过一些研
究之后,我们认为E680完全满足移植Android系统的条件。
2.移植Android到E680
事实上,移植Android系统就是移植Google ndroid kernel到目标装置上,同时让Android root文件系统
和android kernel一同在目标系统上工作。Google在Android SDK中提供了二进制的Android root file
system文件系统以及android kernel的源。因此我们可以轻易的从Android SDK中提取出Android root文
件系统,但是我们要考虑怎样将Android kernel移植到我们的E680上面去。
这里有两种方法移植Android系统到E680上。
a)将所有的Android固件整体移植到E680上
b)将E680的kernel升级到2.6.x,然后再装入Android固件。
显而易见的是,方法a要花更多的力气,因为E680的kernel是2.4.20,而Android的Kernel是基于2.6.23
的。
如果我们选择方法b,那么我们需要先升级E680的kernel到2.6.x。幸运的是,有个开源项目叫做
OpenEzx 可以简单的帮助我们升级E680的kernel到2.6.x。这个文档详细的说明了如何通过方法b移植
Android系统到E680上。
2.1 Android Kernel/Root 文件系统
首先我们需要最新版本的Android模拟器系统。(原文使用的是android-emulator-m5-rc14.tar.gz)
下载链接http://code.google.com/p/android/downloads/list
Android Root 文件系统,获取自SDK。
下载链接http://code.google.com/android/download_list.html
获得Android升级补丁去升级2.6.x Linux kernel,你需要将Android SDK kernel从official 2.6.23 kernel中
分离,然后确认所有的Android驱动已经正确改变。这个为Linux 2.6.24做的Android patch在安装
包中
对于Android Root文件系统,你需要一些时间去制作。你去要从SDK中解压三个镜像ramdisk.img,
system.img and userdata.img去简历你需要的root文件系统。你可以在这里和OMAP上的Android做一
个对比。地址:http://elinux.org/Android_on_OMAP。
现在没有在E680上能够使用的Root文件系统,我使用busybox toolkit和Android SDK自己制作了一个
新的Android NFS Root文件系统。你可以在网上找到很多有关NFS Root文件系统建立的文章,在这里
就不多讲了。同样,我也在补丁包内放入了Android NFS Root文件系统。
2.2. SW/HW 环境要求
在我们建立了Android kernel和Root文件系统之后,让我们对需要使用的软硬件环境列个清单。
2.1.1 软件环境
Linux Host:
你可以使用任何主流的Linux系统环境,比如Redhat,Fedora等等。看你自己喜欢。
tool-chain :
SDK中的Android Root System是使用ARM EABI兼容编译器编译的,因此我们需要ARM EABI兼容编译
器去编译我们的kerne。
ARM EABI compatible too-chain下载地址
http://www.codesourcery.com/gnu_toolchains/arm/download.html
你应该下载arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.tar !
其他的不要下载!
Patch tool:
我们需要OpenEzx 2.6.24.x-补丁设置工具去升级A1200的kernel。
下载地址:http://savannah.nongnu.org/projects/quilt
USB Boot:
OpenEzx开发的一个工具,使得你可以使用USB去启动kernel。
下载0.2版本:http://svn.openezx.org/trunk/src/host/boot_usb/
Busybox 1.1.3:
就像前面所说的,我使用了busybox去建立Android NFS Root文件系统。我使用的是1.3版本,同时我
在升级包中放入了busybox config配置文件给你参考。
2.1.2 硬件环境
我们只需要一个E680手机以及一条USB连接线去移植Android。
好了,现在我们来讲一下实施移植的细节。是不是很激动呢!- -0
#下面是我的环境搭建过程
Linux Host: VMwareStation + TurboLinux 10
Tool-Chain: arm-none-linux-gnueabi- tool chain 安装在目录 /home/arm-2007q3
Patch tool: 工具安装在目录/home/quilt-0.46 directory
USB Boot tool: 编译后将其放在 /home/testKernel/ezx_usb_boot
我为kernel建立了/home/android文件夹,为Android root文件系统建立了/home/android_nfs文件夹。
2.3 E680 Android移植工程
1)解压Linux-2.6.24 kernel tar文件(linux-2.6.24.tar.bz2)到/home/android/linux-2.6.24
你可以从以下地址下载到linux-2.6.24.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/
2)简历补丁目录在/home/android/linux-2.6.24下面,然后复制所有的OpenEzx patchset folder下的文件
到这个目录里
3)在目录/home/android/linux-2.6.2下应用OpenEzx patches,通过via cad命令:quilt push –a
4)在目录/home/android/linxu-2.6.24 下使用如下cmd命令:patch –p2 解决A1200触摸屏颜色显示问题
5. 小技巧
l When building Android root file system by yourself, several critical dev nodes (/dev/binder,
/dev/log/main, /dev/log/radio, /dev/log/event) must be created correctly.
l If your touch screen does not work, you should check whether touch screen driver is assigned
to event1 via ‘cat /proc/bus/input/devices’ which Android application use /dev/input/event1 to
get touch driver info.
l You can modify /system/usr/keylayout/qwerty.kl file to change Android key mapping.
l You can use strace to debug during your porting.
6. 参考出处
[1] OpenEZX homepage - http://www.openezx.org/
[2] Google Android homepage - http://code.google.com/android/
[3] Benno’s engineering Blog - http://benno.id.au/blog/
[4] Android on Zaurus - http://androidzaurus.seesaa.net/article/74237419.html
[5] Omegamoon Blog
http://www.omegamoon.com/blog/index.php?m=04&y=08&d=23&entry=entry080423-212550&cat
egory=1
[6]AndroidPortingOnRealTarget
http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget?refresh=1
7. 可用资源
1) OpenEZX-patchset.zip – OpenEZX patchset for 2.6.24-x.
2) android-patches.zip – android specific patches including
ü android-core.patch
ü android-config-nfs.patch
ü android-a1200-pcap.patch
ü android-a12000-16bpp.patch
ü android-framebuffer.patch
ü android-touchscreen.patch
3) android-nfs-root-m5r14.bz2 – Android NFS root file system package.
4) android_nfs_kernel – Android test kernel
5) modules-a1200.tar.gz – Android test modules package
6) busybox.config – busybox config file for NFS root file system.
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/81599/showart_1916798.html

论坛徽章:
0
2 [报告]
发表于 2010-09-16 21:23 |只看该作者
倒,到底有人移植成功了没,有截图吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP