1. 程式人生 > >編譯MTK android原始碼的過程

編譯MTK android原始碼的過程

硬體環境:

  VMware 虛擬機器環境:VMware 虛擬機器版本 VMware-workstation-9.0.0-812388

  記憶體:2.1G

  處理器:雙核雙執行緒

  硬碟:60G

系統環境:Ubuntu 64位系統 

  映象檔案 ubuntu-10.04.4-desktop-amd64.iso 

  下載地址:http://releases.ubuntu.com/10.04.4/ubuntu-10.04.4-desktop-amd64.iso

 解鎖root賬戶:

  在終端中輸入:
  sudo passwd root
  Enter new UNIX password: (在這輸入你的密碼)
  Retype new UNIX password: (確定你輸入的密碼)
  passwd: password updated successfully

$sudo gedit /etc/gdm/custom.conf來建立這個配置檔案,並且在檔案中輸入
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=true
TimedLogin=root
TimedLoginDelay=10
儲存關閉,重啟系統時選擇其他賬戶登入,輸入root和密碼就可以登入了。

環境設定

  1.更新軟體

  首先在終端執行 

  $sudo apt-get update

再在終端執行如下指令

  $sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils lib32readline5-dev gcc-4.5 g++-4.5 gcc-4.5-multilib g++-4.5-multilib

  建議分開使用,有些指令沒有效果,把能使用的完成即可。

  安裝Wine

  $sudo apt-get install wine

  wine的安裝過程中有兩次需要使用者確認的地方(按tab鍵選擇確認即可)

  2.安裝JDK  下載 jdk-6u31-linux-i586.bin 檔案

  解壓到root即可。

  修改mbldenv.sh檔案中

  # Overwrite PATH environment setting for JDK & arm-eabi if already exists

PATH=/root/java/jdk1.6.0_31/bin::$PWD/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin

:$PATH
  export PATH

  檢查安裝環境:

  在終端執行指令,切換到MTK Android根目錄,執行 ./mk check-env

  提示

**********checking Env************
Your building environment is OK
The detail information is in "checkenv.log"!
*************************************************

  環境搭建好,只需要執行工程編譯指令就可以了。

  在終端執行 ./mk 工程名 new

以上內容進行適當調整,參考地址  http://www.52rd.com/Blog/Detail_RD.Blog_howean_35135.html

20131217讀後感:

        上文中一個命令

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils lib32readline5-dev gcc-4.5 g++-4.5 gcc-4.5-multilib g++-4.5-multilib

安裝了好些個軟體。這些軟體都是編譯mtk原始碼必須的。上述軟體中如果缺少其中一個,比如mingw32,或者是gcc的版本不對,都編譯不成功,典型的報錯日誌如下:


**********checking Env************
Please check your building environment First!


Build Environment Requirement
=============================================================
* ********* Suggested OS and Tool Chain to install *********
*
*       OS                         : Linux distribution Ubuntu 10.04
*       Memory Size                : 4G or above
*       make                       : GNU Make 3.81 or 3.82
*       perl                       : Version 5.10.X
*       python                     : Version 2.6.X
*       arm-linux-androideabi-gcc  : Version 4.6.X
*       gcc                        : Version 4.4.3
*       jdk                        : Version 1.6.X
*       bison                      : Version 2.4.X
*       flex                       : Version 2.5.X
*       gperf                      : Version 3.0.X
*       mingw                      : Installed
*       unix2dos/tofrodos          : Installed
* **********************************************************
=============================================================


Build Environment Check Result Report
*************************************************************


[OS]: Ubuntu 12.04.2 (64-bit) [WARNING]
your ubuntu os version is higher than recommendation

[Physical Memory Size] : 2522836 K-Bytes [WARNING]
it's smaller than recommendation, may cause out-of-memory build error

[make]: 3.81 (64-bit) [OK]
[perl]: 5.14.2 (64-bit) [WARNING]
your perl version is higher than recommendation

[python]: 2.7.3 (64-bit) [WARNING]
your python version is higher than recommendation

[arm-linux-androideabi-gcc]: 4.6. (64-bit) [OK]
[gcc]: unknown (64-bit) [FAIL]
[jdk]: 1.6.0_30 (64-bit) [OK]
[bison]: 2.5 (64-bit) [WARNING]
your bison version is higher than recommendation

[flex]: 2.5.35 (64-bit) [OK]
[gperf]: 3.0.3 (64-bit) [OK]
[mingw]: [FAIL]
you have not installed mingw32(i586-mingw32msvc-gcc is NOT in your path)

[unix2dos/tofrodos]: Installed [OK]
*************************************************************


 The detail information is in "checkenv.log"!
***********************************************

而如果在ubuntu 64位系統中沒有安裝32位lib庫ia32-libs,編譯也會報找不到路徑的錯誤。典型的報錯日誌如下:

2013/12/16 20:23:59 codegening ...
            LOG: out/target/product/kenxinda82_wet_820_codegen.log
/bin/bash: mediatek/cgen/Cgen: 沒有那個檔案或目錄
/bin/bash: mediatek/cgen/Cgen: 沒有那個檔案或目錄

這時需要用命令sudo apt-get install ia32-libs安裝。如果安裝ia32-libs時報錯,可以嘗試用下面這個命令安裝:

sudo apt-get install ia32-libs ia32-libs-multiarch  libglapi-mesa:i386  libglu1-mesa:i386 libqt4-opengl:i386 libgl1-mesa-glx:i386  libgl1-mesa-dri:i386

如果缺少libxml2-utils庫,那麼在整個編譯快完成,生成system.img的時候報一個錯,很傷腦筋。解決的方法很簡單,輸入sudo apt-get install libxml2-utils,然後重新編譯,等1,2個鐘再看編譯結果吧。

20131217結束