瑞芯微RK3568|SDK開發(fā)之環(huán)境安裝及編譯操作
1.?SDK簡介
一個通用?Linux?SDK?工程目錄包含有buildroot、app、kernel、device、docs、external?等目錄。其中一些特性芯片如RK3308/RV1108/RV1109/RV1126等,會有所不同。
●?app:存放上層應(yīng)用?app,主要是?qcamera/qfm/qplayer/settings?等一些應(yīng)用程序。
●?buildroot:基于?buildroot?(2018.02-rc3)?開發(fā)的根文件系統(tǒng)。
●?device/rockchip:存放各芯片板級配置和Parameter文件,以及一些編譯與打包固件的腳本和預(yù)備文件。
●?docs:存放芯片模塊開發(fā)指導(dǎo)文檔、平臺支持列表、芯片平臺相關(guān)文檔、Linux開發(fā)指南等。
●?IMAGE:存放每次生成編譯時間、XML、補(bǔ)丁和固件目錄。
●?external:存放第三方相關(guān)倉庫,包括音頻、視頻、網(wǎng)絡(luò)、recovery?等。
●?kernel:存放?kernel?4.4?或?4.19?開發(fā)的代碼。
●?prebuilts:存放交叉編譯工具鏈。
●?rkbin:存放?Rockchip?相關(guān)的?Binary?和工具。
●?rockdev:存放編譯輸出固件。
●?tools:存放?Linux?和?Windows?操作系統(tǒng)環(huán)境下常用工具。
?
2.?SDK環(huán)境安裝
本?SDK?開發(fā)環(huán)境是在Ubuntu?系統(tǒng)上開發(fā)測試。我們推薦使用?Ubuntu?18.04?的系統(tǒng)進(jìn)行編譯。其他的Linux?版本可能需要對軟件包做相應(yīng)調(diào)整。除了系統(tǒng)要求外,還有其他軟硬件方面的要求。
●硬件要求:64?位系統(tǒng),硬盤空間大于40G。如果您進(jìn)行多個構(gòu)建,將需要更大的硬盤空間。
●軟件要求:Ubuntu?18.04?系統(tǒng)。
?
編譯?SDK?環(huán)境搭建所依賴的軟件包安裝命令如下:
?
sudo?apt-get?installuuid?uuid-dev?zlib1g-dev?liblz-dev?liblzo2-2?liblzo2-dev?git?curl?\
u-boot-tools?mtd-utilsandroid-tools-fsutils?openjdk-8-jdk?device-tree-compiler?gdisk?m4?\
gnupg?flex?bison?gperflibsdl1.2-dev?libesd-java?libwxgtk3.0-dev?squashfs-tools?\
build-essential?zipunzip?libncurses5-dev?pngcrush?schedtool?libxml2?libxml2-utils?xsltproc?\
lzop?libc6-devg++-multilib?lib32z1-dev?lib32ncurses5-dev?lib32readline-dev?gcc-multilib?\
libswitch-perllibssl-dev?liblz4-tool?gconf2?net-tools?lib32ncurses5-dev?tree?vim?gparted?\
g++?libyaml-devlibpython2.7-dev?make?libssl-dev?lib32z1?p7zip-full?python-pip?libgmp-dev?\
libmpc-dev
?
建議使用?Ubuntu18.04?系統(tǒng)或更高版本開發(fā),若編譯遇到報錯,可以查看報錯信息,安裝對應(yīng)的軟件包。
?
?
3.?SDK整體編譯
3.1???????查詢操作
在SDK目錄下輸入./build.sh?-h可以得知SDK支持的命令,如下所示。
?

-h可查看各部分模塊的詳細(xì)編譯命令,例如:./build.sh-h?kernel可以查看單獨編譯內(nèi)核的詳細(xì)步驟,詳細(xì)信息將在后續(xù)章節(jié)逐一介紹。
?
3.2??????整體編譯操作
SDK支持單獨編譯以及整體編譯,單獨編譯。單獨編譯在下面獨立章節(jié)會詳細(xì)介紹,此處先介紹整體編譯方法。步驟如下:
·??選擇默認(rèn)配置,./build.sh?lunch,選擇第5個配置(rk3568評估套件)

·??執(zhí)行編譯操作,./build.sh?all
·??執(zhí)行打包操作,./mkfirmware.sh
·??等待編譯完成獲取編譯固件
具體操作命令如下:
./build.shBoardConfig-rk3568-evb1-ddr4-v10.mk
./build.shall
./mkfirmware.sh
?
編譯到內(nèi)核階段時,第一次編譯需要對電源域進(jìn)行判斷,這里全部選擇第2個3300000,如下圖所示:

?
得到的編譯固件路徑為SDK包根目錄下的rockdev目錄,如下所示。
?

?
然后再更新萬象提供的光盤資料出廠鏡像中的對應(yīng)固件即可,如下所示。
?

rockdev目錄內(nèi)的燒錄文件實際是把各個組成部分的編譯結(jié)果鏈接到此目錄,各個編譯結(jié)果的鏈接情況如下所示。

圖3.1?rockdev目錄內(nèi)容
所以各個組成部分的來源如下所示。
?

?
3.3???????部分編譯操作
3.3.1??配置SDK
./build.shBoardConfig-rk3568-evb1-ddr4-v10.mk
3.3.2??編譯kernel
./build.sh?kernel
3.3.3??編譯rootfs
./build.sh?rootfs
3.3.4??打包update.img
./build.sh?updateimg