You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一仓库中实现Angstrom与Poky双构建环境?

解决Angstrom发行版构建Colibri-imx6镜像的配置问题

先直接给你明确答案:是的,你必须单独克隆Angstrom发行版的专属元数据层——因为Angstrom是基于Yocto Project的独立发行版,有自己的配置体系和元层集合,没法直接复用Poky的现有层来构建Angstrom镜像。下面是适配你Ubuntu 18.04 + Yocto Zeus环境的一步步配置指南:

1. 克隆Angstrom及相关依赖元层

针对Yocto Zeus(3.0)版本,你需要创建独立的Angstrom工作目录,并克隆对应分支的元层:

# 创建与Poky隔离的Angstrom工作目录
mkdir angstrom-zeus && cd angstrom-zeus
# 克隆Angstrom核心元层(切换到zeus分支)
git clone -b zeus meta-angstrom
# 克隆OpenEmbedded核心依赖层(均切换到zeus分支)
git clone -b zeus openembedded-core
git clone -b zeus meta-openembedded
# 克隆Toradex针对Zeus版本的BSP层(Colibri-imx6硬件必需)
git clone -b zeus meta-toradex-nxp
git clone -b zeus meta-toradex-bsp-common
git clone -b zeus meta-freescale
git clone -b zeus meta-freescale-3rdparty

注:以上均为官方公开仓库,你可以通过Angstrom和Toradex的官方代码托管渠道获取仓库地址。

2. 正确初始化Angstrom构建文件夹(build_angstrom)

不要手动创建build_angstrom后直接改配置,用Yocto的环境初始化脚本自动生成合规的构建结构:

# 进入OpenEmbedded核心目录,执行初始化脚本指定构建文件夹
cd openembedded-core
source oe-init-build-env ../build_angstrom

这会自动生成build_angstrom文件夹,以及初始的local.conf和bblayers.conf配置文件。

3. 修改build_angstrom的核心配置

3.1 编辑local.conf

重点修改以下配置项,适配Colibri-imx6和你的环境:

# 指定目标硬件为Colibri-imx6
MACHINE = "colibri-imx6"
# 设置发行版为Angstrom(核心配置,不能遗漏)
DISTRO = "angstrom"
# 适配Ubuntu 18.04的SDK和Python环境
SDKMACHINE = "x86_64"
PYTHONBASE = "/usr/bin/python2.7"
# 开启并行构建(可选,加速编译,根据你的CPU核心数调整)
BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"
# 指定内核版本为4.9(匹配你的需求)
PREFERRED_VERSION_linux-imx = "4.9%"

3.2 编辑bblayers.conf

添加所有必需的元层,确保层路径正确:

BBLAYERS ?= " \
  ${TOPDIR}/../openembedded-core/meta \
  ${TOPDIR}/../meta-openembedded/meta-oe \
  ${TOPDIR}/../meta-openembedded/meta-multimedia \
  ${TOPDIR}/../meta-openembedded/meta-networking \
  ${TOPDIR}/../meta-openembedded/meta-python \
  ${TOPDIR}/../meta-angstrom \
  # Toradex BSP相关层(Colibri-imx6必需)
  ${TOPDIR}/../meta-toradex-nxp \
  ${TOPDIR}/../meta-toradex-bsp-common \
  ${TOPDIR}/../meta-freescale \
  ${TOPDIR}/../meta-freescale-3rdparty \
"

4. 解决之前手动改配置的报错原因

你之前修改local.conf后报错,大概率是以下几个问题:

  • 缺少关键元层:没添加meta-angstrom或Toradex的BSP层,导致BitBake找不到Angstrom的发行版配置或硬件驱动配方。
  • DISTRO配置错误:没设置DISTRO = "angstrom",BitBake仍默认使用Poky的配置,和Angstrom的层产生冲突。
  • 路径关联错误:手动创建的build文件夹没有正确关联Angstrom的层路径,BitBake无法定位到配方文件。

5. 多构建文件夹的隔离注意事项

为了确保Poky和Angstrom的构建环境完全不冲突:

  • 分别在不同终端窗口初始化两个环境:Poky用source poky/oe-init-build-env build_poky,Angstrom用上面的source openembedded-core/oe-init-build-env build_angstrom。
  • 不要在同一个终端中切换两个环境,避免PATH、BBPATH等环境变量互相干扰导致构建失败。

完成以上配置后,你就可以在build_angstrom目录下执行bitbake core-image-minimal来构建Angstrom的测试镜像了。

内容的提问来源于stack exchange,提问作者abunickabhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:58:40