构建时提示输入git的账号密码,出现Username for xxx Password for xxx,或提示权限403 错误
报错原因是使用https访问代码仓,未正确配置git凭证导致需要用账号密码鉴权,请参考以下步骤设置git凭证:
- 首先参考gitcode文档 创建token。
- 创建
~/.git-credentials文件,添加https://token:token@gitcode.com,其中token是第一步创建的凭证。 - 使能配置:
git config --global credential.helper 'store --file ~/.git-credentials'。
- 备注:不同git平台创建凭证的方式有差异,请参考官方文档
产包出包build时卡在mount阶段一直失败
- 使用的镜像权限不足,mount失败,此时使用的是旧版bingo,需要在运行镜像
docker run的时候加上--privileged=true参数。 - 升级bingo版本,使用最新bingo,优化了mount的权限逻辑。
构建时报错:No remote 'openubmc_dev' defined in remote
构建时报进程异常退出,报错: internal compiler error: Killed (program cciplus)
manifest仓出包失败,报错: 组件 was not found in remote 'openubmc_dev'
- 原因是conan仓中不存在指定版本的组件,可使用
conan search 'name/*' -r openubmc_dev获取openubmc_dev组件仓已发布的name组件版本清单,选择正确的组件版本,如果组件未发布的请发布后使用。 - 在manifest中引入了错误的组件名包,检查build/subsys下的组件的版本配置。
构建组件失败,报错:CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
- 在编译环境查看
/opt/RTOS和/opt/hcc_arm64le文件夹是否存在。若不存在,则环境缺少编译需要的依赖组件。 - 通过初始化本地环境
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和当前版本依赖不配套:
- 切换到对应版本构建时,应使用官网相应版本bmc_sdk初始环境,如:切换到2509版本构建时,应使用官网2509版本bmc_sdk初始环境。
- 简易操作为:下载官网bmc_sdk,替换本地~/sdk、~/rtos_compiler文件夹(先删除本地再复制)
conan升级2.0后,本地出现组件构建bingo build出现报错:具体错误为ERROR: luajit/xx@openubmc/stable: Error in source() method
这种问题一般为开发者本地环境不匹配:
- 升级最新bingo工具。
- 切换到对应版本的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认证失效
- 升级最新bingo,版本做了优化,如认证失效会提示重新登录。
- 如老版本想解决此问题,可进入task.log文件按提示输入账号密码也可。
自签名报错问题,具体错误:ERROR: 任务 work.task_buildgppbin 执行失败,打开了自签名模式但未找到待签名的uboot文件,构建失败
- 排查本机是否存在待签名的uboot,ls -al ~/sdk,如不存在文件hi1711_xxx(带时间戳结尾的文件), 需要官网下载bmc_sdk。
- 下载官网bmc_sdk,替换本地~/sdk, 确保带时间戳结尾的文件存在。
Linux下执行 docker 命令提示 "permission denied" 或 "connect to the Docker daemon socket"
原因: Docker守护进程默认绑定Unix socket而不是TCP端口,该socket默认属于root用户。普通用户执行命令需要sudo权限,或者需要被加入到docker用户组。
解决方案:
创建docker用户组(如果不存在):
bashsudo groupadd docker将当前用户加入docker组:
bashsudo usermod -aG docker $USER重要: 执行完上述命令后,需要注销并重新登录系统(或重启)才能生效。
运行构建脚本 build.py 时报错 "FileNotFoundError: 找不到 SDK 文件"
原因: 传入的SDK路径不正确,或者使用了脚本无法识别的相对路径。
解决方案: 请在 -s 参数中使用绝对路径。 例如:
python3 build.py -s /home/user/downloads/bmc_sdk.zip ...构建时报错 "failed to solve with frontend dockerfile.v0" 或语法错误
原因: 您的Docker版本过低,或者未启用BuildKit构建引擎(新方案依赖BuildKit特性)。
解决方案:
确保Docker版本 >= 18.09。
尝试手动开启BuildKit环境变量后再次运行:
bashexport DOCKER_BUILDKIT=1 python3 build.py ...
容器启动后立即退出 (Exited)
原因: Docker容器必须有一个前台进程在运行,否则会自动退出。
解决方案: 请确保在 docker run 命令中加入了 -itd 参数,或者在命令末尾指定了保持运行的指令(如 sleep infinity 或 /bin/bash)。 如果是使用本地构建的镜像,推荐命令:
docker run -itd --name openubmc openubmc/dev:latest sleep infinity容器内 apt-get update 或 conan 连接失败
原因: 宿主机的网络环境存在DNS污染或需要代理才能访问外网。
解决方案:
DNS问题:尝试重启Docker服务。
bash# Linux sudo systemctl restart docker代理问题:如果宿主机配置了VPN或代理,容器内默认不会自动继承。需要在
docker run时通过环境变量传入代理配置:bashdocker run -e http_proxy=http://your_proxy:port -e https_proxy=http://your_proxy:port ...