构建工程
更新时间:2025/11/25
在Gitcode上查看源码

构建时提示输入git的账号密码,出现Username for xxx Password for xxx,或提示权限403 错误

报错原因是使用https访问代码仓,未正确配置git凭证导致需要用账号密码鉴权,请参考以下步骤设置git凭证:

  1. 首先参考gitcode文档 创建token
  2. 创建 ~/.git-credentials文件,添加 https://token:token@gitcode.com,其中token是第一步创建的凭证。
  3. 使能配置:git config --global credential.helper 'store --file ~/.git-credentials'
  • 备注:不同git平台创建凭证的方式有差异,请参考官方文档

产包出包build时卡在mount阶段一直失败

  1. 使用的镜像权限不足,mount失败,此时使用的是旧版bingo,需要在运行镜像 docker run的时候加上--privileged=true参数。
  2. 升级bingo版本,使用最新bingo,优化了mount的权限逻辑。

构建时报错:No remote 'openubmc_dev' defined in remote

请参考openUBMC社区conan仓使用指导

构建时报进程异常退出,报错: internal compiler error: Killed (program cciplus)

请参考openUBMC构建运行内存不足问题解决说明

manifest仓出包失败,报错: 组件 was not found in remote 'openubmc_dev'

  1. 原因是conan仓中不存在指定版本的组件,可使用conan search 'name/*' -r openubmc_dev获取openubmc_dev组件仓已发布的name组件版本清单,选择正确的组件版本,如果组件未发布的请发布后使用。
  2. 在manifest中引入了错误的组件名包,检查build/subsys下的组件的版本配置。

构建组件失败,报错:CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage

  1. 在编译环境查看/opt/RTOS/opt/hcc_arm64le文件夹是否存在。若不存在,则环境缺少编译需要的依赖组件。
  2. 通过初始化本地环境 bingo build -t install_sdk解决。

本地出组件dev包测试时,在manifest执行 bingo build出现报错:下载组件(xxx/xxx.dev/dev)的构建配方(recipe)失败,退出码:1

本地缓存被 rm -rf ~/.conan/data(conan1)或rm -rf ~/.conan2/p(conan2)删除,重新在组件仓执行 bingo build

本地出组件构建,bingo build出现报错:具体错误为闭源组件触发源码构建,类似错误为ERROR in xx Method ERROR XX pwd

这种问题一般为开发者本地bmc_sdk和当前版本依赖不配套:

  1. 切换到对应版本构建时,应使用官网相应版本bmc_sdk初始环境,如:切换到2509版本构建时,应使用官网2509版本bmc_sdk初始环境。
  2. 简易操作为:下载官网bmc_sdk,替换本地~/sdk、~/rtos_compiler文件夹(先删除本地再复制)

conan升级2.0后,本地出现组件构建bingo build出现报错:具体错误为ERROR: luajit/xx@openubmc/stable: Error in source() method

这种问题一般为开发者本地环境不匹配:

  1. 升级最新bingo工具。
  2. 切换到对应版本的manifest,执行一次bingo build -t install_sdk

conan升级2.0后,本地出组件构建bingo test出现报错:具体错误为闭源组件缺包触发源码构建,类似错误为ERROR in xx Method

短期内bingo test应更改为bingo test -jit,附加-jit参数即可运行

构建时出现Couldn't checkout xx git -c xx checkout 'xxxxxx' returned non-zero exit status 128, reference is not a tree

应排查是否在组件发布后又变更了git信息,如删除了commit,强推送了git提交? 开发者应遵守社区规范,版本发布后不应修改git信息树,如发生变更应重新推送组件版本。

整包构建时出现长时间等待,排查log后发现是卡在conan认证失效

  1. 升级最新bingo,版本做了优化,如认证失效会提示重新登录。
  2. 如老版本想解决此问题,可进入task.log文件按提示输入账号密码也可。

自签名报错问题,具体错误:ERROR: 任务 work.task_buildgppbin 执行失败,打开了自签名模式但未找到待签名的uboot文件,构建失败

  1. 排查本机是否存在待签名的uboot,ls -al ~/sdk,如不存在文件hi1711_xxx(带时间戳结尾的文件), 需要官网下载bmc_sdk。
  2. 下载官网bmc_sdk,替换本地~/sdk, 确保带时间戳结尾的文件存在。

Linux下执行 docker 命令提示 "permission denied" 或 "connect to the Docker daemon socket"

原因: Docker守护进程默认绑定Unix socket而不是TCP端口,该socket默认属于root用户。普通用户执行命令需要sudo权限,或者需要被加入到docker用户组。

解决方案:

  1. 创建docker用户组(如果不存在):

    bash
    sudo groupadd docker
  2. 将当前用户加入docker组:

    bash
    sudo usermod -aG docker $USER
  3. 重要: 执行完上述命令后,需要注销并重新登录系统(或重启)才能生效。

运行构建脚本 build.py 时报错 "FileNotFoundError: 找不到 SDK 文件"

原因: 传入的SDK路径不正确,或者使用了脚本无法识别的相对路径。

解决方案: 请在 -s 参数中使用绝对路径。 例如:

bash
python3 build.py -s /home/user/downloads/bmc_sdk.zip ...

构建时报错 "failed to solve with frontend dockerfile.v0" 或语法错误

原因: 您的Docker版本过低,或者未启用BuildKit构建引擎(新方案依赖BuildKit特性)。

解决方案:

  1. 确保Docker版本 >= 18.09。

  2. 尝试手动开启BuildKit环境变量后再次运行:

    bash
    export DOCKER_BUILDKIT=1
    python3 build.py ...

容器启动后立即退出 (Exited)

原因: Docker容器必须有一个前台进程在运行,否则会自动退出。

解决方案: 请确保在 docker run 命令中加入了 -itd 参数,或者在命令末尾指定了保持运行的指令(如 sleep infinity/bin/bash)。 如果是使用本地构建的镜像,推荐命令:

bash
docker run -itd --name openubmc openubmc/dev:latest sleep infinity

容器内 apt-get updateconan 连接失败

原因: 宿主机的网络环境存在DNS污染或需要代理才能访问外网。

解决方案:

  1. DNS问题:尝试重启Docker服务。

    bash
    # Linux
    sudo systemctl restart docker
  2. 代理问题:如果宿主机配置了VPN或代理,容器内默认不会自动继承。需要在 docker run 时通过环境变量传入代理配置:

    bash
    docker run -e http_proxy=http://your_proxy:port -e https_proxy=http://your_proxy:port ...