LuckFox Lyra Plus RK3506G2 Docker 开发环境搭建
环境信息
- 宿主机:Ubuntu (x86_64)
- Docker 镜像:
luckfox-sdk:22.04 - 基础系统:Ubuntu 22.04 LTS
- SDK 版本:Luckfox_Lyra_SDK_250815 (kernel 6.1, buildroot 2024.02)
关键路径
| 项目 | 路径 |
|---|---|
| Dockerfile | ~/Code/LuckFox/Dockerfile |
| SDK 源码 | ~/Code/LuckFox/sdk/Lyra-sdk/ |
| 编译固件输出 | ~/Code/LuckFox/sdk/Lyra-sdk/rockdev/ |
| Buildroot 离线包 | ~/Code/LuckFox/sdk/Lyra-sdk/buildroot/dl/ (154个源码包) |
Dockerfile 设计决策
- 基础镜像:
ubuntu:22.04—— 与 Wiki 要求的开发环境一致 - SDK 挂载方式:Volume bind mount (
-v /home/zwm/Code/LuckFox/sdk:/workspace),SDK 源码留在宿主机,容器内编译产物容器销毁后保留 - 用户身份:容器内创建
luckfox用户 (UID=1000),与宿主机 UID 一致,避免文件权限问题 - Python 环境:
python指向python2(SDK 的 repo 工具需求) - 编译方式:
./build.sh lunch交互式选择板卡配置,不做自动化
Dockerfile
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
git ssh make gcc libssl-dev \
liblz4-tool expect expect-dev g++ patchelf chrpath gawk texinfo \
diffstat binfmt-support qemu-user-static live-build bison flex fakeroot \
cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev \
libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev \
libmpc-dev bc python-is-python3 python2 curl file rsync bsdmainutils scons \
wget vim \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN ln -sf /usr/bin/python2 /usr/bin/python
ARG UID=1000
ARG GID=1000
RUN groupadd -g ${GID} luckfox && \
useradd -m -u ${UID} -g ${GID} -s /bin/bash luckfox
WORKDIR /workspace
USER luckfox
CMD ["/bin/bash"]
构建镜像:
docker build -t luckfox-sdk:22.04 .
Docker 启动命令
docker run -it --rm \
-v /home/zwm/Code/LuckFox/sdk:/workspace \
luckfox-sdk:22.04
cd /workspace/Lyra-sdk
./build.sh lunch # [1] RK3506G_Luckfox_Lyra_Plus → 启动媒介 → Buildroot
./build.sh # 全量编译
遇到的问题及解决
1. Docker registry 不可达
镜像源 docker.mirrors.ustc.edu.cn DNS 解析失败。切换到 docker.m.daocloud.io(修改 /etc/docker/daemon.json,重启 Docker daemon)。
2. Docker credential helper 缺失
docker-credential-desktop 可执行文件不存在。移除 ~/.docker/config.json 中的 credsStore: "desktop" 行。
3. repo sync 需要 Python 2
宿主机 Python 版本过高(imp 模块已移除),无法直接运行 repo。Docker 镜像中安装 python2 并将 python 符号链接到 python2 解决。
4. Buildroot 无法访问 sources.buildroot.net(GFW)
下载离线包 ~/Downloads/dl.tar.gz,解压替换 buildroot/dl/,共 154 个预下载源码包。同时将 SDK 配置中 RK_NETWORK_CHECK=n 以跳过网络检查。
5. host-m4 configure 失败
首次 configure 报 "cannot run C compiled programs",增量编译导致 config.h 不完整。清理 buildroot/output/ 后重新编译通过。
编译流程验证
./build.sh # 全量编译成功
./build.sh uboot # U-Boot 单独编译成功 → rockdev/MiniLoaderAll.bin, rockdev/uboot.img
./build.sh kernel # Kernel 单独编译成功 → rockdev/boot.img
./build.sh rootfs # Buildroot rootfs 编译成功
./build.sh firmware # 固件打包成功

浙公网安备 33010602011771号