您的位置:笔笔发 技术资料 嵌入式操作系统 Android 正文
内容搜索
笔笔发:技术产业信息平台----成就有识之士创业梦想的殿堂
热门内容
推荐内容
OMAP3530上移植android2.2的笔记

本文章共3620字,分3页,当前第1页,快速翻页:
 

OMAP3530上移植android2.2的笔记

 

 

最近对Android颇感兴趣,因此买了一块OMAP3530来移植Android2.2,OMAP3530所选的板子为英码的SBC3530,移植下来感觉优缺点都有,如下:
优点:
1. kernel的代码在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化,有助于移植Android
缺点:
1. 板上按键设计不合理,复位键在板子的中间,7寸的触摸屏盖上去之后就无法按复位了
2. 板上的测试用例和指导过少,很多功能都无法测试,只能自己移植,给移植Android带来不少麻烦,像音频测试,触摸屏测试,自定义按钮测试等
这次移植在Fedora13上使用最新的Android主干代码,所以不具有通用性,只能给大家做一个参考~
由于时间原因,以下2个主要功能没做:
1. ALSA音频的Android移植
2. SD卡的Android自动挂载
我的环境搭建如下:
 2台电脑,SBC3530一台,使用一个路由器来互相联网
 电脑A跑XP系统,提供TFTPD服务,使用SecureCRT来登陆SBC3530的串口,使用Source Insight来检索kernel和android的源代码,使用SFU提供NFS服务来在电脑AB之间进行文件共享
 电脑B跑Frdora13,负责编译Android,并为SBC3530提供NFS的ROOT挂载服务
移植过程如下:
1. 获取Android代码的更新工具repo
curl
http://android.git.kernel.org/repo > ./repo
2. 给repo增加可执行权限
chmod a+x ./repo
3. 使用repo更新Android的主干代码,我更新的时候下了4G的文件.....
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync
4. 编译Android只要执行make即可
5. 我下载的Android主干使用JDK6,并且需要64位环境,如在32位下编译需要修改如下文件
 external/clearsilver/cgi/Android.mk
 external/clearsilver/java-jni/Android.mk
 external/clearsilver/util/Android.mk
 external/clearsilver/cs/Android.mk
将ifneq改为ifeq可暂时规避问题
# This forces a 64-bit build for Java6
ifneq ($(filter 1.6%,$(java_version)),)
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
endif
6. 编译过程中会缺少一些系统组件,用yum下载安装即可
7. 编译完成后会在Android的根目录下多出一个out/target/product/generic目录,generic下的root和system目录共同组成了Android的根文件系统,将system目录下的内容拷贝至root下的system目录即可
8. 有了根文件系统还缺少内核,新建一个目录后使用repo下载Andoird的linux内核
git clone git://android.git.kernel.org/kernel/common.git
9. 下载内核完毕后进入common目录查看和选择内核的分支版本,使用git branch –a查看版本分支,然后输入git checkout origin/android-2.6.35选择最新的2.6.35版本
10. 修改kernel的Makefile,将ARCH变量指定为arm,CROSS_COMPILE指定为arm-none-linux-gnueabi-
11. SBC3530的好处在这里就体现出来了,在arch/arm/config目录下有SBC3530的配置文件omap3_stalker_lks_defconfig,将该文件复制到内核的根目录下,并且改名为.config,再执行make menuconfig就能配置内核了,Android对内核配置的要求在Documentation下的android.txt文件中,由于该文件只描述了变量,没指明变量的对应配置项,所以需要搜索内核中的Kconfig文件来匹配变量,然后在make menuconfig中进行配置
12. 配置完毕后就可以生成内核的镜像文件了,由于SBC3530是使用Uboot来引导linux系统的,所以使用make uImage命令来生成对应Uboot的内核镜像,生成的镜像文件为arch/arm/boot/uImage
13. 现在就可以启动Android环境了,考虑到Android的根目录系统较大,如果做成ramdisk的话每次调试都要花较多的时间在下载上,因此这里使用NFS的方法来挂载root,由运行Fedora13的机子提供NFS服务,内核命令行配置如下:vram=12M omapfb.mode=dvi: omapfb.video_mode=dvi: omapfb.debug=y omapdss.def_disp=lcd070 omap-dss.def_disp=lcd070 console=ttyS0,115200n8 init=/init root=/dev/nfs nfsroot=192.168.0.182:/home/Ms/work_nfs/android_root/root ip=192.168.0.123:192.168.0.182:192.168.0.1:255.255.255.0:wolf:eth0:off
 

 
点这里复制本页地址发送给您QQ/MSN上的好友

相关文章

Android平台中Wifi的初始化
Android permission 访问权限大全
Bitmap内存限制问题的一些看法和探索
学习 camera framework 总结
【译】Android 多媒体扫描过程(Android Me
介绍Android中与JSON相关的应用
android使用 2D 方法实现倒影特效
Android 编译单个项目的方法
App Widget Framework分析之一:AppWidgetSe
android omx分析
使用NDK编译.so文件心得
Ubuntu 10.10编译Android froyo可能需要注意
编译自己的本地库介绍
视频电话中camera部分数据流分析
创建android sdk(包含emulator)
让你定制的Launcher成为系统中唯一的Launch
进一步分析Android HAL
Android HAL实例解析
实例解析linux内核I2C体系结构(1)
RT73 wifi无线网卡驱动移植过程

相关评论


本文章所属分类:首页 技术资料 嵌入式操作系统 Android


反馈意见和建议