openUBMC 软件运行在 Linux 系统中,固件编译需要完成uboot、kernel、rootfs和应用的编译构建,构建过程非常复杂,为减少系统的差异性带来的影响,当前社区仅支持 Ubuntu 24.04操作系统和x86-64芯片组。
如果习惯 Windows 开发的用户需要部署 Ubuntu 操作系统虚拟机,当然你也可以选择在PC上直接部署 Ubuntu 操作系统。
操作系统安装
请确保您的系统满足以下要求:
- 操作系统:Ubuntu 24.04(可以在 Windows 中使用 Docker、VirtualBox、VMware、WSL 等工具部署 Ubuntu 24.04 虚拟机,也可以从云主机厂商购买 Ubuntu 24.04 虚拟机,或者直接在您的电脑上安装 Ubuntu 24.04 操作系统)
- 芯片组:x86-64(Kunpeng 处理器的支持正在规划,预计 26 年底提供支持)
- 内存:Ubuntu 系统可用内存至少 16GB(如果使用 Windows 系统部署虚拟机,建议 Windows 系统的内存至少 32GB)
- 交换分区:强烈建议配置32GB的交换分区
- 磁盘空间:如果只是简单体验,建议至少保留64GB可用空间
- 网络:需要网络连接以下载依赖和访问社区资源
TIP
如果您只是想体验 openUBMC 或快速上手,或者您对 Linux 操作系统特别是 Ubuntu 24.04 操作系统缺少基本了解,推荐采用 Docker 的环境搭建方式,这也是社区主推的方案——只需安装 Docker 运行时,简单几步即可完成环境搭建,社区预置镜像已包含所有必要开发工具。 建议首次体验时使用纯净的 Ubuntu 操作系统,为避免您的 Ubuntu 系统安装了其它软件导致环境变量、系统配置产生差异。
如果您还没有 Ubuntu 24.04 裸机或虚拟机,请参考以下文档使用 Windows Docker Desktop 或 Windows WSL 完成 Ubuntu 24.04 操作系统部署。适用于 Windows 10(64 位)或更高版本的 Windows 系统。
| 方法 | 描述 | 搭建耗时 | 适用人群 |
|---|---|---|---|
| Docker(推荐) | 使用 openUBMC 社区研发 Docker 镜像,在 Docker Container 中进行研发 | ~5 分钟 | 期望快速搭建开发环境的开发者 使用云环境进行开发的开发者 大多数开发者的首选方案 |
| Windows WSL | 使用 WSL 能力在 Windows 上运行 Ubuntu 环境进行开发,其他事务仍在 Windows 上完成 | ~30 分钟 | 习惯使用 Ubuntu 研发环境,但仍需要使用 Windows 进行其他工作的开发者 |
IMPORTANT
openUBMC 使用了大量的 Python 脚本和工具,如果您的 Ubuntu 24.04 中已经安装了 conda 等环境管理器,请确保相关配置正确,可以使用 pip3 install conan==2.13.0 或环境管理器配套的命令安装 conan 包,再运行 conan 命令确保命令可以访问。
网络配置
openUBMC 开发环境初始化及运行过程中需要使用大量的在线资源,请确保您的虚拟机可以访问这些资源:
- mirrors.huaweicloud.com - 华为云镜像
- registry.npmmirror.com - npm 淘宝镜像
- openubmc-apt-repo.obs.cn-north-4.myhuaweicloud.com - openUBMC apt 仓库
- keyserver.ubuntu.com - Ubuntu GPG keyserver
- conan.openubmc.cn - openUBMC conan 仓库
- repo.openubmc.cn - openUBMC 工具仓库
将以下命令复制到 Ubuntu 24.04 命令行终端中运行,如果返回 200 表示网络连通性 OK,否则需要联系管理员配置您的虚拟机/容器/Windows 网络或网络防火墙。
for url in \
"https://mirrors.huaweicloud.com" \
"https://registry.npmmirror.com" \
"https://openubmc-apt-repo.obs.cn-north-4.myhuaweicloud.com" \
"https://keyserver.ubuntu.com" \
"https://conan.openubmc.cn" \
"https://repo.openubmc.cn"
do
echo -n "$url: "
curl -s -o /dev/null -w "%{http_code}\n" --max-time 5 "$url"
done开发环境初始化
完成操作系统安装后,您应该有一个可以登录的 Ubuntu 24.04 操作系统。请通过 SSH 或终端登录系统,完成系统工具安装、环境配置等关键开发环境初始化,能够基于 openUBMC 所提供的工具包以及开源工具进行 openUBMC 系统构建和开发。
NOTE
部分安装操作以及工具命令依赖 sudo 权限,请使用具备 sudo 权限的用户进行 openUBMC 安装与开发。 部分云厂商会修改 /etc/apt/sources.list.d/ubuntu.sources 文件以变更软件源。 openUBMC 镜像制作需要完成复杂的权限和配置,使用非 root 用户需要您具备充足的 Linux 系统知识,如果您对 Linux 系统缺乏足够的掌握,建议使用 root 用户身份。
开发者环境准备
openUBMC 社区使用 manifest 仓库 管理产品的构建策略,该仓库同时提供了环境初始化功能。
请在 Ubuntu 24.04 系统的终端中执行以下操作步骤:
拉取 manifest 仓库代码到本地工作空间。
shellmkdir -p /home/workspace cd /home/workspace # 克隆manifest产品配置策略代码 git clone https://gitcode.com/openUBMC/manifest.git # 进入manifest目录 cd manifest # 切换tag到 26.03_2026.03.31 git checkout 26.03_2026.03.31在初始化过程中会提醒您输入Conan用户名和密码,请使用您的社区账号密码登录,如果您未注册社区账号,请点击 链接 完成账号注册。
前往 openUBMC 社区软件应用中心 下载 bmcsdk 26.03 版本,并将下载的 bmcsdk 文件存放在 manifest 代码仓库目录下,然后执行脚本文件进行环境初始化。
shell# 当前目录应该在/home/workspace/manifest,请检查 # 下载bmc_sdk wget https://repo.openubmc.cn/26.03/sdk/bmc_sdk.zip -O /home/workspace/bmc_sdk_26.03.zip # 执行环境一键初始化 python3 init.py -path /home/workspace/bmc_sdk_26.03.zip
[!NOTICE] 社区账号密码用于 openUBMC 开发环境访问社区包管理器、社区官网等资源鉴权。 bmcsdk 版本需与当前 manifest 代码版本保持一致。 通常情况下 manifest 在 main 分支,如果本地已经有 manifest 代码,必须要执行
git pull -r origin main同步 main 分支代码。
至此,你已使用openUBMC的初始化脚本完成了环境搭建,可以在后续的章节中使用该环境开发openUBMC。
初始化常见问题与排查
在执行 python3 init.py -path /home/workspace/bmc_sdk_26.03.zip 时,可能会遇到以下失败场景。请根据错误信息对照排查。
TIP
如果需要查看详细的调试日志,可以在执行命令时添加环境变量:LOG=debug python3 init.py -path /home/workspace/bmc_sdk_26.03.zip
环境检查失败
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
仅支持Ubuntu 24.04操作系统 | 当前系统不是 Ubuntu 24.04 | 运行 cat /etc/issue 确认系统版本,openUBMC 仅支持 Ubuntu 24.04 |
请直接执行,不支持以sudo环境执行脚本 | 使用了 sudo python3 init.py | 直接以普通用户身份执行脚本,不加 sudo 命令前缀,也不要使用sudo su切换root,而是应该使用su root |
xxx不存在,请检查命令或环境配置 | 系统缺少必要命令 | 确认基础命令可用,或检查 $PATH 环境变量是否正确 |
网络相关失败
初始化过程需要访问多个在线资源(华为云apt源、npm 淘宝镜像、openUBMC 仓库等),网络不通或网络传递慢是最常见的失败或超时的原因。
症状:apt-get update、wget、pip install、npm install 等命令超时或返回连接错误。
排查步骤:
- 参照本文档"网络配置"章节,逐一检测各资源站的连通性。
- 检查代理配置:脚本会检测
https_proxy环境变量,如果配置了不需要的代理,请在初始化前执行:shellunset https_proxy && unset HTTPS_PROXY - 如果在公司内网环境,请确认防火墙放行了本文档"网络配置"章节中列出的域名。
- 如果使用 Docker 环境,检查 Docker 网络模式是否正确配置。
- 如果你访问的软件源慢,建议配置包管理器加速源,可以参考 华为云、阿里云,以及其它云厂商或各大学提供的加速源。
APT 源配置失败
症状:执行 apt-get update 报 GPG 错误、仓库无法访问,或 bingo/qemu 包下载失败并提示"请检查apt源是否配置成功"。
排查步骤:
- 检查
/etc/apt/sources.list.d/ubuntu.sources文件是否存在且内容正确。 - 检查 GPG 密钥是否导入成功:shell
gpg --list-keys BF3B2D407FDEDEA0DC91CC9412640FBCB175287A - 如果密钥服务器
keyserver.ubuntu.com无法访问,可以手动导入密钥或联系管理员开放访问。 - 检查 openUBMC APT 源文件:正确内容应包含shell
cat /etc/apt/sources.list.d/openubmc.listopenubmc-apt-repo.obs.cn-north-4.myhuaweicloud.com地址。
Conan 登录失败
症状:conan remote login 命令返回认证错误。
排查步骤:
- 确认已注册 openUBMC 社区账号,且用户名和密码正确。
- 如果密码包含特殊字符,建议使用交互式输入(不传
-user和-psw参数),避免 shell 转义问题。 - 确认网络可以访问
conan.openubmc.cn。 - 如果之前配置过 conan,可以尝试清除配置后重试:shell
rm -rf ~/.conan2
BMC SDK 解压或安装失败
症状:unzip 报错,或 SDK 文件解压不完整,或提示 安装 sdk 失败。
排查步骤:
- 确认
bmcsdk文件下载完整,检查文件大小是否正常。 - 确认
bmcsdk版本与 manifest 代码版本一致(如26.03)。 - 确认文件路径正确,建议使用绝对路径。
- 如果之前已有安装残留,手动清理后重试:shell
rm -rf ~/rtos_compiler ~/sdk ~/oee_compiler ~/oee_sdk
Node.js 安装失败
症状:n 20.18.0 或 npm install 报错。
排查步骤:
- 确认可以访问
registry.npmmirror.com。 - 如果之前已安装 Node.js 其他版本,尝试先卸载旧版本:shell
sudo apt remove -y nodejs npm - 检查磁盘空间是否充足:
df -h。
PATH 环境变量未包含 ~/.local/bin
症状:初始化完成后执行 conan、n 等命令提示 command not found,但初始化过程未报错。
原因:部分工具(如 conan、Node.js 版本管理器 n)安装到 ~/.local/bin 目录,该目录不在系统默认 PATH 中。
解决方案:
手动将 ~/.local/bin 加入 PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc添加后可通过 which conan 或 which n 验证命令是否可正常访问。
权限不足
症状:Permission denied 或写入 /usr/bin、/etc/apt/ 等目录失败。
排查步骤:
- 确认当前用户是
root身份,且是直接root登录或使用su root登录。 - 如果使用非 root 用户,初始化完成后需要手动配置环境变量,请参考上方"PATH 环境变量未包含 ~/.local/bin"章节。
命令超时
症状:某个步骤长时间无响应后报 TimeoutExpired 或命令执行超过 600 秒自动终止。
排查步骤:
- 通常是网络问题导致下载过慢,检查网络连接速度。
- 开启详细日志定位具体卡在哪个命令:
LOG=debug python3 init.py -path /home/workspace/bmc_sdk_26.03.zip。 - 如果是特定包下载缓慢,可考虑配置系统级代理加速。
openUBMC Studio 开发平台(可选)
openUBMC Studio 是 openUBMC 社区推出的集成化开发平台,专为 BMC 固件开发打造,提供代码编辑、项目构建、设备仿真、自动化检查等一站式开发体验。推荐所有开发者安装使用;首次体验时,可以暂不安装。
安装指南请参考 BMC Studio 安装指导。
其他工具(可选)
以下工具是常见的 BMC 调试工具,建议需要调试北向接口的开发者使用,本文档仅提供相关工具的外部链接,请按需安装。
ipmitool
ipmitool是一款开源的流行IPMI工具,常用于与BMC通过IPMI协议进行访问。具体获取方法请参考ipmitool Github主页
Postman
Postman是一款免费的Rest API调试工具,常用于调试Rest API接口。具体获取方法请参考Postman官网
Git 配置
openUBMC 社区使用 GitCode 管理代码仓库,后续开发过程提交代码、推送、拉取代码需要使用到 GitCode 账户,请按以下要求完成 gitcode.com 配置和本地 git 配置。
GitCode 账户配置
请参考 GitCode 官方文档完成 GitCode 密钥配置,核心步骤是密钥对生成、添加 SSH 公钥到 GitCode、测试 SSH 连接。如果您使用了非默认路径的 SSH 密钥,您需要参考”使用非默认路径的 SSH 密钥”章节完成 ~/.ssh/config 配置。
git 配置
请在 Ubuntu 24.04 系统中配置 git 用户基本信息。
# 配置用户名
git config --global user.name <your username>
# 配置邮件,务必与CLA签署的地址保持一致
git config --global user.email <your email>IMPORTANT
在社区提交 PR(Pull Request)时,社区的 CI 机器人会基于 git config 设置的邮箱检查 CLA 签署状态,请务必将 git 配置的邮箱地址与 CLA 签名的邮箱保持一致。
总结
本文档介绍了 openUBMC 开发环境的完整搭建流程,主要涵盖以下内容:
- 操作系统安装:推荐使用 Ubuntu 24.04,提供 Docker(推荐)和 Windows WSL 两种快速搭建方式
- 开发环境初始化:通过 manifest 仓库和 bmcsdk 完成一键环境初始化
完成以上步骤后,您的 openUBMC 开发环境即已准备就绪,可以开始进行 BMC 固件开发工作。后续请参考《构建你的 BMC》章节构建系统。