现在的位置: 首页 > 综合 > 正文

Android移植到2440A

2013年05月07日 ⁄ 综合 ⁄ 共 4067字 ⁄ 字号 评论关闭

     一直在寻思着怎么移植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!

  则表明配置成功!

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

 

 

 

抱歉!评论已关闭.