免费注册 查看新帖 |

Chinaunix

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

找大家帮个忙,呵呵, [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-11 18:12 |只看该作者 |倒序浏览
最近看了篇文章,说是能把e680通过刷机器吧liunx系统刷成安卓,,文章我在下面贴出来了,不知道有没有高手给做个刷机包出来



1.引言 如今越来越多的Google Android爱好者们开始移植Android系统到现有掌上设备上。最早的成功移植Android系统是在Zaurus上,然后是在OMAP芯片组基础上的N810。
有些开发者将Android运行在来PXA270的开发板上。我们知道,摩托罗拉 MOTO A1200 Ming系列EZX 掌上电脑使用intel XScal-PXA270 应用芯片处理器,同时使用Linux 2.4.20 kernel。在经过一些研究之后,我们认为A1200完全满足移植Android系统的条件。
2.移植Android到A1200
事实上,移植Android系统就是移植Google ndroid kernel到目标装置上,同时让Android root文件系统和android kernel一同在目标系统上工作。Google在Android SDK中提供了二进制的Android root file  system文件系统以及android kernel的源。因此我们可以轻易的从Android SDK中提取出Android root文件系统,但是我们要考虑怎样将Android kernel移植到我们的A1200上面去。

这里有两种方法移植Android系统到A1200上。

a)将所有的Android固件整体移植到A1200上
b)将A1200的kernel升级到2.6.x,然后再装入Android固件。

显而易见的是,方法a要花更多的力气,因为A1200的kernel是2.4.20,而Android的Kernel是基于2.6.23的。

如果我们选择方法b,那么我们需要先升级A1200的kernel到2.6.x。幸运的是,有个开源项目叫做OpenEzx 可以简单的帮助我们升级A1200的kernel到2.6.x。这个文档详细的说明了如何通过方法b移植Android系统到A1200上。
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

现在没有在A1200上能够使用的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兼容编译器去编译我们的kernel。

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 硬件环境
我们只需要一个A1200手机以及一条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 A1200 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 <../ ***.patch
u android-core.patch
u android-config-nfs.patch
u android-a1200-pcap.patch
u android-a12000-16bpp.patch
u android-framebuffer.patch
u android-touchscreen.patch
注:必须在步骤3)完成并且成功之后完成步骤4)!
5)在OpenEzx patchset的Makefile.openezx中以如下方法修正变量CROSS_COMPILE:
PHONES = a1200
CROSS_COMPILE ?= /home/arm-2007q3/bin/arm-none-linux-gnueabi-
在这里 我将我的tool chain放在了/home/arm-2007q3目录里,你可以随意改变。
    6)在目录/home/android/linux-2.6.24下编译android kernel,使用如下命令:make –f patches/
Makefile.openezx
大约在半小时以后,你可以在/home/android/linux-2.6.24目录下看到zImage-a1200和modulesa1200.tar.gz
现在我们开始Android via NFS
A.解压android_nfs_root-m5-r14.bz2到移植文档指定目录

注:这个目录必须和置顶文档中的内核命令运行参数defoncif-a1200一致.这里我们使用/home/

android_nfs这个目录.

defconfig-a1200

这里我使用目录 /home/android_nfs

文件移植到A1200
B.解压a1200.tar.fz所得内容到编译阶段相同文档目录android_nfs_root-m5-r14.bz2中.所得tar扩展名内容解压到/home/android_nfs/lib目录
C.添加USB数据线到A1200并且让手机进入mbm flash模式(画面为红色状态)
D.用us_boot软件启动内核到/home/下面.测试是否可以通过cmd./ezx_usb_boot zImage-a1200’这一命令核心上传到A1200之后,你在A1200的屏幕上看到核心正在加载.屏幕会滚动的显示加载信息参数
E.大约几秒钟后,从LINUX终端主机通过命令参数'telnet telent 192.168.1.2'远程登陆A1200电话
F.运行'./init'执行远程登陆到电话,你可以看到android字符串
G.运行'/system/bin/runtime',过会,你就能看到让人振奋的红色始终在屏幕上有左至右的做着循环.然后大约2分钟左右,你可以看到让人感觉倍感亲近的android桌面.Rahman你可以通过手机的触摸屏开始申请(拨号器,地图,浏览器等)
毫无疑问,如果你使用cmd_line命令修改默认的A1200的设置核心参数让android从SD卡启动的话,那么android的启动程序会更快现在,我修正android的键盘映射让摄像头的硬件来做打电话的键盘,同时让虚拟的硬件来结束电话.你可以按一下A1200导航键的中心的键位来选择返回到桌面上.
注:你可以选择用cmd_line命令来修改A1200的默认参数使其更容易在mmc卡生成编译,同样你也必须修改android系统根目录下/etc/init.rc文档
3.已知问题和现状
现在android可以运行在许多EZX电话上像E680/A910/A1200.这里例举一些现在的已知问题和现状.

现状

l Android能正常加载.(android字符显示,红眼循环运行,Android桌面显示)

l 触摸屏可以在A1200/E680上工作

l 硬件(VR,摄像头,选择键)能够在部分A1200运行

l 个别主要程序请求(拨号器.地图,浏览器,联系人)可以从用户界面启动加载

l 声音不工作
问题:

l 显示屏颜色在A1200/A910使用18插针后在屏幕的面板上产生不错,但是android的变量文件系统使用16位色

l 虽然触摸屏能用,但是还得校准

l 其他的硬件还是不工作
4. 原作者下面要做的工作

l BP MUX 在A1200上运行

l Implement RIL (Radio Interface Layer) 共享库,让GSM电话正常

l Android audio在A1200运行

l 按键功能在A1200上正常使用

l 触摸屏校准

l 解决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/in ... 0423-212550&cat

egory=1

[6]AndroidPortingOnRealTarget

http://wiki.kldp.org/wiki.php/An ... ealTarget?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.

论坛徽章:
0
2 [报告]
发表于 2011-03-12 09:39 |只看该作者
没看懂你想干嘛?能不能把帖子发的简单清楚一点?

论坛徽章:
0
3 [报告]
发表于 2011-03-12 12:57 |只看该作者
楼主想表达什么意思?没看明白啊!

论坛徽章:
3
天秤座
日期:2013-12-27 13:44:58射手座
日期:2014-05-22 16:52:43天蝎座
日期:2014-08-13 16:03:21
4 [报告]
发表于 2011-03-12 13:49 |只看该作者
what do you mean?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP