Android移植到2440A

原创 2011年01月10日 20:29:00

     一直在寻思着怎么移植Android到我的2440开发板上,自从找工作,就一直把这事给耽搁了,现在找到工作了,也没什么时间,但是还是要抽出时间来完成这个任务。

     今天开始了,要移植首先的有源码供你编译,供你移植啊。所以,我们这里的第一步就是获得源码。

到网上找了很多资料,稍微让自己有点思路。应该有两种吧~~(这里暂且这样说,还不确定):

(1):移植android内核+移植android文件系统

(2):

 

一、获得源码

     在网上找了很久,看到的资料都是一样的,都是以Ubuntu为版本的一个参考。而我的是RedHat的,所以的自己弄了。

 

1、Git的安装

下载git源码。登陆git官网(http://git-scm.com/),可以下载到最新的git源码,

下载后按着RedHat Linux的一般软件的安装方法:

./configure

make

make install

就可以了。

 

注意:在repo整个android源码时有可能会出错,如下:
Traceback (most recent call last):
  File "/home/zhutou/.repo/repo/main.py", line 235, in <module>
    _Main(sys.argv[1:])
  File "/home/zhutou/.repo/repo/main.py", line 217, in _Main
    repo._Run(argv)
  File "/home/zhutou/.repo/repo/main.py", line 123, in _Run
    cmd.Execute(copts, cargs)
  File "/home/zhutou/.repo/repo/subcmds/init.py", line 219, in Execute
    self._SyncManifest(opt)
  File "/home/zhutou/.repo/repo/subcmds/init.py", line 110, in _SyncManifest
    m.PreSync()
  File "/home/zhutou/.repo/repo/project.py", line 1456, in PreSync
    cb = self.CurrentBranch
  File "/home/zhutou/.repo/repo/project.py", line 271, in CurrentBranch
    b = self.work_git.GetHead()
  File "/home/zhutou/.repo/repo/project.py", line 1242, in GetHead
    fd = open(path, 'rb')
IOError: [Errno 2] No such file or directory: '/home/zhutou/.repo/manifests/.git/HEAD'

这个可能有三个原因,

(1):没有安装git,只是安装了repo

(2):可能由于先用git下载了,而后又用repo来下载

(3):应该是之前旧的repo sync导致的,

解决方法是使用命令
repo prune

 

我用以上的解决方法,没有成功,用下面的方法成功解决了:

 

方法一:我是直接换了一个目录,重新用repo init -u git://android.git.kernel.org/platform/manifest.git来重新初始化的。

方法二:

$ touch ~/.gitconfig

$ rm -rf .repo

 

 

 

二、android的编译

     在同步好android的源码后,开始编译,看到网上的资料都是直接make,并没有指定目标平台(arch),跟交叉编译器(cross_compile),我想这样应该是编译的是针对x86的,所以可以用模拟器来检测我们编译好的android。

    (1) 现在开始make,出现以下错误,有错误没关系,可以上百度哦~~呵呵~~

Checking build tools versions...
build/core/main.mk:76: ************************************************************
build/core/main.mk:77: You are attempting to build on a 32-bit system.
build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.
build/core/main.mk:79: ************************************************************
build/core/main.mk:80: *** stop。 停止。

 

 

这是因为froyo/2.2默认只支持64-bit,

 

解决办法:
需要进行如下修改即可,
./external/clearsilver/cgi/Android.mk 
./external/clearsilver/java-jni/Android.mk 
./external/clearsilver/util/Android.mk 
./external/clearsilver/cs/Android.mk
四个文件中的
LOCAL_CFLAGS += -m64 
LOCAL_LDFLAGS += -m64 
注释掉,或者将“64”换成“32”
LOCAL_CFLAGS += -m32 
LOCAL_LDFLAGS += -m32 

然后,将
./build/core/main.mk 中的
ifneq (64,$(findstring 64,$(build_arch))) 
改为:
ifneq (i686,$(findstring i686,$(build_arch))) 

OK!问题解决
     (2)现在继续make,又出现新问题了哦~~如下所示:
Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.
 
Your version is: java version "1.4.2".
The correct version is: 1.6.
 
Please follow the machine setup instructions at
   
http://source.android.com/source/download.html
************************************************************
看来是我的Java版本太低了哦~~所以要安装1.6的版本哦~~

 

 
     <1>从sun公司官网,https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter,下载jdk-6u23-linux-i586-rpm.binjdk-6u23-linux-i586.bin        在/usr下新建java文件夹,将安装包放在/usr/java目录下
       # mkdir /usr/java
    <2>安装JDK
       # cd /usr/java
       ①jdk-6u23-linux-i586-rpm.bin 文件安装
         # chmod 777 jdk-6u23-linux-i586-rpm.bin    ← 修改为可执行
         # ./jdk-6u23-linux-i586-rpm.bin        ← 选择yes同意上面的协议
         # rpm -ivh jdk-6u23-linux-i586-rpm.bin        ← 选择yes直到安装完毕
       ②jdk-6u23-linux-i586.bin  文件安装
         # chmod a+x jdk-6u23-linux-i586.bin          ← 使当前用户拥有执行权限
         # ./jdk-6u23-linux-i586.bin             ← 选择yes直到安装完毕

--------------------------------------------------------------------------
配置环境变量
    <1># vi /etc/profile
    <2>在最后加入以下几行:
       export JAVA_HOME=/usr/java/jdk1.6.0_23
           export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
           export PATH=$PATH:$JAVA_HOME/bin
    <3># reboot     ← 重启机器配置生效

 

测试是否配置成功

  新建Test.java

  

  在终端用cd命令进入Test.java目录,然后输入

  javac Test.java

  java Test

  若输出

  Hello,Welcome to Linux World!

  则表明配置成功!

  如不能通过编译,可通过重新启动系统试试

 

 

 

相关文章推荐

Android版本下载以及切换之 git使用

1:下载android主线分支 repo init -u https://android.googlesource.com/platform/manifest   2:下载andro...

移植Android 到mini2440

1 移植环境:Target:友善之臂mini2440HOST OS:Fedora 8kernel Version:Linux-2.6.25编译器:mini2440光盘所提供的编译器2 内核移植(一):...
  • sfrysh
  • sfrysh
  • 2010年08月13日 13:06
  • 5113

Android在TQ2440开发板上的移植

  • 2013年09月16日 22:50
  • 42KB
  • 下载

TQ2440平台上Android移植(1)

在网上找了好多资料,不过关于TQ2440上移植Android的只有一份,全都是其他转载的:转载内容如下 1、移植Android内核到TQ2440开发板上 1、从http://code.google.c...

Android移植到mini2440

  • 2010年03月17日 10:01
  • 1.08MB
  • 下载

基于ARM9S3C2440的Android操作系统移植

  • 2014年08月01日 12:58
  • 3.39MB
  • 下载

移植Android 到mini2440

1 移植环境: Target:友善之臂mini2440 HOST OS:Fedora 8 kernel Version:Linux-2.6.25 编译器:mini2440光盘所提供的编译器 ...
  • wavemcu
  • wavemcu
  • 2012年02月18日 12:44
  • 2157

Android 文件系统移植到 2440 未完

对于2440, 目前android并未完全支持armv4t。 如要运行在2440上需要修改一些汇编相关的代码。 所幸已有很多人做过这个工作,目前我是在freerunner这个基础上做的。 主页是ht...

Android在TQ2440开发板上的移植

Android在TQ2440开发板上的移植  whizer发表于 2009-5-21 14:22 | 只看该作者 http://www.arm9.org.ru/viewthread.php?tid=6...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android移植到2440A
举报原因:
原因补充:

(最多只允许输入30个字)