备份

下面简单介绍一下移植的过程:
一、文件系统:
1.下载源文件:
建立源文件目录 mkdir ~/android_src
初 始化repo  cd ~/android_src & repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git (主线是2.1版本)
同步源文件 repo sync
整个过程会比较慢,可以同时开几个窗口来分别同步一些较大的project,例如 repo sync kernel,repo sync prebuilt,repo external/opencore,这样会快很多。
2.编译文件系统:
make
大概需要3─4个小时,这个跟机器的性能有关。
3.修改文件系统以适应Mini2440。
1)添加tslib触摸屏校正工具已经tslib所依赖的libc库和c++库,android系统本身使用的是Bionic c库。
2)添加buzybox,/myDev文件夹,/system/etc/shine文件夹
3)创建linuxrc启动脚本,/system/etc/myInit.rc初始化脚本,/system/etc/net.conf网络配置文件。
4)修改init.rc,去掉除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外所有的mount命令,并添加以下语句:
symlink /dev/snd/dsp /dev/eac 创建声卡的软连接
service console /bin/busybox sh //让系统使用buzybox的shell控制台
    console
service myInit /bin/busybox sh /system/etc/shine/myInit.rc //运行myInit.rc脚本,进行网络初始化等
    oneshot
5)将无线网卡的库文件复制的/system/etc/framework下

二、内核
在原来2.6.27内核的基础下,做了以下的改动:
1.添加kasim大侠所提供的power supply class驱动,但是不能将该设备添加到smdk2440_devices[] __initdata下,否则不能用linuxrc启动脚本来启动系统。
2.配置内核是要选上Power management options中的Wake lock,Wake lock stats和Userspace wake locks,否则触摸屏会没有反应。
3. 使SD卡能够被系统识别,必须要选上General setup-->Create deprecated sysfs files,并修改/system/etc/vold.conf文件,将media_path设置为/devices/platform /s3c2440-sdi/mmc_host/mmc0/
4.修改LCD驱动(drivers/video/s3c2410fb.c)以支持双重缓冲,android的显示系统需要双缓冲的支持。
5.修正触摸屏驱动中坐标方向错误的问题。

三、精简系统
64M内存对与Android系统来说实在是太少了,加载所有系统程序后,再打开其他程序会变得很慢。
为此可以删掉一些暂时用不到的系统软件如Phone,AlarmClock等(位于/system/app下),甚至可以只保留以下六个较为重要的系统程序:
LatinIME.apk,Launcher.apk,PackageInstaller.apk,Settings.apk,SettingsProvider.apk,UserDictionaryProvider.apk
然后再安装自己的软件,经过精简后,系统运行的效率会有很大的提高,个人感觉要比1.5版本系统更为流畅。



四、其他问题
系统休眠后不能唤醒,目前的解决办法是将系统设置成保持唤醒状态:
设置-->应用程序-->开发-->保持唤醒状态



在精简后的系统上安装最新的Android版QQ,运行很流畅,Android版QQ的UI也做得非常漂亮的说,下面是运行截图:



希望这些内容对大家用所帮助,也欢迎大家一起来分享自己的移植经验以及成果!

附件:
根文件系统:下载
内核镜像:下载
内核源码:下载

ps:
安装文件系统之前先把/system/etc/shine/pointercal删掉,否则触摸屏可能会不准。如果想重新校正触摸屏,也可以先删掉pointercal文件再重启系统。
为了能正确配置网络,还需要创建ifconfig和route的软连接,具体如下:
rm /system/bin/ifconfig
rm /system/bin/route
cd /bin
ln -s busybox ifconfig
ln -s busybox route

 

 

12楼   发表于: 2010-04-11 15:26

 

引用
引用第11楼wenshui于2010-04-11 14:53发表的  :
使用git clone git://codeaurora.org/platform/external/tslib.git下载tslib代码,但为什么代码中没有android.mk,这个对吗?

Android的相关支持在eclair分支,你需要在clone后check out出eclair分支的源代码(git checkout -b eclair_local origin/eclair)

建议你用repo来处理。在你的.repo/manifest.xml里加入:
复制代码
  1.   <remote  name="caf"
  2.            fetch="git://codeaurora.org/" />


复制代码
  1.   <project path="external/tslib" name="platform/external/tslib" remote="caf" revision="eclair" />


然后repo sync platform/external/tslib就可以了。

[ 此帖被shinelk在2010-04-11 11:05重新编辑 ]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值