请教一下,Docker中如何使用BMC Studio ?谢谢

我的物理机(ubuntu24.04)安装了openUBMC的build环境。重启以后再无法进入ubuntu24.04了。 所以现在只能采用Docker的方式build openUBMC。请教一下,Docker中如何使用BMC Studio ?谢谢

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

:white_check_mark: 总结:为什么 Docker 是更优选择?

传统物理机 Docker 容器
配置复杂,易出错 一键拉取,环境一致
容易污染系统 隔离运行,安全可靠
不易备份迁移 镜像可复制,易于分发
出问题难恢复 删除容器即可重置

:white_check_mark: 结论:您当前的情况反而是一个契机 —— 从物理机迁移到标准化的容器化开发流程,是 openUBMC 推荐的最佳实践

点击此处查看详细分析解答
# 在 Docker 中使用 BMC Studio 的详细指南

非常理解您当前的困境。由于物理机环境(Ubuntu 24.04)出现问题无法启动,使用 **Docker 容器化环境** 来运行 **BMC Studio** 并进行 **openUBMC 构建** 是一个非常合理、安全且推荐的解决方案。以下将为您 **全面、准确** 地说明如何在 Docker 环境中部署和使用 BMC Studio,以完成 openUBMC 的开发与构建任务。

---

## ✅ 一、核心概念解析

根据提供的上下文信息,以下是关键点总结:

| 概念 | 说明 |
|------|------|
| **BMC Studio** | 是 openUBMC 的可视化集成开发环境(IDE),用于配置、构建、仿真和管理 BMC 固件。 |
| **bingo** | 是 BMC Studio 的命令行工具(CLI),用于执行 `build`、`check`、`studio start` 等操作。 |
| **Docker** | 被官方推荐的 **标准开发环境隔离方案**,确保构建过程的一致性和可重复性。 |
| **openUBMC Build 环境** | 通常基于 Docker 容器运行,使用 `Ubuntu 24.04` 作为基础操作系统。 |
| **Docker 镜像** | 官方提供 `swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_25.09` 等预配置镜像。 |

> 🛑 **重点提示**:您可以完全放弃物理机的复杂配置,转而通过 Docker 容器“重建”一个干净、标准、可复用的 openUBMC 开发环境。

---

## ✅ 二、Docker 中运行 BMC Studio 的完整步骤

### 🔧 步骤 1:准备 Docker 环境

确保您的宿主机(即使是恢复环境的临时系统)已安装 Docker。

