基础通用问题FAQ

-----------------------------------------------------【通用】-----------------------------------------------------
Q:openUBMC开源代码在哪里?(注:这里是实时最新的代码,如果是要开发商用版本,建议基于社区发行版代码)
A: openUBMC - 开源代码托管,代码协作 - AtomGit

Q:社区发行版的开源代码和二进制bmc_sdk哪里下载?(每个季度发布一次)
A:开源代码: 社区发行版下载 | openUBMC
二进制bmc_sdk: 鲲鹏BMC-管理软件解决方案-下载-鲲鹏社区

Q:社区学习文档资料在哪?
A: 文档中心 | openUBMC

Q:社区conan怎么配置?
A:参考 openubmc社区conan仓使用指导 - CICD SIG - openUBMC 论坛

Q:如何在openUBMC社区提交代码(PR)
A:参考 社区代码PR指南 - bmc_core SIG - openUBMC 论坛

Q:bmc_sdk的API文档在哪里?
A:https://openubmc-website.test.osinfra.cn/docs/zh/development/api/SDK.html

Q:哪里有openUBMC配套IPMI接口文档?
A: IPMI接口文档

Q:如何获取bmc_sdk的model.json和ipmi.json文件?
A: 闭源组件接口文件获取(model.json、ipmi.json)

Q:哪里有openUBMC的白皮书?
A: 技术白皮书 | openUBMC

Q:哪里有iBMC V2的白皮书?(注:2020年的,供参考)
A: 华为产品与解决方案-华为ICT设备-华为商用-华为企业业务

Q:哪里可以获取iBMC V2的用户指南?
A:以S920X10机型为例,其他机型可能有细微差异https://support.huawei.com/enterprise/zh/doc/EDOC1100252159?idPath=23710424|251364417|251364851|254541331

Q:能否从iBMC V2直接升级到openUBMC?
A:可以,但是V2的配置信息都不会保留(比如新增的用户,设置的web超时时间等等,除了ip)参考 BMC 3.xx.xx.xx版本升级openubmc指导

Q:如何出白牌包?
A:参考 openUBMC品牌包定制指南 - Docs SIG - openUBMC 论坛

Q:社区贡献看板在哪?
A: openUBMC DATASTAT

Q:串口如何配置bmc的ip?
A:串口登录bmc,执行ipmcset -d ipaddr -v ip地址 掩码 网关,例如ipmcset -d ipaddr -v 76.76.17.95 255.255.0.0 76.76.16.1

Q:能ping通bmc,ssh能连上,但是为什么web访问不了?
A:大概率需要导入ssl证书后才能访问web。参考https://discuss.openubmc.cn/t/topic/2489

Q:BMC如何收集日志?
A:方法一:登录bmc网页,点击“一键收集”即可
方法二:ssh登录bmc,执行ipmcget -d d,收集完成后,去tmp目录取日志压缩包

Q:openUBMC一键收集日志怎么看?
A:参考 openUBMC一键收集介绍 - 交流互助区 - openUBMC 论坛

Q:1711 BMC有几个分区
A:3个分区,每次升级刷新两个分区

Q:如何在线升级BMC固件
A:方法一:web登录->BMC管理->固件升级
方法二:先通过sftp把固件包传到BMC(默认是tmp目录),然后ssh登录bmc,执行ipmcset -d upgrade -v /tmp/包名

Q:为什么通电后BMC串口有输出,过一段时间会卡住,无输出,无法输命令
A:出厂默认串口方向是在OS侧,通电后,BMC启动过程中串口输出的是BMC的启动信息,BMC启动完成后,串口会自动切到OS侧,如果没上电,或者没装OS,串口就不会有输出,也无法输入

Q:如何将串口强制切到BMC侧?
A:通过ssh登录BMC,执行ipmcset –d serialdir –v 1,即可将串口切到BMC,如果要再切到OS侧,执行ipmcset –d serialdir –v 0

Q:BMC网络不通有哪些排查手段
A:1、通过串口ipmcget -d eth查看当前管理网口是否linkup,用以排查网线是否接好
2、通过串口ipmcget -d ipinfo查看当前环境的配置信息,IP、网关、掩码是否符合要求
3、通过ifconfig命令查看上述ip地址配置信息是否在协议栈生效

