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