迅為是基於Ubuntu12.04.2平臺做開發,所有的配置和編譯指令碼也是基於此平臺,沒有在其它平臺上測試過。如果你對Linux和Android開發很熟悉,相信你會根據錯誤提示逐步找到原因並解決,錯誤提示一般是選用的平臺缺少了某些庫檔案或者工具等原因造成的;建議初學者使用和迅為一致的平臺。
Uboot、Kernel以及Android等的編譯環境看似複雜,其實只需要抓住以下四個要點。
(1)Uboot、Kernel編譯器的安裝。編譯器在光碟中都有提供,在需要使用的步驟中,會說明編譯器在光碟中的位置。
(2)設定環境變數。Uboot、Kernel、QtE、Qtopia編譯器的環境變數設定後,編譯的時候,系統才能找到編譯器。
(3)Android檔案系統的編譯器。編譯器需要使用Ubuntu系統自帶的gcc編譯器,但是版本不對,所以需要降低版本。迅為將這個過程編寫了成幾個簡單的命令,使用者只需要挨個執行命令即可。
(4)庫檔案。搭建過程中會給通過執行簡單的指令碼命令來安裝庫檔案,複雜的步驟變的簡單有效。
另外,如果使用者想了解編譯環境具體是怎麼搭建起來的,可以利用提供的指令碼檔案和命令來學習。
工具/原料
iTOP-4412開發板
方法/步驟
1. 使用搭建好的編譯環境
兩種搭建編譯環境的方式,一種方法是使用者安裝虛擬機器,然後安裝基礎的Ubuntu12.04.2系統,利用迅為提供工具和詳細的使用步驟,搭建編譯環境;另外一種方法是使用者安裝虛擬機器,然後直接載入“搭建好的Ubuntu映象”,使用者只需要修改一下編譯器的環境變數,就可以直接用來編譯原始碼。
以下詳細講解如何搭建編譯環境。
需要注意的是,搭建過程中用到的各類軟體,都需要和手冊提到的版本保持一致,如果使用的是“搭建好的映象”,則可以跳過這一節,但是編譯的時候要針對性的設定一下環境變數。
2.安裝基本軟體
Ubuntu系統需要一些基礎軟體,便於後續使用。
(1)安裝虛擬機器“Vmware_Workstaion_wm”
(2)然後使用虛擬機器安裝“Ubuntu12.04.2初始系統”。
(3)安裝完成後進入Ubuntu的終端,啟用root使用者;
(4)接著登入root使用者;
(5)虛擬機器設定聯網、CPU、記憶體、USB等;
(6)將Ubuntu資料來源地址修改為國內163伺服器地址;
(7)使用“apt-get update命令”更新資料來源;
(8)在Ubuntu安裝軟體vim,apt-get install vim;
(9)在Ubuntu安裝軟體ssh,apt-get install ssh。
3.交叉編譯工具
編譯的時候需要用到交叉編譯工具,本小節介紹如何安裝編譯Uboot和Kernel的編譯工具arm-2009q3。
提供的交叉編譯工具是使用者光碟“02_編譯器以及燒寫工具”→“arm交叉編譯器”資料夾中的壓縮包“arm-2009q3.tar.bz2”。
使用SSH工具將交叉編譯工具拷貝到 Ubuntu12.04.2系統的資料夾“usr”-->“local”-->“arm”中,local下預設沒有arm資料夾,可以新建一個。
使用命令“cd /usr/local/arm/”進入/usr/local/arm資料夾,然後使用解壓命令“tar -vxf arm-2009q3.tar.bz2”解壓壓縮包。
接著修改交叉編譯工具路徑,需要修改環境變數。在Ubuntu命令列中,執行命令“cd /root”和“vim .bashrc”,開啟環境變數檔案“.bashrc”。
如下圖所示,在“.bashrc”檔案中的最後一行新增如下資訊:
“export PATH=$PATH:/usr/local/arm/arm-2009q3/bin”
修改完成後儲存退出。執行更新環境變數“source .bashrc”的命令。
最後,在Ubuntu命令列中輸入命令“arm”,然後按TAB鍵,如果在命令列中能夠看到arm編譯器的資訊,就表明交叉編譯工具安裝成功。如下圖所示。
4.安裝庫檔案、JDK以及降低GCC版本
為了方便使用者,我們將庫檔案和JDK的安裝命令製作成了指令碼檔案,使用者只要執行兩個指令碼就可以安裝庫檔案和JDK。這兩個指令碼在使用者光碟“02_編譯器以及燒寫工具”→“tools”資料夾下的壓縮包“Android_JDK.tar.bz2”中。
使用者將壓縮包拷貝到Ubuntu系統中,解壓壓縮包會生成資料夾“Android_JDK”。使用cd命令,進入解壓出來的“Android_JDK” -->“jdk6”資料夾。如下圖所示,使用命令“./install-sun-java6.sh”執行指令碼檔案“install-sun-java6.sh”。需要注意的是,這條命令執行完畢可能會耗時15分鐘以上。執行指令碼的時,根據提示輸入對應的選擇命令。
前一個指令碼執行完畢之後,如下圖所示,進入解壓出來的資料夾“Android_JDK”中,執行命令“./install-devel-packages.sh”執行指令碼“install-devel-packages.sh”,安裝庫檔案,需要注意的是,這條命令可能會耗時40分鐘以上。上面指令碼執行的時候,需要根據提示輸入選擇命令。
上面這個指令碼執行完畢的時候,要注意一下是否有些庫檔案提示沒有安裝。如果發現有庫檔案沒有安裝的情況,有可能是網路不好或者下載源丟失。這個時候請使用一下更新下載源的命令”apt-get update“,然後再執行一下上面的兩個指令碼。
例如,如下圖所示,再次執行“./install-devel-packages.sh”之後,如沒有提示‘無法安裝的庫和軟體’,那麼表明已經安裝完整了。
最後介紹降低Android編譯器GCC版本的方法。
使用Ubuntu編譯Android的時候需要用到Ubuntu系統自帶的GCC4.4.7編譯器,但是安裝的Ubuntu12.04.2版本,它的GCC版本過高,所以這裡需將GCC編譯器的版本降低到4.4.7。
進入前面解壓的資料夾“Android_JDK”中,找到文字“update_gcc.txt”,開啟文字“update_gcc.txt”後會看到裡面有8條命令,這8條命令需要在Ubuntu命令列中依次執行。
使用命令開啟“update_gcc.txt”檔案,如下圖所示。
在依次執行了這8條命令之後,Ubuntu系統就將gcc的版本降低到4.4.7。使用命令“gcc -v”,可以看到gcc的版本為4.4.7了。
在執行這8條命令時,只有第一條命令會耗時10分鐘左右,其它的都會很快完成。需要注意的是,命令一定要依次執行,不能有遺漏。