Q:为什么用openUBMC升级BIOS/CPLD固件,会提示“无效的升级包”?
A:可能原因是BIOS/CPLD固件的签名不是开发者自己的,比如是HW提供的固件,签名就是HW的,而openUBMC都是开发者自己的签名和证书,只能升级自己签名的BMC/BIOS/CPLD等固件。当前支持各固件签名替换成自己的签名。

Q:BMC出现异常后如何恢复?(比如web无法访问,账号无法登陆)
A:参考 BMC固件损坏时恢复环境指导

Q:为什么Support网站下载iBMA软件没有权限?

A:可能原因是没绑定公司,如果所属公司是华为计算认证的伙伴,则有权限下载,账号关联上公司即可。

Q:社区每个版本合入的需求清单,哪里可以看?

A:在 release_management:Management of openUBMC community release - AtomGit ,到对应版本目录下的release-note.md文件

Q:社区每个版本的release-note在哪里?

A:在 release_management:Management of openUBMC community release - AtomGit ,到对应版本目录下的release-plan.md文件

Q:哪里查询社区支持的兼容性部件?(注意:部件调速策略等需要基于具体产品进行适配)

A: vpd/硬盘、板卡兼容性说明.md-代码预览-vpd:基于硬件配置的重要产品数据管理项目 - AtomGit

Q:社区需求类issue处理流程是什么?

A: release_management/openUBMC社区版本需求类ISSUE处理流程与规范.md · openUBMC/release_management - AtomGit

Q:社区缺陷类issue处理流程是什么?

A: release_management/openUBMC社区版本缺陷类ISSUE处理流程与规范.md · openUBMC/release_management - AtomGit

Q:为什么gitcode上需求issue已接纳状态,评论命令后,无法往下走到开发中或转测中,提示没权限

A:因为角色不对,不是Contributor,需要作为Contributor等角色加入openUBMC才行,可以找gitcode上openUBMC的管理员邀请加入,管理员在组织成员里可以看到

Q:如何强制加载某个CSR文件?

A:将Connector对象的IdentifyMode配成2,Presence配成1,把要加载sr文件名取名为Bom_Id.sr即可(其中Bom和Id为Connector对象的属性值,比如Bom是”14191046”,Id是”PSU”,则sr取名14191046_PSU.sr)

Q:要往openUBMC社区合入新功能,可以直接提交PR合入吗?

A:合入新特性,需要先去RM SIG评审,可以在社区官网日历里找到RM SIG会议,在Etherpad链接里提前登记议题,然后开会时完成评审,即可创建需求issue

Q:如何在社区申请创建新的组件代码仓?

A:创建代码仓需要去社区TC评审,TC会议时间见社区官网日历

Q:社区vpd仓有soft.sr结尾的文件,是否都要这么配置?

A:soft.sr是早期的机制引入的,当前社区不需要拆分soft.sr

Q:发现openUBMC的代码缺陷,怎么处理?

A:到对应组件下提缺陷类issue跟踪,bmc_sdk的问题,提到AtomGit - 全球开发者的开源社区,开源代码托管平台

Q:要成为社区的Committer或Maintainer,需要满足什么要求?

A:见SIG角色说明 | openUBMC

-----------------------------------------------------【KP模组相关】-----------------------------------------------------

整体FAQ见 模组开发FAQ(开发构建问题持续补充)

Q:1711模组(也叫BMC模组)是否预置了BMC固件?
A:是,1711模组出厂flash里已经烧录了BMC固件,用于BMC软件能启动和升级客户自己定制的BMC新固件。

Q:1711模组出厂自带固件是openUBMC吗?如果不是,能升级到openUBMC吗?
A:当前920/920S/920Lite模组配套的1711模组预置的BMC固件是基于iBMC V2架构的,不是openUBMC(iBMC V3架构),支持升级到openUBMC固件。

Q:openUBMC已经适配了模组相关产品吗?
A:BMC模组出厂自带的固件,适配的是模组的demo载板,且不是openUBMC的,对于客户自己的载板,openUBMC支持公共特性,针对载板和模组需要做适配。

Q:1711模组BMC默认管理网口IP是什么?
A:bmc默认的ip是192.168.2.100

