固件編譯工具(Docker 方式)
說(shuō)明
SDK編譯工具 - Docker 方式,通過(guò) Firelfy 定制的 Ubuntu 16.04 Docker鏡像,快速搭建SDK所需的編譯環(huán)境。
我們已經(jīng)在Docker鏡像內(nèi)配置好了編譯SDK所需的依賴環(huán)境,無(wú)需在本地配置編譯環(huán)境,進(jìn)入對(duì)應(yīng)的docker容器內(nèi)進(jìn)行SDK編譯即可。
目前暫時(shí)只支持ROC-RK3308-CC Buildroot SDK的編譯。
安裝 Docker CE
Docker CE 支持以下版本的 Ubuntu 操作系統(tǒng):
Bionic 18.04 (LTS)
Xenial 16.04 (LTS)
Trusty 14.04 (LTS) (Docker CE v18.06 及以下版本)
各種環(huán)境下的安裝指南,官網(wǎng)文檔都有介紹。
我們主要在Ubuntu環(huán)境下測(cè)試和使用,其他系統(tǒng)環(huán)境下待驗(yàn)證。
使用 DKCook 進(jìn)行編譯
DKCook是Firefly為了方便使用寫(xiě)的一個(gè)簡(jiǎn)單腳本,放在了SDK的FFTools/DockerCook/目錄下。
如果沒(méi)找到FFTools/,請(qǐng)更新最新的SDK。
DKCook默認(rèn)使用的docker鏡像是tchip/buildroot-builder,在使用的時(shí)候會(huì)自動(dòng)到Docker Hub下載,不需要其他額外的操作。
其使用方式很簡(jiǎn)單,在原有的編譯命令前面加上./FFTools/DockerCook/DKCook即可。
例如,參考固件編譯,SDK全編譯:
cd SDK/ ./FFTools/DockerCook/DKCook ./build.sh roc-rk3308-cc_release_BoardConfig.mk ./FFTools/DockerCook/DKCook ./build.sh
注意:由于ROC-RK3308-CC使用的WIFI是AP6236,需要修改buildroot/configs/firefly_rk3308_release_defconfig,關(guān)閉BR2_PACKAGE_RKWIFIBT_RTL8188EU,打開(kāi)BR2_PACKAGE_RKWIFIBT_AP6236。
git diff buildroot/configs/firefly_rk3308_release_defconfig diff --git a/buildroot/configs/firefly_rk3308_release_defconfig b/buildroot/configs/firefly_rk3308_release_defconfig index d64c090..929a55b 100755 --- a/buildroot/configs/firefly_rk3308_release_defconfig +++ b/buildroot/configs/firefly_rk3308_release_defconfig @@ -29,8 +29,8 @@ BR2_PACKAGE_SOFTAPSERVER=y BR2_PACKAGE_WIFIAUTOSETUP=y BR2_PACKAGE_RKWIFIBT=y # BR2_PACKAGE_RKWIFIBT_COMPATIBLE is not set -# BR2_PACKAGE_RKWIFIBT_AP6236 is not set -BR2_PACKAGE_RKWIFIBT_RTL8188EU=y +BR2_PACKAGE_RKWIFIBT_AP6236=y +# BR2_PACKAGE_RKWIFIBT_RTL8188EU is not set BR2_PACKAGE_EQ_DRC_PROCESS=y BR2_PACKAGE_ALSA_LADSPA=y BR2_PACKAGE_ROCKCHIP_TEST=y
例如,編譯內(nèi)核:
cd SDK/ ./FFTools/DockerCook/DKCook ./build.sh kernel
或者進(jìn)入到kernel目錄編譯內(nèi)核:
cd SDK/kernel/ ../FFTools/DockerCook/DKCook make arch=arm64 firefly-rk3308_linux_defconfig ../FFTools/DockerCook/DKCook make arch=arm64 rk3308-roc-cc-dmic-pdm_emmc.img
同時(shí),如果需要進(jìn)入到容器里面進(jìn)行操作,可以執(zhí)行命令:
cd SDK/ ./FFTools/DockerCook/DKCook --bash
注意:
如果之前在 Docker 容器中編譯,后面想轉(zhuǎn)到 PC 上編譯,或者之前在 PC 上編譯,后面想轉(zhuǎn)到 Docker 容器中編譯,那么由于環(huán)境已經(jīng)改變,你需要重新編譯整個(gè)SDK(主要針對(duì)buildroot,刪掉 SDK/buildroot/output/ 目錄),否則會(huì)出現(xiàn)編譯錯(cuò)誤。
進(jìn)階
如果對(duì) Docker 比較熟悉,可以參考下面,自定義 Docker 操作。
獲取 Docker 鏡像
該 Docker 鏡像獲取方式有兩種:
通過(guò)Dockerfile生成鏡像
通過(guò)Docker Hub 下載鏡像
通過(guò) Dockerfile 生成鏡像
Github 地址: https://github.com/T-Firefly/buildroot-builder
從github拉取源碼:
git clone https://github.com/T-Firefly/buildroot-builder.git
執(zhí)行命令:
cd DockerCook/ docker build -t buildroot-builder .
通過(guò) Docker Hub 下載鏡像
Docker Hub 上的搜索: tchip/buildroot-builder即可找到。
命令行獲取Docker鏡像:
docker pull tchip/buildroot-builder:latest
命令行使用
容器默認(rèn)的工作目錄是/home/project,可將這個(gè)目錄作為掛載點(diǎn),掛載自己當(dāng)前的工作目錄。然后操作容器,例如:
docker run -it --rm \ -e USER_ID=$UID \ --mount type=bind,source="$PWD",target="/home/project" \ buildroot-builder \ /bin/bash
執(zhí)行上面命令,即可進(jìn)入到容器,參考固件編譯進(jìn)行編譯即可。
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209496 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35336 -
Firefly
+關(guān)注
關(guān)注
2文章
538瀏覽量
7045 -
RK3308
+關(guān)注
關(guān)注
1文章
39瀏覽量
1132
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論