基于社区最新manifest+630 bmc_sdk 执行qemu,ssh无法链接

参考指导:QEMU 仿真与 BMC 业务开发指南 | 文档中心 | openUBMC

执行:python3 build/works/packet/qemu_shells/vemake_1711.py

ssh无法连接

image

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本: OpenUBMC2606

  • 硬件配置:[如 CPU、内存等]

重现步骤

如上

期望结果

[您希望实现什么]

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

分析结论

[详细总结您对此问题的分析结论]

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

四、结论

基于社区现有信息,您遇到的问题很可能是 OpenUBMC 26.06 / 主干最新版本 QEMU 出包的已知缺陷,而非操作错误。社区给出的临时解决方案是:

  • 回退到 6 月初版本重新出包;
  • 或清理 Conan 缓存/临时目录后重试;
  • 同时确保使用 Docker 环境并保持默认配置。

如果上述步骤均无法解决,建议在论坛相关帖子中等待官方新版本修复,或联系社区管理员确认当前 manifest 与 BMC SDK 的版本匹配关系。

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

根据您提供的信息,该问题在 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. 检查日志和端口

  • 启动 QEMU 时保留日志输出:
python3 build/works/packet/qemu_shells/vemake_1711.py > qemu_stdout.log 2> qemu_stderr.log
  • 检查 qemu_stdout.logqemu_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 的版本匹配关系。

已知问题,请参考 ISSUE: [缺陷]: qemu网络起不来问题-qemu-AtomGit