基于630版本的1712构建单个组件失败,报错pwd

基于630版本的1712构建单个组件失败,触发了源码构建,使用1711的sdk构建正常

答案内容由AI生成,仅供参考:

:white_check_mark: 解决方案

根据上述信息,您遇到的根本原因是:当前开发环境使用了与 630 版本/1712 芯片不配套的 SDK(可能是沿用了 1711 的 SDK),导致环境变量 pwd 无法被正确注入,触发源码构建失败

请按以下步骤操作:

  1. 确认正确的 SDK 版本

    • 630 版本(如 openUBMC 25.06)的 1712 芯片应使用官网上对应 630 版本 1712 芯片的 bmc_sdk
    • 不要使用 1711 的 SDK,两者工具链、环境变量封装不同。
  2. 更换 SDK 并重新初始化

    # 1. 删除旧的 SDK 和编译器缓存
    rm -rf ~/sdk ~/rtos_compiler
    
    # 2. 从官网下载正确版本的 bmc_sdk(例如 25.06 对应 1712 的 SDK)
    #    解压后将内部的 sdk 和 rtos_compiler 复制到 ~ 目录
    
    # 3. 切换到对应版本的 manifest 分支
    git checkout <对应630版本的manifest标签>
    
    # 4. 初始化 SDK 环境
    bingo build -t install_sdk
    
  3. 重新构建组件

    bingo build --stage=stable
    
  4. 验证:若仍报错,可参考文档块 #1 中的建议,检查 conan 是否支持 pwd 环境变量注入(查看 .conan/profiles/your_profile 有无缺失字段),并确保 manifest 中组件的版本与 SDK 完全匹配。


:pushpin: 关键总结

问题表现 可能原因 解决方向
630版本1712构建单个组件失败,报错pwd,1711 SDK正常 使用了错误的 SDK 版本,环境变量不配套 使用官网对应630版本1712的 SDK,执行 install_sdk 重新初始化

提示:manifest 与 bmc_sdk 存在严格的版本对应关系,切换分支后必须同步更新 SDK,否则会出现各种构建异常(包括 KeyError: 'pwd'、源码构建触发等)。

点击此处查看详细分析解答

根据您提供的信息,问题描述为:在基于630版本(可能指OpenUBMC 25.06或类似版本)的1712芯片上构建单个组件失败,触发源码构建并报错pwd,而使用1711的SDK构建正常。这属于典型的SDK版本与环境不匹配问题。


:magnifying_glass_tilted_left: 原因分析

从知识库和文档块中可提取以下关键信息:

  1. KeyError: ‘pwd’ 是一个运行时错误,表示环境变量 pwd 缺失或未定义。该错误通常出现在 Conan 的 source() 调用阶段,与构建环境配置密切相关(参见知识图谱中 KeyError pwdConanmanifest.yml 的关系)。

  2. 构建引擎(bingo)与 SDK 版本必须配套。文档块 #1(“构建工程”)明确指出:

    “切换到对应版本构建时,应使用官网相应版本bmc_sdk初始环境,如:切换到2509版本构建时,应使用官网2509版本bmc_sdk初始环境。”

  3. 同一文档块还建议:

    “切换到对应版本的manifest,执行一次 bingo build -t install_sdk

  4. 文档块 #8(“组件之内bingo build失败”)中,用户同样遇到 KeyError: 'pwd',社区回复的解决步骤包括:

    • 下载最新的对应版本 bmc_sdk
    • 删除本地 ~/sdk~/rtos_compiler
    • 复制正确 SDK 到 ~ 目录
    • 拉取对应主干 manifest,执行 bingo build -t install_sdk
  5. 1711 SDK 与 1712 SDK 不同。知识图谱中指出 bmc_sdk 有多个版本(如 25.03、25.09、5.12 等),且 2509高可用构建失败 事件中明确提到:“A mismatch in the bmc_sdk version is suspected to be the root cause of the build failure.”


:white_check_mark: 解决方案

根据上述信息,您遇到的根本原因是:当前开发环境使用了与 630 版本/1712 芯片不配套的 SDK(可能是沿用了 1711 的 SDK),导致环境变量 pwd 无法被正确注入,触发源码构建失败

请按以下步骤操作:

  1. 确认正确的 SDK 版本

    • 630 版本(如 openUBMC 25.06)的 1712 芯片应使用官网上对应 630 版本 1712 芯片的 bmc_sdk
    • 不要使用 1711 的 SDK,两者工具链、环境变量封装不同。
  2. 更换 SDK 并重新初始化

    # 1. 删除旧的 SDK 和编译器缓存
    rm -rf ~/sdk ~/rtos_compiler
    
    # 2. 从官网下载正确版本的 bmc_sdk(例如 25.06 对应 1712 的 SDK)
    #    解压后将内部的 sdk 和 rtos_compiler 复制到 ~ 目录
    
    # 3. 切换到对应版本的 manifest 分支
    git checkout <对应630版本的manifest标签>
    
    # 4. 初始化 SDK 环境
    bingo build -t install_sdk
    
  3. 重新构建组件

    bingo build --stage=stable
    
  4. 验证:若仍报错,可参考文档块 #1 中的建议,检查 conan 是否支持 pwd 环境变量注入(查看 .conan/profiles/your_profile 有无缺失字段),并确保 manifest 中组件的版本与 SDK 完全匹配。


:pushpin: 关键总结

问题表现 可能原因 解决方向
630版本1712构建单个组件失败,报错pwd,1711 SDK正常 使用了错误的 SDK 版本,环境变量不配套 使用官网对应630版本1712的 SDK,执行 install_sdk 重新初始化

提示:manifest 与 bmc_sdk 存在严格的版本对应关系,切换分支后必须同步更新 SDK,否则会出现各种构建异常(包括 KeyError: 'pwd'、源码构建触发等)。

构建时可以加入chipv2_enable参数

-o libsoc_adapter/*:chipv2_enable=True -o libmc4lua/*:chipv2_enable=True

如果还提示错误,可根据错误提示,继续添加参数

例如network_adapter构建

bmcgo build --stage stable -r conan_remote -bt debug -o libsoc_adapter/*:chipv2_enable=True -o libmc4lua/*:chipv2_enable=True -o libmgmt_protocol/*:chipv2_enable=True -o mctpd/*:chipv2_enable=True
1 个赞

感谢感谢!解决了!

可以直接加上-o */*:chipv2_enable=True