瑞芯微RK3568|SDK開發(fā)之環(huán)境安裝及編譯操作
一個通用 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:存放每次生成編譯時(shí)間、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ā),若編譯遇到報(bào)錯,可以查看報(bào)錯信息,安裝對應(yīng)的軟件包。
3. SDK整體編譯3.1 查詢操作
在SDK目錄下輸入./build.sh -h可以得知SDK支持的命令,如下所示。
-h可查看各部分模塊的詳細(xì)編譯命令,例如:./build.sh-h kernel可以查看單獨(dú)編譯內(nèi)核的詳細(xì)步驟,詳細(xì)信息將在后續(xù)章節(jié)逐一介紹。
3.2 整體編譯操作
SDK支持單獨(dú)編譯以及整體編譯,單獨(dú)編譯。單獨(dú)編譯在下面獨(dú)立章節(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)核階段時(shí),第一次編譯需要對電源域進(jìn)行判斷,這里全部選擇第2個3300000,如下圖所示:
得到的編譯固件路徑為SDK包根目錄下的rockdev目錄,如下所示。
然后再更新萬象提供的光盤資料出廠鏡像中的對應(yīng)固件即可,如下所示。
rockdev目錄內(nèi)的燒錄文件實(shí)際是把各個組成部分的編譯結(jié)果鏈接到此目錄,各個編譯結(jié)果的鏈接情況如下所示。
圖3.1 rockdev目錄內(nèi)容
所以各個組成部分的來源如下所示。
來源 | 文件 | 描述 |
Uboot | MiniLoaderAll.bin | 引導(dǎo)文件 |
uboot.img | uboot代碼主體 | |
Kernel | boot.img | kernel代碼主體 |
Buildroot | recovery.img | 來源于buildroot |
rootfs.ext4 | 這兩個文件為同一個文件,為buildroot代碼主體
| |
rootfs.img | ||
雜項(xiàng) | misc.img | 來自rockchip的自定義文件 |
oem.img | oem分區(qū)的固件鏡像 | |
parameter.txt | 參數(shù)保存文件,由原廠定義 | |
userdata.img | 用戶空間的固件鏡像 |
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
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。