TI Pandaboard Android 核心取得及編譯

Pandaboard 核心編譯完全參考 Pandaboard的網站文件,請到這裡觀看,原則上只要依照網頁上的步驟
即可完成,但有幾個必須注意的地方。

以下是在ubuntu10.04(32bit)環境下編譯完成。
一開始會先要求安裝下列編譯工具
sudo apt-get install git-core flex bison gperf libesd0-dev libwxgtk2.6-dev zlib1g-dev build-essential libstdc++6 tofrodos 
sudo apt-get install x-dev 
sudo apt-get install libx11-dev 
sudo apt-get install libncurses5-dev 
sudo apt-get install sun-java6-jdk

如果你的OS是64位元需安裝
sudo apt-get install g++-multilib

如果你的ubuntu是8.10,請安裝
sudo apt-get install lib32readline5-dev”

另外,筆者在網路上查詢到的Android核心編譯條件須包含下列幾項工具,如不放心請一一檢查是否都有安裝
以免編譯失敗
sudo apt-get install build-essential
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libc6-dev 
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install patch
sudo apt-get install texinfo
sudo apt-get install libncurses-dev
sudo apt-get install git-core gnupg  //(gnupg系統可能已自帶)
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install ncurses-dev 
sudo apt-get install zlib1g-dev
sudo apt-get install valgrind
sudo apt-get install python (Ubuntu系統可能已自帶)

接下來依照文件步驟一步步做下來...
到達[Download Android Source]步驟執行 repo 這個指令時,需加上 sh,變成 sh repo .....
另外,sh repo sync -j -5 可加上後面參數加快download速度(意思是用五個thread來跑)
在這個步驟會將所有原始碼下載到mydroid資料夾,如你先前已經有下載過,請將原來資料夾下的資料
完全清除,以免後來有檢查碼錯誤的問題(這一方面如果出錯,不知道接下來編譯是否會有隱藏性問題)

Android原始碼相當大高達2.8G,所以請用寬頻下載....

接下連續作步驟,直到[U-Boot Source]->u-boot patch
當中有一行字
a patch is available that changes the bootdelay as well as configures the correct bootargs: bootargs patch
這是boot開機延遲,不需理會,因為下面步驟會做到,
接下來到了[Setting up build environment]
這裡會要你export JAVA_HOME=/usr/lib/jvm/java-6-sun <--請正確指向系統正確位置

接下來[Build Kernel]

這裡要指定mkimage的路徑
export PATH=$YOUR_PATH/L27.12.1-P2/u-boot/tools:$PATH

這裡在32位元作業系統下,作 make ARCH=arm panda_defconfig時如果出現 can't copy type 0 我尚找不出原因,不過下
面編譯會過,所以也不知有何影響。
但在64位元作業系統則不會出現前述問題。
開始編譯時
make ARCH=arm uImage 2>&1 |tee $MYDROID/logs/kernel_make.out
也會出現can't copy type 0,不過編譯又不會出錯??

不管了!

如果你的作業系統是32位元版,開始前須做下列幾項修正
/mydroid/build/core/main.mk,將下列註解掉

#ifneq (64,$(findstring 64,$(build_arch)))
#$(warning ************************************************************)
#$(warning You are attempting to build on a 32-bit system.)
#$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
#$(warning ************************************************************)
#$(error stop)
#endif

/mydroid/external/clearsilver/cgi/Android.mk
/mydroid/external/clearsilver/java-jni/Android.mk
/mydroid/external/clearsilver/cs/Android.mk
/mydroid/external/clearsilver/util/Android.mk
以上各檔中的
# This forces a 64-bit build for Java6
LOCAL_CFLAGS += -m64    改成 -m32
LOCAL_LDFLAGS += -m64  改成 -m32

接下來就開始編譯了,過程很久.....

喔! 不對

作Building Android Filesystem (AFS) with TI Codecs enabled 這步驟更久,呵呵

**** 新增ubuntu10.04 64bit版 *****

在使用64位元版時,文件中第一個安裝敘述就會有問題
sudo apt-get install git-core flex bison gperf libesd0-dev libwxgtk2.6-dev zlib1g-dev build-essential libstdc++5 tofrodos 
請改成
sudo apt-get install git-core flex bison gperf libesd0-dev libwxgtk2.6-dev zlib1g-dev build-essential libstdc++6 tofrodos 

再來還要安裝

sudo apt-get install gnupg flex bison gperf build-essential  zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386  lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev  lib32readline5-dev lib32z-dev

如此在kernel編譯時才不會出錯

留言

這個網誌中的熱門文章

C# 調用 C/C++ DLL 資料型態之對應

在Ubuntu上安裝EZ100PU晶片讀卡機