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源码时repo的错误

今天用repo获取android源码: ../bin/repo init -u git://android.git.kernel.org/platform/manifest.git 出现问题: ...
  • aaronlin999
  • aaronlin999
  • 2014年06月14日 12:54
  • 5299

Android 4.2源码的下载和编译环境的安装及源码的编译(跟着做能成功)

Google于2012.11.14发布了Android4.2的源码,下面把本人在ubuntu12.04 的64位系统上下载源码,和编译 源代码下载、编译环境安装、源代码编译和运行模拟器的可能出现...
  • han_jiang_xue
  • han_jiang_xue
  • 2013年05月18日 19:06
  • 2477

IOError: [Errno 2] No such file or directory:

IOError: [Errno 2] No such file or directory: ‘C:\Users\Administrator\Desktop\climbing_1_small.jpg’1...
  • Eddy_zheng
  • Eddy_zheng
  • 2015年07月31日 15:51
  • 10334

Python webdriver 读取本地csv文件中数据 提示:IOError: [Errno 2] No such file or directory

创建本地文件 打开excel,创建数据,另存为 XXX.csv 编写代码并调式 #-*-coding:utf-8-*- import os import csv #导入csv包files = f...
  • u013921325
  • u013921325
  • 2016年04月19日 15:18
  • 4237

Git入门指南八:Git撤消操作

十二. Git撤消操作 12.1 修改最后一次提交 git commit --amend 1.新建一个文件 2.提交一个之前的更改 3.跟踪这个文件 4.跟前一次一起...
  • wirelessqa
  • wirelessqa
  • 2014年02月28日 18:55
  • 61856

【Android 系统开发】下载 编译 Android源代码 和 Android kernel源代码

下载Android源码简要流程 :  a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo...
  • han1202012
  • han1202012
  • 2014年01月06日 00:04
  • 23370

python2.7:IOError: [Errno 2] No such file or directory:

import os print os.getcwd() #打印出当前工作目录 os.chdir('the dir which include the file a.txt') #修改当前工作目录...
  • LANGZI7758521
  • LANGZI7758521
  • 2016年03月25日 09:51
  • 3571

python使用urllib.urlretrieve时出现“IOError:[Errno 2] No such file or directory”解决办法

在使用urllib模块urlretrieve函数下载文件时,
  • wzha2008
  • wzha2008
  • 2014年10月17日 08:40
  • 6343

下载 Android源码 + kernel源码 | 100%顺利完成

step1、将Android-4.0.1_r1源码下载到/root/bin/android_source目录 >cd ~ >ls >mkdir bin //若无bin目录,则创建 >cd bin ...
  • wgembed
  • wgembed
  • 2013年04月09日 21:00
  • 1657

[Hadoop]SSH免密码登录以及失败解决方案

1. 创建ssh-key 这里我们采用rsa方式,使用如下命令: xiaosi@xiaosi:~$ ssh-keygen -t rsa -f ~/.ssh/id_rsaGenerating pub...
  • SunnyYoona
  • SunnyYoona
  • 2016年06月16日 08:16
  • 10098
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android移植到2440A
举报原因:
原因补充:

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