Q:1711模组BMC启动后,无法ping通BMC默认管理ip 192.168.2.100,默认账户无法登陆串口,提示密码错误
A:可能原因是模组载板PlatformId或BoardId不符合预期(从开机串口日志可以看这两个Id,早期1711模组自带的BMC固件对Id有要求),导致关键的配置文件都没加载,将裁板的PlatformId配置成0,BoardId配置成0xff即可解决。

Q:为什么1711模组BMC一键收集上来的日志,app_debug日志里有很多反复报错?
A:因为BMC模组预置的固件,不适配客户自己开发的模组载板(对于模组demo板,也仅仅是保障bmc软件能启动成功,能升级,不可用作商用),所以对于大家各自自己开发的模组载板,BMC模组预置的固件是用于启动的,不建议直接拿去发货给客户,大家需要针对自己的载板,做BMC软件的适配和功能测试,务必确保没有大量快速刷的报错日志(日志存储容量有限,会导致有用日志被冲刷,而且对BMC模组flash寿命也有影响)

Q:如果要用openUBMC适配鲲鹏模组,有什么可以参考的配置吗?
A:目前鲲鹏920/920S模组和工具载板(demo板)的参考配置已合入社区,支持的功能见PR上附的验证报告,大家可以在此配置基础上,根据自己的产品做差异化开发,也欢迎大家把自己实现的功能合入到社区。
920模组和工具载板参考代码链接 AtomGit - 全球开发者的开源社区,开源代码托管平台
920S模组参考代码链接 AtomGit - 全球开发者的开源社区,开源代码托管平台
920L模组参考代码链接 AtomGit - 全球开发者的开源社区,开源代码托管平台

Q:如何从BMC模组预置的V2版本升级到openUBMC版本?
A:参考 BMC 3.xx.xx.xx版本升级openubmc指导

30 个赞

Q1:社区版本测试报告在哪里归档?

A: QA/Test_Reports · openUBMC/QA - AtomGit

Q2:openUBMC规格基线有哪些?

A: release_management/openUBMC 需求规格基线.xlsx · openUBMC/release_management - AtomGit

Q3:openUBMC性能规格哪里看?

A:可参考: QA/Test_Guide/openUBMC SIT DFX测试指导.md · openUBMC/QA - AtomGit

Q4:新增ipmi命令指导

A: 【教学培训篇】新增IPMI命令

Q5:社区特性设计文档在哪里归档?

A: https://gitcode.com/openUBMC/docs/tree/main/docs/zh/development/design_reference/key_feature

Q6:社区特性详细设计文档在哪里归档?

A:归档在对应组件的doc下面,以rackmount为例: rackmount/doc/26.06 · openUBMC/rackmount - AtomGit

Q7:openUBMC关键特性的介绍在哪里?

A: docs/docs/en/development/design_reference/key_feature · openUBMC/docs - AtomGit

Q8:屏蔽告警后恢复出厂是告警否恢复?

A:会恢复,屏蔽告警是local模式,不会写入还原点

Q9:硬盘适配发现厂家信息显示ATA,怎么排查定位?

A:一般是由于代码中没有适配对应厂商的vendor id,优先结合OS下查出来的结果进行排查;

Q10:社区需求的提交流程是怎样的?

A:登录RM-SIG→查看历史会议纪要→填写相关的议题信息,后续会在RM-SIG上评审是否通过;

Q11:上电之后kvm显示nosignal,如何定界?

A:在近端通过VGA口接显示屏查看,由于KVM从VCE寄存器获取的数据与VGA同源,若近端显示屏同样无显示,说明数据源头本身就没有图像数据,则可以交由硬件继续定位;

Q12:系统事件和传感器事件的差异?

A:传感器事件是严格按照IPMI标准协议规范来定义的(即sel),是业界通用的规范,系统事件是精细化告警的呈现,当达到事件触发条件就会生成告警或事件

Q:如何带内os侧访问bmc(适用于无法直接访问bmc的场景)?

A:
1.通过ipmitool工具带内发送ipmi命令进行操作
2.os的网络有veth设备正常up的情况下,可以通过ssh Administrator@fe80::9e7d:a3ff:fe28:6ffa%veth ssh登录bmc

Q:查询不到sr里配置的对象有什么排查思路吗?

