专栏中心

EEPW首页 > 专栏 > 使用容器编译Yocto镜像

使用容器编译Yocto镜像

发布人:toradex 时间:2022-09-01 来源:工程师 发布文章

By Toradex胡珊逢

Toradex 发布的 Linux BSP SDK 都是采用 Yocto Project 编译而来。文章将介绍如何使用 Docker 容器完成编译任务。采用 Docker 容器可以免于配置 Yocto Project 的依赖环境,同时能够在不同的编译主机上方便地复用所下载的文件。

 

首先参考这里安装 docker

 

我们使用编译 TorizonCore 系统的容器 torizon/crops 作为基础,对其修改从而编译 Linux BSP。修改好的容器源码可以从这里下载。

 

Dockerfile 描述里容器是如何被构建。该容器里面我们使用国内的 repo 源,便于在大部分网络环境里初始化编译所需的文件。

 

startup-tdx.sh 则是执行编译过程的脚本。脚本默认采用 dunfell-5.x.y 分支,用于编译 Linux BSP V5。其中也支持配置HTTP/HTTPS 代理。

 

Dockerfile startup-tdx.sh 放在同一个目录下,执行下面命令生成容器镜像。

-----------------------------------------

$ docker build -t crops:1 .

-----------------------------------------

 

除了从源码编译,也可以从Docker Hub 上下载,或者在 FTP 上面下载容器文件 crops.tar.gz 后在编译电脑上导入。

-----------------------------------------

$ docker pull benjaminhu/crops:1

$ docker load < crops.tar.gz

-----------------------------------------

 

 

准备好容器后,先建立一个目录例如 /root/bsp5 ,这里将会保存所有编译相关的文件,以及生成的 BSP SDK 等。运行期间  /root/bsp5 会被映射到容器内部的 /workdir 路径。下面命令运行完成后,即可生成 apalis imx8 模块上使用的  tdx-reference-minimal-image 以及 SDK,这些文件位于/root/bsp5/yocto/build/deploy 目录下。

-----------------------------------------

$ mkdir -p /root/bsp5

$ docker run --rm -it --name=crops -v /root/bsp5:/workdir --workdir=/workdir -e MACHINE=apalis-imx8 -e DISTRO=tdx-xwayland -e IMAGE=tdx-reference-minimal-image -e SDK=y benjaminhu/crops:1 startup-tdx.sh

-----------------------------------------

 

首次运行时可能会出现 NXP EULA,按PageDown EULA 底部,然后按 q 退出即可。

 

参数说明。

 


说明

可用值

MACHINE

用于指定所编译 BSP 适用的模块
必填

apalis-imx6, apalis-imx8, apalis-tk1, colibri-imx6, colibri-imx6ull, colibri-imx6ull-emmc, colibri-imx7, colibri-imx7-emmc, colibri-imx8x, verdin-imx8mm, verdin-imx8mp

DISTRO

发行版本类型

tdx-xwayland, tdx-xwayland-rt, tdx-xwayland-upstream, tdx-xwayland-upstream-rt

IMAGE

Toradex 提高两种参考 image
minimal-image 没有图形框架,在模块上可启动的最小系统。
multimedia-image 包含 QtGstreamer, Wayland 软件

tdx-reference-minimal-image,
tdx-reference-multimedia-image

SDK

用于生成 SDK

SDK=y

 

上面的命令是直接生成 BSP SDK。如果需要定制化 BSP 或者只是单独编译某个软件,可以采用下面命令进入容器,在修改 local.conf 等文件后,收到执行 bitbake 命令即可。修改文件可以在 /root/bsp5  目录下进行,无需进入容器。

-----------------------------------------

$ docker run --rm -it --name=crops -v /root/bsp5:/workdir --workdir=/workdir -e MACHINE=apalis-imx8 benjaminhu/crops:1 startup-tdx.sh

# pokyuser@826dbfcc8bf6:/workdir/yocto/build$

-----------------------------------------

 

 

完成编译任务后,输入 exit 即可退出容器。

 

yocto-bsp5.tar.xz 包含了编译 Linux BSP V5 所需的大部分文件,将其解压到你自己的编译目录,例如本文的 /root/bsp5 中。在使用上面的容器编译时就无需重复下载,缩短编译时间。

由于文件较大,压缩为多个 1GB 的文件,下载yocto-bsp5.tar.xz.* 后使用下面命令合并再解压。

-----------------------------------------

$ cat yocto-bsp5.tar.xz.* > yocto-bsp5.tar.xz

$ tar vxf yocto-bsp5.tar.xz -C /root/bsp5

-----------------------------------------


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: ARM Linux Ycoto docker NXP iMX8 Toradex Apalis

相关推荐

Arm宣布推出Performix,为开发者带来 AI 时代必备的可扩展性能

走进智能工厂 为何智能诊断是持续运行的关键

最新ARM技术和嵌入式技术发展动态 下

视频 2009-10-22

WinCE+ARM开发及关键技术 下

视频 2009-10-22

ARM嵌入式软件编程经验谈

Arm CEO:AI智能体将推动CPU核心数升至 512

网络与存储 2026-05-11

ARM开发详解

ARM嵌入式系统开发:软件设计与优化

Arm财报过山车:营收创纪录,股价跌7%

ARM Axion 处理器加持谷歌第八代 TPU,云端全面转向智能体 AI 架构

最新ARM技术和嵌入式技术发展动态 中

视频 2009-10-22

基于 Zephyr 实时操作系统与恩智浦平台搭建可扩展嵌入式系统

WinCE+ARM开发及关键技术 上

视频 2009-10-22

Arm遭遇监管危机:FTC针对其技术授权启动反垄断调查

2026-05-18

ARM 展示小型低功耗上网本样品

视频 2009-03-16

汽车暖通空调(HVAC)控制参考设计

边缘 AI 加速的 Arm Cortex‑M0+ MCU 如何为电子产品注入更强智能

安谋科技Arm China与国民技术签署Arm Total Access授权许可协议,加速AI时代MCU灵活创新与高效落地

ARM嵌入式系统开发

arm学习资料

资源下载 2007-12-03
更多 培训课堂
更多 焦点
更多 视频

技术专区