点击此处查看详细分析解答
根据您提供的信息,该问题在 openUBMC 社区论坛中有多个相同案例,属于已识别的已知问题,并非个例。结合社区反馈和 Qemu 相关 FAQ,以下是原因分析与处理建议。
一、问题定位
您执行的是:
python3 build/works/packet/qemu_shells/vemake_1711.py
启动 QEMU 后出现 SSH 无法连接,社区同类问题通常伴随以下报错:
qemu-system-aarch64-release: Slirp: Failed to send packet, ret: -1
或 BMC 内部服务启动失败类日志,例如:
maca ERROR: init.lua(243): [event]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown
二、主要原因(来自社区已知信息)
1. 最新 manifest / 主干版本存在已知缺陷
社区多个帖子确认,OpenUBMC 26.06 或 7/17 主干等较新版本的 QEMU 出包存在已知问题,会导致 SSH/Web 无法访问。论坛管理员回复为“问题已识别”,并建议:
等新版本修复,现在可以 reset 到 6 月初的版本出包使用 QEMU。
2. 开发环境不符合官方要求
官方推荐在 Ubuntu 24.04 中安装 Docker 环境运行 QEMU。如果使用 VirtualBox + Ubuntu 或其他非 Docker 方式,可能出现开发环境配置文件差异,导致无法登录。
3. 残留缓存 / 旧配置干扰
- manifest 仓的
temp 目录、output 目录残留可能导致 QEMU 启动异常。
- 本地 Conan 缓存生命周期失效,也可能导致组件版本不一致。
4. RTOS / 组件版本不一致
部分案例中,QEMU 启动后 SSH 无法连接,与 RTOS 版本不一致有关,例如:
x_tables: disagrees about version of module_layout
需要确认 manifest、BMC SDK、RTOS 驱动等版本是否匹配。
5. 构建任务被跳过,固件不完整
构建日志中可能出现:
WARN: works.packet.work_run_qemu_bmc.TaskClass 已配置 ignore_not_exist 且为真,跳过执行
这会导致 QEMU 虽然启动,但 BMC 业务服务未正确运行,从而 SSH/Web 无法访问。
三、建议处理步骤
以下步骤均来自社区 FAQ 和已解决的帖子,请按顺序尝试:
1. 临时回退到 6 月初版本
在 manifest 仓库中使用 git log 找到 6 月初的提交,执行 git reset 回退,然后重新出包:
bingo build -sc qemu
再用脚本拉起 QEMU:
python3 build/works/packet/qemu_shells/vemake_1711.py
社区确认该方式可以绕过当前最新版本的已知问题。
2. 清理临时目录和输出目录后重试
保持默认 config.json 内容,删除 manifest 仓中的 temp 目录和 output 目录(或 build 目录),然后重新执行出包和 QEMU 启动。
3. 更新 manifest / 清理 Conan 缓存
如果坚持使用最新 manifest,请执行:
# 拉取最新 manifest 组件仓
git pull
# 删除 Conan 缓存
rm -rf ~/.conan2/p/*
# 重新初始化环境
python3 init.py <用户名> -psw <密码>
# 升级 bingo
bingo upgrade
然后重新执行:
bingo build -sc qemu
python3 build/works/packet/qemu_shells/vemake_1711.py
此方法可解决 RTOS 版本不一致导致的 SSH 无法连接问题。
4. 使用 Docker 环境
请确认您在 Ubuntu 24.04 上安装的 Docker 容器内执行上述命令,不要使用 VirtualBox + Ubuntu。参考官方文档:
最好按照华为的开发资料来,使用 ubuntu24 上安装的 Docker,不要用 virtualbox+ubuntu,否则很可能开发环境配置文件差异导致无法登陆。
5. 检查日志和端口
python3 build/works/packet/qemu_shells/vemake_1711.py > qemu_stdout.log 2> qemu_stderr.log
- 检查
qemu_stdout.log、qemu_stderr.log 中是否有服务启动失败、驱动加载失败等关键信息。
- 确认 SSH 端口映射是否正确,默认 SSH 端口为
10022,对应虚拟机内 22 端口。
6. 等待服务完全启动
QEMU 中 BMC 启动较慢,部分服务可能需要 4~7 分钟才会被拉起。如果 SSH 能连通但 Web 不通,可登录后检查 nginx:
/data/home/busybox_x telnet localhost
netstat -ntlpa
查看是否有 nginx 服务。如果没有,说明 Web 服务未启动。
四、结论
基于社区现有信息,您遇到的问题很可能是 OpenUBMC 26.06 / 主干最新版本 QEMU 出包的已知缺陷,而非操作错误。社区给出的临时解决方案是:
- 回退到 6 月初版本重新出包;
- 或清理 Conan 缓存/临时目录后重试;
- 同时确保使用 Docker 环境并保持默认配置。
如果上述步骤均无法解决,建议在论坛相关帖子中等待官方新版本修复,或联系社区管理员确认当前 manifest 与 BMC SDK 的版本匹配关系。