1. SDK簡介 一個通用 Linux SDK 工程目錄包含有buildroot、app、kernel、device、docs、external 等目錄。其中一些特性芯片如RK3308/RV1108/RV1109/RV1126等,會有所不同。 ● app:存放上層應用 app,主要是 qcamera/qfm/qplayer/settings 等一些應用程序。 ● buildroot:基于 buildroot (2018.02-rc3) 開發的根文件系統。 ● device/rockchip:存放各芯片板級配置和Parameter文件,以及一些編譯與打包固件的腳本和預備文件。 ● docs:存放芯片模塊開發指導文檔、平臺支持列表、芯片平臺相關文檔、Linux開發指南等。 ● IMAGE:存放每次生成編譯時間、XML、補丁和固件目錄。 ● external:存放第三方相關倉庫,包括音頻、視頻、網絡、recovery 等。 ● kernel:存放 kernel 4.4 或 4.19 開發的代碼。 ● prebuilts:存放交叉編譯工具鏈。 ● rkbin:存放 Rockchip 相關的 Binary 和工具。 ● rockdev:存放編譯輸出固件。 ● tools:存放 Linux 和 Windows 操作系統環境下常用工具。 2. SDK環境安裝 本 SDK 開發環境是在Ubuntu 系統上開發測試。我們推薦使用 Ubuntu 18.04 的系統進行編譯。其他的Linux 版本可能需要對軟件包做相應調整。除了系統要求外,還有其他軟硬件方面的要求。 ●硬件要求:64 位系統,硬盤空間大于40G。如果您進行多個構建,將需要更大的硬盤空間。 ●軟件要求:Ubuntu 18.04 系統。 編譯 SDK 環境搭建所依賴的軟件包安裝命令如下: 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 系統或更高版本開發,若編譯遇到報錯,可以查看報錯信息,安裝對應的軟件包。 在SDK目錄下輸入./build.sh -h可以得知SDK支持的命令,如下所示。
SDK支持單獨編譯以及整體編譯,單獨編譯。單獨編譯在下面獨立章節會詳細介紹,此處先介紹整體編譯方法。步驟如下: · 選擇默認配置,./build.sh lunch,選擇第5個配置(rk3568評估套件) · 執行編譯操作,./build.sh all · 執行打包操作,./mkfirmware.sh · 等待編譯完成獲取編譯固件 具體操作命令如下: ./build.shBoardConfig-rk3568-evb1-ddr4-v10.mk ./build.shall ./mkfirmware.sh 編譯到內核階段時,第一次編譯需要對電源域進行判斷,這里全部選擇第2個3300000,如下圖所示: 得到的編譯固件路徑為SDK包根目錄下的rockdev目錄,如下所示。 然后再更新萬象提供的光盤資料出廠鏡像中的對應固件即可,如下所示。 rockdev目錄內的燒錄文件實際是把各個組成部分的編譯結果鏈接到此目錄,各個編譯結果的鏈接情況如下所示。 圖3.1 rockdev目錄內容 所以各個組成部分的來源如下所示。
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 |