```bash
# 安装 Docker(适用于 Ubuntu)
sudo apt update
sudo apt install docker.io -y

# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

:white_check_mark: 推荐:同时安装 docker-compose 以便后续扩展使用。


:wrench: 步骤 2:拉取官方 openUBMC Docker 镜像

openUBMC 社区提供预构建的 Docker 镜像,包含 BMC SDK、Conan、bingo 等工具。

docker pull swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_25.09
  • 该镜像是为 openUBMC 25.09 及以后版本 设计的标准开发环境。
  • 已预装:
    • Ubuntu 24.04
    • Conan 包管理器
    • bingo CLI 工具
    • Python、GCC、Git 等构建依赖

:wrench: 步骤 3:创建共享工作目录(持久化代码)

创建一个本地目录,用于在宿主机和容器之间共享项目代码与构建产物。

mkdir -p ~/openubmc_workspace
cd ~/openubmc_workspace

:wrench: 步骤 4:启动 Docker 容器(包含 BMC Studio 运行环境)

运行以下命令启动容器,并挂载共享目录:

docker run -itd \
  --name bmc_studio_env \
  --privileged=true \
  -v ~/openubmc_workspace:/workspace \
  -p 10000:10000 \
  swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_25.09 \
  /bin/bash

:magnifying_glass_tilted_left: 参数说明

  • -v ~/openubmc_workspace:/workspace:实现代码持久化
  • -p 10000:10000:BMC Studio Web UI 端口映射
  • --privileged=true:允许容器内运行 QEMU 仿真等特权操作

:wrench: 步骤 5:进入容器并初始化环境

docker exec -it bmc_studio_env /bin/bash

进入后,您处于容器内部的 Ubuntu 24.04 环境中。

(可选)运行初始化脚本(如 init.py

部分镜像需要执行初始化脚本配置 Conan、代理、镜像源等:

python3 /workspace/init.py

(若无此脚本可跳过)


:wrench: 步骤 6:获取代码并构建 openUBMC

6.1 克隆 manifest 仓库(项目入口)

cd /workspace
git clone https://gitee.com/openubmc/manifest.git
cd manifest

6.2 使用 bingo 构建 openUBMC 固件

bingo build -b openUBMC

或构建 QEMU 仿真版本:

bingo build -sc qemu -b openUBMC

:white_check_mark: 构建成功后,固件包将生成在:

manifest/output/rootfs_openUBMC.hpm

:wrench: 步骤 7:启动 BMC Studio(Web UI)

BMC Studio 默认通过 Web 访问(端口 10000)。

在容器内执行:

bingo studio start

然后在 宿主机浏览器 中访问:

http://localhost:10000

即可打开 BMC Studio 的图形化界面,进行模型配置、QEMU 仿真、SSH 连接等操作。

:light_bulb: 提示:如果页面无法打开,请检查容器是否成功映射了 -p 10000:10000,并确认服务已启动。


:white_check_mark: 三、常见问题与解决方案

问题 原因 解决方案
bingo: command not found 环境未初始化或路径问题 确保使用官方镜像,或手动安装 openubmc-bingo
构建时报 Conan remote not found SDK 版本与代码版本不匹配 切换到对应版本 SDK,如 bmc_sdk_25.09
Docker 容器无法访问外网 DNS 问题或代理限制 配置 /etc/docker/daemon.json 使用国内镜像源或设置代理
BMC Studio 页面打不开 端口未映射或服务未启动 检查 -p 10000 是否设置,执行 bingo studio start
“物理机无法进入 Ubuntu” 系统损坏或引导错误 建议使用 Live USB 修复或重装系统,期间继续使用 Docker 开发

:white_check_mark: 四、强烈建议:使用 VS Code + Docker 插件远程开发

为了获得最佳体验,推荐使用 Visual Studio Code 搭配 Remote - Containers 插件。

优势:

  • 在 Windows/Mac/Linux 上均可开发
  • 直接编辑容器内文件
  • 终端集成,调试方便
  • 无需在本机安装任何依赖

配置方式:

  1. 安装 VS Code 和 “Remote - Containers” 插件
  2. .devcontainer.json 文件放入项目根目录
  3. 使用 “Reopen in Container” 自动连接 Docker 环境

:white_check_mark: 五、参考资料(来自官方文档)

  1. Docker开发环境搭建 —— 官方推荐方法
  2. BMC Studio 用户指南
  3. bingo build -h —— 命令行帮助文档
  4. openUBMC 社区论坛:https://discuss.openubmc.cn

:white_check_mark: 总结:为什么 Docker 是更优选择?

传统物理机 Docker 容器
配置复杂,易出错 一键拉取,环境一致
容易污染系统 隔离运行,安全可靠
不易备份迁移 镜像可复制,易于分发
出问题难恢复 删除容器即可重置

:white_check_mark: 结论:您当前的情况反而是一个契机 —— 从物理机迁移到标准化的容器化开发流程,是 openUBMC 推荐的最佳实践


如有更多问题(如如何导出 HPM 包、如何烧写、如何仿真 QEMU),欢迎继续提问!祝您构建顺利!

启动docker时映射bmc studio的端口号10000到宿主机应该就行了,我没在docker里用过bmc studio,不过docker里启动qemu映射的web端口是正常的

1 个赞