標籤:源碼 android hi3716c 海思
1、先說說硬體設定,我最開始是在Win7(I7 4770,8G RAM,2T硬碟)裡裝ubuntu10.10 64位系統(4G RAM,200G 硬碟)進行源碼編譯,大概花了3個多小時。而且還多次出現outofmemoryerror 錯誤。最後將硬體升級為I7 4770、16G記憶體、2T硬碟,不裝虛擬機器,直接跑Ubuntu 10.10系統,Swap分區為16G,編譯一次大概花了40分鐘,沒有報任何錯誤。 所以不推薦在虛擬機器裡面跑。
2、根據官方文檔配置編譯環境:
官方文檔說的是在“發布包/Software/ServerInstall”目錄中使用root許可權執行ServerInstall.sh指令碼,如:
software/ServerInstall$sudo ./ServerInstall.sh
但是經過我的實際操作發現,指令碼中對jdk的安裝配置指令無法執行,原因是它提供的源不對。我的解決辦法是從Oracle官網直接下載jdk-6u45-linux-x64.bin,copy到/usr/lib/jvm(沒有的目錄要自己建)中進行安裝,然後再/etc/bash.bashrc中配置java的環境變數:
export JAVA_HOME="/usr/lib/jvm/xxx" export PATH="/usr/lib/jvm/xxx/bin":$PATH
注意:xxx指代你安裝後的java目錄名。
然後再執行指令碼:
software/ServerInstall$sudo ./ServerInstall.sh
3、重新登入後進入Android源碼解壓後的目錄$ANDROID_SRC,在根目錄下依次執行以下命令:
source build/envsetup.sh lunch Hi3716CV200-eng
如果出現bison未找到之類的錯誤,使用
sudo apt-get install bison
裝好即可。
3、所有錯誤都解決後,就可以執行
make bigfish -j8 2>&1 | tee bigfish.log
命令進行源碼的完整編譯了。注意我的CPU是I7 4770,屬於四核八線程,所以用-j8選項。而華為他們用的編譯伺服器是64核 CPU、32G記憶體,所以他們可以用-j32參數。總之,這個參數應該根據你的cpu來選。
4、完整編譯的結果就是在out\target\product\Hi3716CV200/下的Nand和Emmc目錄下都會產生相應的鏡像。接下來就是把這些鏡像燒寫到他們提供的開發板上。
燒寫鏡像需要的工具:PC(Windows系統,因為華為只提供了windows下的燒寫工具)、海思開發板、usb轉串口線,網線,
- 將產生Emmc目錄拷貝到PC上。(之所以拷Emmc目錄,是因為我這個板子的U14晶片焊接的是Emmc晶片,如果你的板子焊接的是Nandflash,就要拷Nand目錄)。
- 將$ANDROID_HOME/devicehisilicon/bigfish/sdk/tools/windows目錄拷貝到PC上。windows目錄中儲存的是燒寫工具
- 拿一根usb轉串口線,串連板子的J35和PC的USB介面上,開啟超級終端。
- 拿一根網線,串連板子的j13和PC的網口,並配置PC的IP地址為192.168.1.1
- 關閉開發板電源,開啟windows目錄中的Hitool工具,使用其中的HiBurn外掛程式。具體配置見海思提供的視頻教程。配置好後,選擇”燒寫eMMC“,分區表檔案選擇Emmc目錄下的xml檔案,然後在下面的選項中把Emmc目錄中的所有鏡像配置進去。點擊”燒寫“按鈕後,開啟開發板電源,就開始少寫了,燒寫完成會有提示。
5、燒寫完成後,使用HDMI線將開發板串連到顯示器,啟動開發板,開始會出現一段車展視頻(FastPlay),隨後便會進入Android系統。但是,目前的系統還不能播放mkv,ts等視頻檔案,原因是沒有相關的庫檔案。這個得需要向華為索要音視頻庫,然後解壓,並將最後的.so檔案拷貝到Android系統的/system/lib目錄。拷貝方法:
至此,基於Hi3716c的Android系統開發的前期準備工作就完成了。