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

使用meta-ti构建TDA4VM Yocto镜像:非Arago发行版问题排查

问题描述

我尝试为TDA4VM构建EWAOL镜像,指定distro: ewaol时出现覆盖错误:

"Overrides could not be expanded into a stable state after 5 iterations, overrides must be being referenced by other overridden variables in some recursive fashion. Please provide your configuration to bitbake-devel so we can laugh"

使用arago作为distro时,镜像可生成但设备无法启动。想请教:

  1. 能否不使用arago,仅通过meta-ti构建Yocto镜像?
  2. 我使用kas构建镜像,配置文件如下,已集成meta-ewaol-machine但仍报错,如何解决让镜像在TDA4VM板卡上正常运行?

当前kas配置文件

header:
  version: 10

repos:
  meta-ti:
    url: git://git.yoctoproject.org/meta-ti
    path: layers/meta-ti
    refspec: kirkstone
    layers:
      meta-ti-bsp:
      meta-ti-extras:
    
  
  meta-arm:
    url: https://git.yoctoproject.org/git/meta-arm
    path: layers/meta-arm
    refspec: kirkstone
    layers:
      meta-arm: included
      meta-arm-bsp: included
      meta-arm-toolchain: included
  
  meta-openembedded:
    url: https://github.com/openembedded/meta-openembedded.git
    path: layers/meta-openembedded
    refspec: kirkstone
    layers:
      meta-oe: included
      meta-networking: included
      meta-python: included
      
  meta-arago:
    url: git://git.yoctoproject.org/meta-arago
    refspec: kirkstone
    path: layers/meta-arago
    layers:
      meta-arago-distro:
      meta-arago-extras:
      
  meta-qt5:
    url: https://github.com/meta-qt5/meta-qt5.git
    refspec: kirkstone
    path: layers/meta-qt5
    layers:
      .:

machine: j721e-evm
distro: ewaol
local_conf_header:
    meta-custom: |
     
     
     
解决方案

1. 能否不使用arago构建镜像?

可以。meta-ti的meta-ti-bsp层已经包含了TDA4VM(j721e-evm)的完整BSP配置,无需依赖meta-arago。arago是TI针对嵌入式场景优化的发行版,而EWAOL是面向边缘计算的发行版,两者的配置逻辑存在冲突,这也是你遇到递归覆盖错误的主要原因之一。

2. 解决递归覆盖错误与镜像启动问题

步骤1:移除冲突的meta-arago层

修改kas配置,删除meta-arago相关的所有内容,避免发行版配置冲突:

# 移除以下整个块
# meta-arago:
#   url: git://git.yoctoproject.org/meta-arago
#   refspec: kirkstone
#   path: layers/meta-arago
#   layers:
#     meta-arago-distro:
#     meta-arago-extras:

步骤2:确保meta-ewaol-machine正确集成

在kas配置的repos中添加meta-ewaol-machine,确保分支与其他层一致(kirkstone):

repos:
  # ... 其他已有的repo ...
  meta-ewaol-machine:
    url: git://git.yoctoproject.org/meta-ewaol-machine
    path: layers/meta-ewaol-machine
    refspec: kirkstone
    layers:
      .: included

步骤3:修复变量递归引用错误

这个错误是由于EWAOL和meta-ti层的变量存在循环引用导致的,可通过以下方式定位并修复:

  • 执行kas shell -c "bitbake -e | grep -A 10 -B 10 'recursive'",找到触发递归的变量名
  • 在local_conf_header中添加白名单,跳过这些变量的哈希检查:
    local_conf_header:
        meta-custom: |
            BB_HASHBASE_WHITELIST += "问题变量名1 问题变量名2"
    
  • 或者直接在local_conf中覆盖冲突变量,比如如果是IMAGE_FEATURES冲突,可明确指定EWAOL需要的特性:
    local_conf_header:
        meta-custom: |
            IMAGE_FEATURES = "splash package-management ssh-server-openssh"
    

步骤4:清理构建环境并重新构建

删除旧的build目录,避免缓存干扰:

rm -rf build/
kas build <你的配置文件名>.yaml

步骤5:验证镜像启动配置

构建完成后,检查生成的镜像文件:

  • 确保U-Boot镜像(u-boot-j721e-evm.bin)和设备树文件(k3-j721e-common-proc-board.dtb)正确放置到SD卡的boot分区
  • 确认根文件系统类型与U-Boot配置匹配(比如EWAOL默认用ext4,需确保U-Boot支持ext4)
  • SD卡分区格式需符合TDA4VM要求:boot分区为FAT32,根分区为ext4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:37:24