iTOP4412開發板Android4.4源碼編譯分享

注意:本小節,介紹的源碼指的是「20170803」以及後續新增的源碼。java

5.4.1.1 uboot 的編譯android

Android4.4.4 對應 uboot 的源碼,編譯器,參數配置,編譯腳本以及編譯參數和git

Android4.0.3 的 uboot 所有如出一轍。vim

5.4.1.2 Linux 內核的編譯瀏覽器

源碼目錄jvm

網盤下載 Android4.4.4 對應的源碼。在網盤「iTOP-4412 開發板系統源碼及鏡像(其ui

他)」→「android_4.4.4 源碼及鏡像」目錄下,在最新日期的文件夾下的「iTop4412-內存

android4.4-kernel_xxxx.tar.gz」壓縮包,xxxx 表示日期。開發

編譯器get

Android4.4.4 對應內核的編譯器和 Android4.0.3 的內核編譯器如出一轍。

參數配置

內核的編譯是組合式配置文件,基本的配置文件名是「config_for_android_XX_YY」,

XX,YY 表示用下表所示的參數替代。POP 和 SCP 分別對應核心板的 POP 和 SCP;elite 和

super 分別對應精英版和全能版;no_wifi 參數僅用於精英版,表示不支持 WiFi 模塊(若是沒

有 WiFI 模塊,那麼就須要配置爲 no_wifi)。

如上表所示,若是須要 Android4.4.4 支持 WiFi,則須要配置對應的參數,不支持 WiFi

也須要進行對應配置。

編譯生成內核鏡像舉例

和 Android4.0.3 內核同樣,若是須要編譯對應核心板的內核,首先使用 cp 命令將對應

的配置文件覆蓋掉「.config」。

若是用戶要使用 5 寸屏幕,先要參考用戶手冊「5.5 支持 5 寸屏的內核補丁文件」,給內

核打補丁,而後使用命令「vim .config」,在文件中搜索關鍵詞

「CONFIG_TOUCHSCREEN_GT9XX=y」,在「CONFIG_TOUCHSCREEN_GT9XX=y」之

後添加一行「CONFIG_TOPEET_LCD5X0=y」,添加完成以後,以下圖所示。若是用戶不使

用 5 寸屏幕,則能夠跳過這一步。

最後執行編譯命令「make zImage」。

生成內核鏡像的目錄也是「arch」-->「arm」-->「boot」。

例如:開發板是精英版,POP 核心板,須要支持 WiFi 模塊,那麼缺省文件就須要配置爲

「config_for_android_pop_elite」。

開發板是精英版,POP 核心板,不支持 WiFi 模塊,那麼缺省文件就須要配置爲

「config_for_android_pop_no_wifi」。

5.4.1.3 Android4.4.4 的編譯

更新環境 javap

編譯 Android4.4.4,還缺乏一個「javap」命令,使用命令:

「update-alternatives --install "/usr/bin/javap" "javap"

"/usr/lib/jvm/jdk1.6.0_43/bin/javap" 1」

更新一下,以下圖所示。

內核以及 Android 源碼路徑

編譯 Android4.4 源碼的時候,必定要注意內核源碼的目錄。在和 Android 源碼目錄

「 iTop4412_KK4.4_git 」的同一級目錄下,將內核源碼解壓。

例如,以下圖所示,做者將內核源碼和 Android4.4 源碼壓縮包放到「/home/iTOP-

4412-Android4.4」目錄下,解壓「iTop4412_KK4.4_git_xxx.tar.gz」和「iTop4412-

android4.4-kernel_xxx.tar.gz」,Android 源碼解壓以後獲得「iTop4412_KK4.4_git」和

「kernel」目錄。「iTop4412_KK4.4_git」目錄下就是 Android 源碼,

「kernel/iTop4412_Kernel_3.0」目錄下就是內核源碼。

另外在編譯 Android4.4 以前,必須成功編譯 Android4.4 對應的內核。

而後進入 Android4.4.4 源碼解壓後獲得文件夾「iTop4412_KK4.4_git」中,使用命令

「./build_android.sh」,運行一鍵編譯腳本,開始編譯 Android4.4.4。注意:編譯

Android4.4.4 必須保證給 Ubuntu 系統提供 3G 以上內存。這裏「提供 3G 以上內存」的意

思,不單單是指在 VMware Workstations 虛擬機中設置分配 3G 內存。例如,用戶在編譯的

時候,PC 機的內存一共是 4G,在虛擬機中設置分配 3G 內存,可是在 Windows 系統下,開

着 QQ,殺毒軟件,音樂播放器,瀏覽器等等,這樣在 Windows 下佔用的內存就快 2G 了,

那麼虛擬機會自動調整到只佔用 2G,甚至不到 2G 的內存,這樣是無法編譯經過的。

正確的分配內存方法是,首先給虛擬機分配 3G 以上內存,而後在 Windows 下關掉儘可能

多的沒必要要的應用,關掉儘可能多應用的後臺程序。

固然,若是用戶的 PC 是 8G 或者 16G 內存,隨意就成。

編譯完成以後,在文件夾「iTop4412_KK4.4_git/out/target/product/smdk4x12」中,

生成鏡像「system.img」和「ramdisk-uboot.img」。

這裏還須要注意的是,Android4.4.4 源碼須要佔用較大的空間,用戶須要確認有足夠的

空間纔可以成功編譯。Android4.0.3 編譯完成後總共大約佔用 18G 的空間,Android4.4.4 編

譯完成後總共佔用大約 36G 的空間。

用戶徹底按照步驟編譯錯誤,可使用「df -l」查看一下盤符剩餘空間還剩下多少,若是

是已使用 100%,則是空間不足。

相關文章
相關標籤/搜索