前言:
在上一篇文章中,我們已經(jīng)配置好了Ubuntu虛擬機(jī)。本期將重點(diǎn)介紹如何Ubuntu虛擬機(jī)中使用RK3588的SDK。具體內(nèi)容包括SDK的下載與安裝、環(huán)境變量的配置、以及編譯調(diào)試的步驟和注意事項(xiàng)。通過這篇文章,你將能夠快速掌握在虛擬機(jī)中高效使用RK3588 SDK的關(guān)鍵技巧,為后續(xù)的開發(fā)工作打下堅(jiān)實(shí)基礎(chǔ)。
圖1 EVM-RK3588 評估板外觀(正面)
一、編譯環(huán)境
1.1編譯環(huán)境注意事項(xiàng)
如無特別說明,本文檔所有操作均基于1.2節(jié)硬件、軟件環(huán)境下完成。本文檔操作不需要使用 root 用戶,配置編譯環(huán)境安裝軟件使用 sudo 即可。在 ubuntu18.04下,將 android 源碼拷貝、下載到當(dāng)前用戶目錄下,拷貝、下載、解壓、編譯源碼均在普通用戶下執(zhí)行。請勿使用 root 用戶或者 sudo 命令拷貝、下載、解壓、編譯源碼,否則可能會(huì)導(dǎo)致編譯出錯(cuò)。特別說明:不能放在虛擬機(jī)的共享文件夾中編譯?。。?/p>
1.2編譯環(huán)境要求
SDK 開發(fā)環(huán)境是在 Ubuntu 系統(tǒng)上開發(fā)與測試。我們推薦使用 Ubuntu18.04 的系統(tǒng)進(jìn)行編譯。其他的 Linux 版本可能需要對軟件包做相應(yīng)調(diào)整。
硬件要求:64 位系統(tǒng),硬盤空間大于50G。如果您進(jìn)行多個(gè)構(gòu)建,將需要更大的硬盤空間。
軟件要求:Ubuntu 18.04 系統(tǒng)
1.3編譯環(huán)境配置
編譯 SDK 環(huán)境搭建所依賴的軟件包安裝命令下:
sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilibunzip \device-tree-compiler python-pip ncurses-dev pyelftools \
建議使用 Ubuntu18.04 系統(tǒng)或更高版本開發(fā),若編譯遇到報(bào)錯(cuò),可以視報(bào)錯(cuò)信息,安裝對應(yīng)的軟件包。
二、源碼獲取與解壓
2.1源碼獲取
源碼通常由我司相關(guān)人員發(fā)布在網(wǎng)盤,百度網(wǎng)盤發(fā)布的還包括使用文檔、鏡像、工具等,網(wǎng)盤上的源碼包是基礎(chǔ)包,后續(xù)將持續(xù)更新(若需要請聯(lián)系我司)。將源碼拷貝到 ubuntu 18.04 當(dāng)前登錄用戶目錄或新建 sdk 目錄下。
2.2源碼解壓
執(zhí)行解壓命令:
$ tar -xvf sdk/ talowe-evmrk3588-linux-**.tar.gz # 解壓
解壓完成后進(jìn)入 sdk 后可以看到:
圖2-1-sdk 目錄下的文件
sdk 目錄說明:
SDK├──app:#存放上層應(yīng)用 APP,主要是 qcamera/qfm/qplayer/qseting 等一些應(yīng)用程序。├──buildroot:#基于 Buildroot(2018.02-rc3)開發(fā)的根文件系統(tǒng)。├──debian:#基于 debian 10 開發(fā)的根文件系統(tǒng),支持部分芯片。├──device/rockchip:#存放各芯片板級配置以及一些編譯和打包固件的腳本和預(yù)備文件。├──docs:#存放開發(fā)指導(dǎo)文件、平臺支持列表、工具使用文檔、Linux 開發(fā)指南等。├──IMAGE:#存放每次生成編譯時(shí)間、XML、補(bǔ)丁和固件目錄。├──external:#存放第三方相關(guān)倉庫,包括音頻、視頻、網(wǎng)絡(luò)、recovery 等。├──kernel:#存放 Kernel 4.19 開發(fā)的代碼。├──linux_rootfs:#用于存放 Linux 根文件系統(tǒng)(Root File System)的相關(guān)文件和配置├──lz4:#用于存放與 LZ4 壓縮算法相關(guān)的文件和工具。├──prebuilts:#存放交叉編譯工具鏈。├──recovery:#用于存放恢復(fù)系統(tǒng)用的恢復(fù)環(huán)境文件。├──rkbin:#存放 Rockchip 相關(guān) Binary 和工具。├──rockdev:#存放編譯輸出固件。├──tools:#存放 Linux 和 Window 操作系統(tǒng)下常用工具。├──u-boot:#存放基于 v2017.09 版本進(jìn)行開發(fā)的 U-Boot 代碼。└──uefi:#存放與 Unified Extensible Firmware Interface (統(tǒng)一可擴(kuò)展固件接口,簡稱 UEFI)相關(guān)的文件和工具。
三、Buildroot (Linux)系統(tǒng)編譯無論最后要使用什么系統(tǒng),都請先全局編譯一次 buildroot,之后再進(jìn)行其他系統(tǒng)的編譯,以避免出現(xiàn)需要某個(gè)依賴的工具找不到的情況。以下操作,若無特殊說明,均在 SDK 根目錄下進(jìn)行。
3.1全局編譯
環(huán)境資源配置,再 SDK 目錄下輸入 source envsetup.sh,選擇 11 :
圖3-1-選擇環(huán)境組合
選擇完成后,進(jìn)行首次編譯,執(zhí)行全局編譯,命令如下:
$ ./build.sh # 全局編譯,編譯 uboot、kernel、recovery
編譯成功后將會(huì)在 sdk/linux/rockdev/目錄下生成如下鏡像文件。
$ ls rockdev/ #查看該目錄下的文件
MiniLoaderAll.bin #引導(dǎo) uboot、檢測啟動(dòng)方式parameter.txt #系統(tǒng)分區(qū)表、內(nèi)核傳參uboot.img #引導(dǎo)系統(tǒng)分區(qū)trust.img #ARM TrustZone 特性分區(qū)misc.img #記錄 recovery 升級信息boot.img #內(nèi)核、設(shè)備樹、logo 分區(qū)
recovery.img #恢復(fù)還原分區(qū)rootfs.img #根文件系統(tǒng)分區(qū)oem.img #存放 OEM 資源分區(qū)update-***.img #帶日期后綴的完整固件 用于整包燒寫
至此全局編譯完成,可使用上述生成的整包固件燒寫到板子內(nèi)為板子添加系統(tǒng)。
在實(shí)際的SDK運(yùn)用中還會(huì)使用到單獨(dú)編譯uboot、kernal、buildroot等等操作,下面向大家簡單介紹一下相關(guān)操作。
3.2單獨(dú)編譯uboot
執(zhí)行命令:
./build.sh u-boot
生成鏡像路徑:u-boot/
生成鏡像:uboot.img、trust.img 等
3.3單獨(dú)編譯kernal
執(zhí)行命令:
./build.sh kernel
生成鏡像路徑:rockdev/
生成鏡像:boot.img
3.4單獨(dú)編譯buildroot
編譯完 buildroot 完成后會(huì)自動(dòng)編譯 rootfs
./build.sh buildroot
生成鏡像路徑:rockdev/
生成鏡像:rootfs.img
3.5單獨(dú)編譯recovery
./build.sh recovery
3.6單獨(dú)編譯buildroot應(yīng)用
sdk 可以單獨(dú)編譯 buildroot 的單個(gè)應(yīng)用設(shè)置單個(gè)模塊,比如單獨(dú)編譯QFacialGate 應(yīng)用.。
$ make qcamera -dirclean && make qcamera -rebuild -j8
單獨(dú)編譯 rkwifibt
$ make rkwifibt-dirclean && make rkwifibt-rebuild -j8
四、使用完結(jié)
通過本篇內(nèi)容,主要是向大家展示RK3588的SDK相關(guān)編譯過程,在編譯過程中,若是遇到一些錯(cuò)誤,可以跟我們技術(shù)支持取得聯(lián)系獲取解決方案。
-
編譯
+關(guān)注
關(guān)注
0文章
660瀏覽量
32924 -
SDK
+關(guān)注
關(guān)注
3文章
1040瀏覽量
46052 -
RK3588
+關(guān)注
關(guān)注
7文章
336瀏覽量
4417
發(fā)布評論請先 登錄
相關(guān)推薦
評論