編譯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
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結束