固件编译工具(Docker 方式)¶
说明¶
SDK编译工具 - Docker 方式,通过 Firelfy 定制的 Ubuntu 16.04 Docker镜像,快速搭建SDK所需的编译环境。
我们已经在Docker镜像内配置好了编译SDK所需的依赖环境,无需在本地配置编译环境,进入对应的docker容器内进行SDK编译即可。
目前暂时只支持ROC-RK3308-CC Buildroot SDK的编译。
安装 Docker CE¶
Docker CE 支持以下版本的 Ubuntu 操作系统:
Bionic 18.04 (LTS)
Xenial 16.04 (LTS)
Trusty 14.04 (LTS) (Docker CE v18.06 及以下版本)
各种环境下的安装指南,官网文档都有介绍。
我们主要在Ubuntu环境下测试和使用,其他系统环境下待验证。
使用 DKCook 进行编译¶
DKCook
是Firefly为了方便使用写的一个简单脚本,放在了SDK的FFTools/DockerCook/
目录下。
如果没找到FFTools/
,请更新最新的SDK。
DKCook
默认使用的docker镜像是tchip/buildroot-builder
,在使用的时候会自动到Docker Hub
下载,不需要其他额外的操作。
其使用方式很简单,在原有的编译命令前面加上./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
,关闭BR2_PACKAGE_RKWIFIBT_RTL8188EU
,打开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
例如,编译内核:
cd SDK/
./FFTools/DockerCook/DKCook ./build.sh kernel
或者进入到kernel目录编译内核:
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
同时,如果需要进入到容器里面进行操作,可以执行命令:
cd SDK/
./FFTools/DockerCook/DKCook --bash
注意:
如果之前在 Docker 容器中编译,后面想转到 PC 上编译,或者之前在 PC 上编译,后面想转到 Docker 容器中编译,那么由于环境已经改变,你需要重新编译整个SDK(主要针对buildroot,删掉 SDK/buildroot/output/
目录),否则会出现编译错误。
进阶¶
如果对 Docker 比较熟悉,可以参考下面,自定义 Docker 操作。
获取 Docker 镜像¶
该 Docker 镜像获取方式有两种:
通过
Dockerfile
生成镜像通过Docker Hub 下载镜像
通过 Dockerfile 生成镜像¶
Github 地址: https://github.com/T-Firefly/buildroot-builder
从github拉取源码:
git clone https://github.com/T-Firefly/buildroot-builder.git
执行命令:
cd DockerCook/
docker build -t buildroot-builder .
通过 Docker Hub 下载镜像¶
Docker Hub 上的搜索: tchip/buildroot-builder
即可找到。
命令行获取Docker镜像:
docker pull tchip/buildroot-builder:latest