A:
通过GetObjects方法可以查询某个position下框架分发的对象,例如
busctl --user call bmc.kepler.hwdiscovery /bmc/kepler/ObjectGroup/01011604 bmc.kepler.ObjectGroup GetObjects a{ss}s 0 general_hardware

如果分发对象是正常的,则问题出在对应对象管理的组件侧。

Q:装备定制项问题如何排查

A:
查看装备定制项FAQ

Q:怎么从零开始搭建openubmc构建环境

A: 参考文档中心资料环境准备简介 | 文档中心 | openUBMC

Q:出现web缺少页面,或部分北向接口无法调用调用

A: rackmount组件有oem的options配置
webui组件有ldap_enabled、energy_enabled等options配置
检查配置是否打开

Q:构建组件失败,报CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage

A: 使用ls /opt命令检查opt下的文件目录
查看/opt/RTOS和/opt/hcc_arm64le是否存在,若不存在,则该环境缺少编译需要的依赖组件
初始化本地环境bmcgo build -t install_sdk
此命令也初始化本地组件构建时的dt相关二进制
同时切换1711、1712时的差异也会导致组件build失败,需要删除重新/opt下路径install_sdk

Q:openUBMC如何一键拉取代码?

A: 在manifest下面执行bmcgo fetch命令,拉取的代码在source_code目录下

Q:升级330基线版本后网络不通

A:330版本platform.sr缺少配置 Ipv4/Ipv6/EthernetInterface对象
当前630版本默认无配置时该对象也会正常上树

Q:openUBMC启动时间长(大于四分钟)

A:查看framework.log abnormal关键字,是否有异常组件。
build/product/BMC/openUBMC/rootfs/etc/system/system/multi-user.target.wants路径下的.service文件必须为软链接

ls -l build/product/BMC/openUBMC/rootfs/etc/systemd/system/multi-user.target.wants

如果不是软链接则在manifest执行以下命令:

cd build/product/BMC/openUBMC/rootfs/etc/systemd/system/multi-user.target.wants

ls *.service |awk -F’,’ ‘{print $1}’| xargs -P 12 -I {{}} ln -sf ../{{}} {{}}

Q1:社区需求ISSUE端到端交付流程
A:参考:

Q2:BMC有几个分区,升级会如何处理
A:iBMC系统存在3个分区镜像

  • 主用分区(active):当前生效分区
  • 备用分区:主用分区镜像的备份,通常主备一致
    • 当主区异常,备区切为主,主区降为备并同步当前主区的镜像,主备一致
    • 升级时主备会一起升级
  • 可用分区:真正承载备用的BMC版本
    • “可用分区镜像倒换”生效可用分区,可用分区切为主,原主分区同步新主分区镜像后切为备,原备用分区切为可用分区
  • 升级时:主用分区与可用分区互换,同时升级主分区+备分区

Q3:如何通过BMC转发ipmi命令
A:桥接转发命令:

# 例:0x02是数据长度,0x06 0x01是要转发的命令
./ipmitool.exe -I lanplus -H 90.94.13.110 -U Administrator -P password -C 17 raw 0x30 0x93 0xdb 0x07 0x00 0x7a 0x01 0x2c 0x02 0x06 0x01

Q4:为什么新建的组件拉起会有异常
A:加入到某一进程拉起的组件(如hardware、framework等进程),需要在manifest中配置组件拉起白名单:build/customization/prototype.py,在subsys_startup_components中新增组件名

Q5:telnet连接如何访问busctl
A:执行export $(cat /dev/shm/dbus/.dbus)

Q6:如何在调试版本中默认带上telnet
A:将busybox组件打包到manifest中带上即可

Q7:北向映射器rackmount组件的lua脚本中如何加日志打印调试
A:配置类型为script的lua代码无法打印日志,配置类型为plugins的lua代码中可以直接使用通用的日志接口

Q8:如何让日志不受限流机制的影响,强制打印
A:如:log:error_easy(fmt, ...),日志接口名加上_easy后缀

Q9:如何关闭日志限流机制
A:在/dev/shm/dbus/.dbus里加一行MCC_DEBUG=1重启相关进程即可关闭日志限流功能

Q10:如何查看某一个Position下对应的所有对象资源
A:例:busctl --user call bmc.kepler.hwdiscovery /bmc/kepler/ObjectGroup/00 bmc.kepler.ObjectGroup GetObjects 'a{ss}s' 0 'hwdiscovery'

