本文主要是開發rk3288的android(和linux)平臺軟件運行環境搭建描述文檔。基於此文檔,用戶可以瞭解搭建開發環境目的,怎麼搭建開發環境?
主要描述以下幾個方面:
- 開發環境是什麼,爲什麼要開發搭建?
- 開發環境搭建的步驟;
- 官方sdk下載和粗略編譯和下載描述。
-
何爲開發環境
對於任何一個電子處理器或微處理器,要有自己的邏輯思想,就要有自己程序。要有自己的程序,就要人去編寫。人編寫的語言只是人能識別(看到想到)的語言,機器只能識別二進制碼,如何讓人編寫的語言變成機器識別的語言,就要翻譯,額,是編譯。
同時人編寫的語言是否規範,是否合法,是否符合當前處理器設備運行(如處理器是否有相應運算設備資源)這就要一個檢查。這在編譯中叫做預處理。
爲了讓代碼可讀性強,獨立性強,就有“對象”的概念。設計者必須有天馬星空的思維,編出來的分散各個模塊,就需要編譯器在編譯之前,就要將這些代碼有效的組織。
綜述。編譯器就是將人的思想產生代碼編程機器能識別的代碼。所以就搭建對應的開發編寫/編譯的環境。
爲了rk3288的linux或者android開發,就要搭建對應的編譯環境。
-
搭建開發環境
開發一套設備的程序,一般官方會有一套sdk。Rk3288開發android,瑞星微官方提供了開發的sdk。SDK的編譯需要運行在Linux的操作系統上。
所以和其他linux之類的平臺一樣。爲了開發linux這種基礎語言,需要搭建對應linux操作系統,而衆多開發者是使用的Windows系統。此時我們需要在windows系統中安裝Linux的運行環境,這裏搭建虛擬機,加載一個linux系統。
當前選用的linux操作系統爲ubantu,下面爲具體搭建步驟如下:
虛擬機和操作系統下載
這裏我們使用的虛擬機是VMware Workstation 15 Player.軟件下載地址如下:
(https://www.vmware.com/cn.html)。
ubuntu下載地址 http://mirrors.aliyun.com/ubuntu-releases/16.04/
如下圖安裝好VMware軟件後即可進行ubuntu的安裝了。
安裝ubuntu
如上圖點擊右邊創建虛擬機按鈕。
然後添加ubuntu鏡像後,點擊下一步即可。
設置Linux 的用戶信息後,點擊下一步。
設置虛擬機的位置,選定後,點擊下一步繼續設置。
由於SDK所佔存儲比較大,這裏設置磁盤容量爲200G.
點擊完成即可進行 Ubuntu的安裝了。
SDK開發環境的搭建需要根據Linux的版本進行調整,我們使用的是Ubuntu16.04的系統進行SDK的編譯的,需要安裝以下軟件。
安裝SDK編譯所需依賴包:
其他版本的系統編譯時需要根據編譯的LOG進行對應軟件的安裝(編譯時出錯,一般爲複製時中間的空格問題)。
sudo apt-get install git gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools libssl-dev autotools-dev libsigsegv2 m4 libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev openssh-client |
由於開發android需要java的環境支持,所以這裏安卓5.1的編譯需要安裝JDK7
sudo apt-get install openjdk-7-jdk
配置環境變量
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
SDK下載及編譯
SDK下載
RK3288 Android5.1 SDK的獲取有2種方式。直接向Rockchip公司的技術窗口申請SDK的授權密鑰,然後使用密鑰通過git來下載。或者聯繫Rockchip的供應商獲取SDK代碼的網盤下載權限,直接通過網盤下載。SDK完成編譯差不多佔用100GB存儲空間,在分配虛擬機磁盤的時候需要注意。
SDK git下載指令如下,此種方式需要Rockchip授權的密鑰。
repo init --repo-url ssh://[email protected]/repo/rk/tools/repo
-u ssh://[email protected]/repo/rk/platform/manifest -b android-5.1
-m rk3288_lollipop_release
SDK 目錄結
|
SDK 編譯
整個SDK的編譯分爲3部分 uboot、kernel、 Android。
Uboot的編譯
RK3288的uboot是使用的DM(Driver Model)進行設備和驅動的管理的。uboot啓動的第一階段使用的是uboot內部的最簡DTB只加載基礎模塊,第二階段讀取內核的DTB加載相應的硬件驅動。所以uboot的config無需改動。開發者只需根據硬件資源定製好內核的設備樹文件及內核配置文件即可。Uboot這裏採用RK的默認配置文件即可
在終端上執行命令
cd u-boot
make rk3288_defconfig
make
完成編譯後再uboot目錄下產生 rk3288_loader_xxxx.bin uboot.img和 trust.img這三個文件。
Kernel的編譯
kernel的編譯需要根據實際的硬件信息進行設備樹的編譯和內核config文件的編寫。以RK3288原廠的EVB樣機爲例,
cd kernel
make ARCH=arm rocckchip_defconfig
make ARCH=arm rk3288-evb-android-rk808-edp-avb.img -j8
這裏的 rockchip_defconfig 爲RK3288的默認內核配置,我們可以根據自己的實際情況進行刪減和添加。
第二條指令就是以設備樹文件 rk3288-evb-android-rk808-edp-avb.dts進行內核鏡像的編譯。
完成以上的編譯後內核目錄會產生 kernel.img resource.img兩個鏡像文件。
Android的編譯
在SDK目錄下執行配置環境變量的命令
Source build.sh
make -j4
安卓的編譯耗時比較長,此時只需等待其編譯完成即可。安卓編譯的過程中可能會出現報錯一般情況是缺少對應的工具此時根據錯誤代碼安裝相應的軟件即可。
完成安卓的編譯後執行腳本 mkimages.sh,
固件將會複製到在 rockdev/Image-rk3288目錄下。
固件的下載
下載軟件在官方sdk裏面有。打開對應工具後,將硬件的usb otg口接到電腦上,將板子的模式設置成 loader或者maskrom模式後即可通過Android開發工具完成下載。
總結
要完成上述功能,可以搭建rk3288的開發環境。上述的編譯和燒錄只是粗劣描述,具體見後續核心板出來時,做具體開發時對應文檔。
我們有一個qq羣,744140106.感興趣可以撩一下。