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

不删除仓库解决Kas构建Yocto时的多初始化脚本冲突问题

解决Yocto构建中meta-openembedded与poky的初始化脚本冲突问题

问题背景

用Kas 4.5搭建Yocto构建环境,因依赖meta-xilinx层,在Kas配置中添加meta-openembedded仓库后,执行构建命令时触发错误:Multiple init scripts found (meta-openembedded vs. poky). Resolve ambiguity by removing one of the repos,需要在保留两个仓库的前提下解决冲突。

错误构建日志

./myimage/tools/myimage_docker.sh kas build
Using /home/spire/air/myimage/docker/docker-compose.yml running kas -l debug build /air/myimage/bitbake/kas.yml 
Creating docker_yocto_run ... done
2024-12-12 16:14:56 - INFO     - kas 4.5 started
2024-12-12 16:14:56 - DEBUG    - Using selector: EpollSelector
2024-12-12 16:14:56 - DEBUG    - /air/myimage/bitbake$ git rev-parse --show-toplevel
2024-12-12 16:14:56 - DEBUG    - /air/myimage/bitbake$ git rev-parse --show-toplevel
2024-12-12 16:14:56 - DEBUG    - execute setup_dir
2024-12-12 16:14:56 - DEBUG    - execute setup_home
2024-12-12 16:14:56 - DEBUG    - execute init_setup_repos
2024-12-12 16:14:56 - DEBUG    - execute repo_setup_loop
2024-12-12 16:14:56 - DEBUG    - Loop repo_setup_loop: execute setup_repos_step
2024-12-12 16:14:56 - DEBUG    - execute finish_setup_repos
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/poky$ git remote set-url origin https://git.yoctoproject.org/git/poky
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/meta-openembedded$ git remote set-url origin https://git.openembedded.org/openembedded-core
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/meta-openembedded$ git cat-file -t scarthgap
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/poky$ git cat-file -t scarthgap
2024-12-12 16:14:56 - INFO     - Repository meta-openembedded already contains scarthgap as commit
2024-12-12 16:14:56 - INFO     - Repository poky already contains scarthgap as commit
2024-12-12 16:14:56 - DEBUG    - Configuration from config file:
{'distro': 'poky',
 'header': {'version': 17},
 'machine': 'qemu64',
 'repos': {'meta-openembedded': {'commit': 'scarthgap',
                                  'layers': {'meta-networking': None,
                                             'meta-oe': None,
                                             'meta-python': None},
                                  'url': 'https://git.openembedded.org/openembedded-core'},
            'poky': {'commit': 'scarthgap',
                     'layers': {'meta': None, 'meta-poky': None},
                     'url': 'https://git.yoctoproject.org/git/poky'}},
 'target': 'core-image-minimal'}
2024-12-12 16:14:56 - DEBUG    - execute repos_checkout
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/poky$ git status -s
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/poky$ git checkout -q scarthgap
2024-12-12 16:14:56 - INFO     - Repository poky checked out to scarthgap
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/meta-openembedded$ git status -s
2024-12-12 16:14:56 - DEBUG    - /opt/myimage/build-env/meta-openembedded$ git checkout -q scarthgap
2024-12-12 16:14:56 - INFO     - Repository meta-openembedded checked out to scarthgap
2024-12-12 16:14:56 - DEBUG    - execute repos_apply_patches
2024-12-12 16:14:56 - DEBUG    - execute setup_environ
2024-12-12 16:14:56 - ERROR    - Multiple init scripts found (meta-openembedded vs. poky). Resolve ambiguity by removing one of the repos
ERROR: 2

解决方案

冲突原因

你配置里的meta-openembedded实际指向的是openembedded-core仓库,这个仓库和poky一样包含oe-init-build-env初始化脚本,Kas无法自动选择使用哪一个,因此触发冲突。而真正的meta-openembedded仓库是用来提供附加层(比如meta-oe、meta-networking)的,本身不带核心初始化脚本。

具体修正步骤

  1. 修改Kas配置中的仓库URL
    将meta-openembedded仓库的URL替换为真正的meta-openembedded仓库地址:https://git.openembedded.org/meta-openembedded,该仓库包含你需要的meta-oe、meta-networking、meta-python等层,且不会与poky的初始化脚本冲突。

  2. 修改后的Kas配置示例

    repos:
      poky:
        url: https://git.yoctoproject.org/git/poky
        commit: scarthgap
        layers:
          meta:
          meta-poky:
      meta-openembedded:
        url: https://git.openembedded.org/meta-openembedded
        commit: scarthgap
        layers:
          meta-oe:
          meta-networking:
          meta-python:
    
  3. 重新执行构建
    修改配置后,重新运行kas build命令,Kas会拉取正确的仓库,此时只有poky提供初始化脚本,冲突即可解决。

内容的提问来源于stack exchange,提问作者Werner Thomassen Andrade

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:22:34