Q11:rackmount中的配置文件在环境上如何修改?
A:实机环境上json映射文件在对应的接口组件目录下,如:/opt/bmc/app/redfish,可以直接修改进行调试

Q12:EEPROM中的csr和内置的csr的选择策略和优先级是怎么样的?
A:比较Eeprom中读取的格式版本号和内置CSR的格式版本号,选择版本较高的,格式版本一致则比较数据版本DataVersion,选择版本较高的,若数据版本也一致则优先选择加载内置的CSR

Q13:组件拉起出现异常,总是自动重启,不方便定位问题根因怎么办?
A:关闭框架的组件运行状态检查:在mdbctl下执行 attach maca setmonitorstatus running false

Q14:如何记录和监控内存占用情况
A:常用命令:

  1. top -c -e M
  2. cat /proc/meminfo | grep -E '^MemTotal|^MemFree|^MemAvailable' | awk '{printf "%s: %.2f MB\n", $1, $2/1024}'

Q15:C代码如何调试?
A:C代码不像lua代码可以直接在环境上修改源码调试,通常可以在本地构建出对应的so,然后去环境上直接替换(通常在/usr/lib64下),重启对应的服务后可以生效

Q:社区docs仓库更新说明

A: docs/release_notes.md-代码预览-docs:基于 Node.js 的社区文档中心项目 - AtomGit

Q:如何往openUBMC插件新增自己想要的CSR检查项

A:在openubmc_dsl_rulepack仓库提交issue: AtomGit - 全球开发者的开源社区,开源代码托管平台

Q:如何进行装备定制

A: 装备定制化介绍 | 文档中心 | openUBMC

Q:BMC密码忘记了怎么处理

A: S920X20/S20机型中,如何针对BMC忘记用户名密码这种状态给出解决方法?

Q:如何申请itestsmart工具使用

A:

申请license步骤如下:
一、打开darwin.openubmc.cn并登录(需要注册openubmc帐号)。
二、如果页面状态码为418,请提供外网ip用于添加ip白名单
三、 如果用户未拥有合作伙伴角色,需要提供账号名用于添加角色权限。
四、拥有角色权限后点击上方的工作台进入,再点击左侧的license申请,点击创建申请,并按照要求填写。
五、等待审批,审批完成后,进入license申请页面,点击最右边的下载。

Q:代码/bmc_sdk和bingo/bmcgo配套关系

A:原则上要使用配套的bingo/bmcgo配套对应的社区发行版本的开源代码和bmc_sdk

Q:社区是否有提供AI问答能力

A:下载openubmc studio 2.0.3版本,会附带支持社区RAG的MCP插件,使用claude等code agent可以外接。下载链接: openUBMC

Q:社区是否有提供一键日志解析工具

A:下载openubmc studio 2.0.3版本,会附带一键日志解析工具bmcstudio_log_reviewer,可以直接打开一键日志压缩包打开日志。

Q:社区论坛发帖所带附件大小限制

A:论坛限制附件不可大于10MB,如公司内网还有其他限制,则以最小限制为准。

Q:如何模拟一张OCP卡加载(其他PCIE也类似)

A:

mdbctl setprop set Connector_OCP_1_0101 bmc.dev.Connector Id 19e51822

mdbctl setprop set Connector_OCP_1_0101 bmc.dev.Connector AuxId 19e5d136

mdbctl setprop set Connector_OCP_1_0101 bmc.dev.Connector Presence 1

Q:社区开发者如果想烧片怎么办?

A:当前bingo不支持烧片能力,有诉求需要联系相关项目支持。

Q:硬盘热插拔概率性出现信息获取不到

A:一般是因为硬盘插上后,内部的硬盘协议初始化没有完成,导致的时序问题,要基于实际通信的协议抓包定位。(临时规避可以延后BMC获取信息的线程,查看是否现象缓解)

Q:当前社区是否支持AI检视

A:因为算力有限,部分仓开启了自动智能检视能力,其他仓库需要评论触发,后续会持续扩展。(2026/7/16)

Q:社区当前是否有部件相关测试工具

A:2026年630已支持自动测试工具,当前已支持网卡和GPU,使用指导详见 QA/Test_Code/component_score/README.md · openUBMC/QA - AtomGit

