Android移植到2440A

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

  則表明配置成功!

  如不能通過編譯,可通過重新啓動系統試試

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章