Q:社区版本精细化告警条数上限是多少条?

A:10000条(2026年7月)

Q:社区版本传感器sel条数上限是多少条?

A:4000条(2026年7月)

Q1:缓存机制中,write()返回是否等于数据落盘?

A:write()返回≠数据落盘

write()的返回仅表示数据已经成功提交到系统的写缓存区,并不等于数据已物理写入存储介质。在新款MCU,SSD,带缓存的存储控制器等场景下,该延迟可能显著增加

Q2:是不是用read()进行回读校验就可以保证数据落盘?

A:如果回读数据时未使用O_DIRECT标志,读取的同样是缓存中的数据,而非物理介质上的数据,即使回读校验“通过”,物理介质上的数据可能已经损坏或不完整。

Q3:如何保证数据落盘

A:使用fsync()保证数据落盘,fsync()返回成功后才执行后续依赖该数据操作,如果用回读校验,需要在fsync()和close()之后进行

Q4:如何对调速策略进行验证

A:

1. 修改传感器温度至目标值,查看风扇转速

2. 修改传感器温度至全速值,查看风扇转速

3. 修改传感器状态为一场,查看是否触发失效调速

4. 触发调速时,查看风扇数量是否一致

Q5:电压、功率类传感器读数如果数值超大时,需做什么特殊处理?

A:电压、功率类传感器读数如果数值超大会发生翻转,此时可以用ThresholdSensor的M属性设置,根据传感器计算公式,传感器最大值的读数为读数*M

Q6:热插拔机制自验项

A:

1.后处理机制是否完善

2.对象是否正常卸载

3.相关告警,传感器等属性是否恢复为默认值

4.是否存在日志刷屏

Q7:时间跳变的常见原因

A:

1.1970的跳变:复位后,时间戳未获取前是1970-01-01的初始时间,此时等待时间戳刷新即可

2.复位后1970跳变到了某个时间,并继续跳变:可能与时间戳的持久化有关,像强制重启这类的操作,会出现持久化的时间戳比较旧的情况,并且没有机会去持久化当前最新的时间戳,这类场景有app log”set bmc_time time_stamp=%s by persistent data”

3.时间源跳变:在NTP开启的情况下,就只从NTP读取时间,ipmcget -d ntp 如果Status为enabled,说明开启了,`Synchronize` 表征同步成功没有

此时分两种情况

(1)NTP同步成功后产生的跳变–说明RTC和NTP时间不一致,需要排查RTC和NTP哪个有问题

(2)NTP一直开着,突然跳变的–排查是否是NTP服务器的问题

(3)NTP没开–需要查看RTC芯片的时间,如果BMC和RTC芯片时间一致,需要找硬件同事继续排查

Q8:定制化需更新社区文档

A: 服务器出厂定制化配置 | 文档中心 | openUBMC

Q9:新增定制化的自验证注意事项

A:

config.sh主场景成功验证

verify.sh持久化验证——新增定制型必现掉电持久化,避免定制丢失

多次执行验证——可能会出现第一次定制化成功,第二次失效的问题,新增装备定制项必须保证3次验证

Q10:CPLD升级失败,有以下日志打印:“general_hardware NOTICE: process.lua(179): [cpld]get cpld device info failed”

A:此处日志打印为CPLD扫链操作,此处报错通常是说明CSR中链路配置不正确,或是硬件链路故障

Q11:CPLD升级扫链获取哪一份svf文件的流程

A:hpm解包后,会有多个svf文件,升级时,需要判断当前待升级的CPLD厂商信息,决定加载哪一份svf,扫链后会生成id_list,使用id_list拼出待加载的文件名

Q12:版本命名规范

A: 生命周期 | openUBMC

Q13:Issue处理规范

A:

缺陷issue:release_management/openUBMC社区版本缺陷类ISSUE处理流程与规范.md · openUBMC/release_management - AtomGit

需求issue:release_management/openUBMC社区版本需求类ISSUE处理流程与规范.md · openUBMC/release_management - AtomGit

Q14:openUBMC开源社区开发流程规范

A: AtomGit - 全球开发者的开源社区,开源代码托管平台

Q15:openUBMC社区编程规范

A: docs/docs/zh/development/specifications/coding_standards.md-代码预览-docs:基于 Node.js 的社区文档中心项目 - AtomGit