代码仓
中
bios
更新时间: 2026/05/18
在AtomGit上查看源码

bios ​

版本信息 ​

项目内容
组件版本1.110.25
首发版本1.70.30
文档作者openUBMC
最后更新2026-08-24

1. 组件概述 ​

1.1 组件简介 ​

bios组件是OpenUBMC系统中的BIOS管理组件,主要负责与BIOS带内交互,实现BIOS配置、证书、升级和PFR(Platform Firmware Resilience)自愈等功能。

1.2 解决什么问题 ​

BIOS组件为使用者解决以下核心问题:

  • BIOS固件升级:支持普通升级、无感升级、装备升级等多种模式
  • BIOS配置管理:支持配置导入导出、启动项设置、启动模式配置
  • BIOS证书管理:支持安全启动证书、HTTPS启动证书的管理
  • PFR自愈:确保BIOS固件完整性和可恢复性,防止恶意篡改

1.3 核心功能 ​

  • 核心功能一:BIOS升级 - 支持普通升级、无感升级、teeos升级、krun升级等多种升级模式
  • 核心功能二:BIOS配置导入导出 - 支持bios配置导入导出,启动项、启动模式设置,无感升级策略重配
  • 核心功能三:BIOS证书管理 - 支持bios启动证书、安全启动证书、吊销证书管理
  • 核心功能四:PFR自愈功能 - BIOS镜像校验,确保固件完整性和可恢复性

1.4 关键术语表 ​

术语解释
装备升级打包manufacture文件夹的升级模式,会执行强制上下电
无感升级通过ipmb通道将固件传到imu,实现在线升级
普通升级非装备包的升级模式,可选择缓存生效或下电生效
补丁包版本包含HPxxxx的升级包,用于无感升级
PFRPlatform Firmware Resilience,平台固件韧性,保证固件完整性和可恢复性
CMS签名用于校验BIOS固件完整性的数字签名

1.5 外部交互边界图 ​

  • pcie_device:订阅PcieAddrInfo对象的ReadyToEnumerate属性变化,更新PcieAddrInfo对象的SlotId、SocketId、Segment等丝印属性,为BIOS提供丝印文件数据。
  • IMU(带内):向IMU查询无感升级策略重配相关配置文件。
  • BIOS(带内):BIOS启动阶段想带内提供丝印文件等信息,获取SMBIOS、BDF等信息。
  • FruCtrl:BIOS预上电时加上电锁进行pfr校验,BIOS启动过程中给BMC加重启锁防止交互异常。

2. API 使用说明与示例 ​

2.1 BIOS升级相关接口 ​

bash
NAME                                      TYPE      SIGNATURE   RESULT/VALUE                             FLAGS
.ActivateFirmware                         method    a{ss}as         -                                      -
.ExportBiosFirmware                       method    a{ss}           u                                      -
.GetFirmwareInfo                          method    a{ss}           s                                      -

功能说明 ​

属性内容
接口名bmc.kepler.Systems.BiosUpgradeService
首发版本openUBMC 25.03
废弃状态正常可用
方法配置参数 ​
方法名入参类型出参类型描述取值范围
ActivateFirmwarea{ss}as-生效Bios固件入参:
a{ss}: 额外信息,预留
as: 组件ID列表,可包含imu、imp等
出参:无
ExportBiosFirmwarea{ss}u导出Bios固件信息入参:
a{ss}: 额外信息,预留
出参:
u: 返回任务Id
GetFirmwareInfoa{ss}s获取Bios固件信息入参:
a{ss}: 额外信息,预留
出参:
s: Bios固件信息

属性参数说明 ​

属性名类型描述取值范围
ActivatedStatusU8Bios无感升级固件生效状态枚举值0/1/2,0:生效完成; 1:待生效; 2:生效中
FirmwareEffectiveStatusU8Bios普通升级固件生效状态枚举值1/2/3,1:待生效; 2:生效中; 3:生效完成
PreserveConfigEnabledBooleanBios配置保留使能true: 升级后保留配置; false: 升级后不保留配置

返回值与异常 ​

返回值类型含义触发条件处理建议
0 (成功)操作成功固件生效/导出正常执行无
TaskId返回任务IdBios固件导出无

应用场景 ​

  • 执行无感升级后,激活新版本的BIOS固件
  • 导出当前BIOS固件
  • 获取BIOS固件信息

限制条件 ​

  • ActivateFirmware需要是可生效固件,必须先执行过无感升级
  • PreserveConfigEnabled仅在bmc.kepler.UpdateService的StartUpgrade方法未传保留配置参数时生效

调试示例 ​

命令行调试 ​
bash
# 激活Bios固件
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BiosUpgradeService bmc.kepler.Systems.BiosUpgradeService \
 ActivateFirmware a{ss}as 0 1 "None"

# 导出Bios固件
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BiosUpgradeService bmc.kepler.Systems.BiosUpgradeService \
 ExportBiosFirmware a{ss} 0

响应:u 1

# 获取Bios固件信息
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BiosUpgradeService bmc.kepler.Systems.BiosUpgradeService \
 GetFirmwareInfo a{ss} 0

响应:s "{...}"

# 读取生效状态属性
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/BiosUpgradeService bmc.kepler.Systems.BiosUpgradeService \
 ActivatedStatus

响应:y 0

# 读取固件生效状态属性
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/BiosUpgradeService bmc.kepler.Systems.BiosUpgradeService \
 FirmwareEffectiveStatus

响应:y 3

2.2 BIOS配置相关接口 ​

bash
NAME                                      TYPE      SIGNATURE               RESULT/VALUE  FLAGS
.ClearCmos                                method    a{ss}                        i             -
.ResetSetupConfig                         method    a{ss}                        i             -
.ChangePassword                           method    a{ss}sss                     i             -
.ImportBiosSetup                          method    a{ss}ss                      i             -
.ExportBiosSetup                          method    a{ss}s                       s             -
.GetCurrentValueSetting                   method    a{ss}s                       s             -
.RemoveCachedSettings                     method    a{ss}                        i             -
.VerifyPassword                           method    a{ss}ss                      -             -
.SetBiosLogEnabled                        method    a{ss}y                       i             -
.SetBiosConfigActiveMode                  method    a{ss}t                       -             -
.ExportFirmware                           method    a{ss}s                       u             -

功能说明 ​

属性内容
接口名bmc.kepler.Systems.Bios
首发版本openUBMC 25.03
废弃状态正常可用
方法配置参数 ​
方法名入参类型出参类型描述取值范围
ClearCmosa{ss}i清除BIOS配置信息(CMOS)入参:
a{ss}: 额外信息,预留
出参:
i: 清除结果,0成功,-1失败
ResetSetupConfiga{ss}i清除BIOS配置以及待生效配置入参:
a{ss}: 额外信息,预留
出参:
i: 清除结果,0成功,-1失败
ChangePassworda{ss}sssi修改BIOS密码入参:
a{ss}: 额外信息,预留
s: PasswordType,密码类型(Supervisor/User)
s: OldPassword,旧密码
s: NewPassword,新密码
出参:
i: 修改结果,0成功,-1失败
ImportBiosSetupa{ss}ssi导入Bios配置入参:
a{ss}: 额外信息,预留
s: FileType,导入文件类型(PolicyConfig/Setting/WebConfig)
s: Content,导入文件内容
出参:
i: 导入结果,0成功,-1失败
ExportBiosSetupa{ss}ss导出Bios的配置入参:
a{ss}: 额外信息,预留
s: FileType,导出文件类型(WebConfig/PolicyConfigJson/PolicyRegisteryJson/ComponentVersion)
出参:
s: 导出配置结果
GetCurrentValueSettinga{ss}ss获取属性当前配置的值入参:
a{ss}: 额外信息,预留
s: ReqKey,属性名
出参:
s: 属性当前配置的值
RemoveCachedSettingsa{ss}i清除待生效的配置入参:
a{ss}: 额外信息,预留
出参:
i: 清除结果,0成功,-1失败
VerifyPassworda{ss}ss-校验待生效BIOS密码入参:
a{ss}: 额外信息,预留
s: PasswordType,密码类型
s: Password,待校验密码
出参:无
SetBiosLogEnableda{ss}yi设置BIOS日志全打印开关入参:
a{ss}: 额外信息,预留
y: BiosLogPrintEnabled,0关闭,1开启
出参:
i: 设置结果,0成功,-1失败
SetBiosConfigActiveModea{ss}t-设置BIOS配置导入的生效模式入参:
a{ss}: 额外信息,预留
t: Mode,0:导入待生效配置重启后生效,1:恢复默认再导入重启后生效
出参:无
ExportFirmwarea{ss}su导出对应系统的BIOS FLASH内容入参:
a{ss}: 额外信息,预留
s: OutputFilePath,FLASH 数据文件导出路径
出参:
u: TaskId,导出BIOS FLASH的任务Id

属性参数说明 ​

属性名类型描述取值范围
SystemStartupStateU8Bios启动状态枚举值:0未启动, 32初始化ME完成, 64PCIe信息上报完成, 96SMBIOS write prepare, 99SMBIOS write start, 102SMBIOS write finish, 111进入PXE, 254Post完成
VersionStringBios版本信息readOnly
BackupVersionStringBios备份版本信息readOnly
CurrentValueFileNameString当前生效的配置文件readOnly
ResultFileNameString配置生效结果文件readOnly
SettingFileNameString待生效配置文件readOnly
RegistryFileNameString标准配置文件readOnly
BiosConfigActiveModeU64BIOS配置导入的生效模式0:导入待生效配置, 1:恢复默认再导入
ResetBiosToDefaultsPendingBoolean恢复默认命令是否未生效true:存在(未生效),false:不存在(已生效)
UpgradeFailedU8正常升级后Flash完整性校验状态readOnly
RecoverFailedU8自恢复后Flash完整性校验状态readOnly
SystemIdU8系统IdreadOnly
MenuDataString菜单数据readOnly
MenuChangeFlagU8菜单变动标志readOnly
RegistryVersionString标准配置文件的版本readOnly
DEMTConfigU8DEMT配置readOnly
PcieCardBDFU8[]Pcie卡BDFreadOnly
PcieDiskBDFU8[]硬盘BDFreadOnly
OCPCardBDFU8[]OCP卡BDFreadOnly
BiosBootStageU8Bios启动阶段readOnly
BiosLogPrintEnabledU8Bios的日志全打印使能状态readOnly
SettingsEffectiveStatusStringBios配置文件的生效状态readOnly
TeeOSVersionStringTeeOS版本号readOnly

返回值与异常 ​

返回值类型含义触发条件处理建议
0 (成功)操作成功正常执行无
-1 (失败)操作失败密码错误/配置格式不符/权限不足检查输入参数
TaskId返回任务IdBios FLASH导出无

应用场景 ​

  • 导入BIOS配置,包括配置标准文件验证和依赖关系校验
  • 导出当前BIOS配置
  • 获取指定BIOS配置属性的当前值
  • 修改BIOS密码
  • 清除BIOS配置信息(CMOS)
  • 清除BIOS待生效配置
  • 设置BIOS日志全打印开关
  • 校验BIOS密码
  • 导出对应系统的BIOS FLASH内容

限制条件 ​

  • ImportBiosSetup导入配置必须符合格式和BIOS依赖关系
  • ChangePassword旧密码必须正确,新密码必须符合BIOS密码校验规则
  • ClearCmos/ResetSetupConfig需要用户配置权限
  • ExportFirmware当前只支持本地导出

调试示例 ​

命令行调试 ​
bash
# 导入BIOS配置
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 ImportBiosSetup a{ss}ss 3 Interface "Setting" "{}"

响应:i 0

# 导出BIOS配置
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 ExportBiosSetup a{ss}s 0 "Setting"

响应:s "{...}"

# 获取指定属性的当前值
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 GetCurrentValueSetting a{ss}s 0 "NetworkProtocol"

响应:s "DHCP"

# 修改BIOS密码
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 ChangePassword a{ss}sss 0 "Supervisor" "Admin@9000" "Admin@90000"

响应:i 0

# 清除CMOS
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 ClearCmos a{ss} 0

响应:i 0

# 清除待生效配置
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 ResetSetupConfig a{ss} 0

响应:i 0

# 设置BIOS全打印开关
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 SetBiosLogEnabled a{ss}y 0 1

响应:i 0

# 校验BIOS密码
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 VerifyPassword a{ss}ss 0 "Supervisor" "Admin@9000"

# 读取BIOS版本
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 Version

响应:s "5.xx.xxx"

# 读取BIOS启动状态
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/Bios bmc.kepler.Systems.Bios \
 SystemStartupState

响应:y 254

2.3 启动项相关接口 ​

bash
NAME                                      TYPE      SIGNATURE               RESULT/VALUE  FLAGS
.SetBootMode                              method    a{ss}s                       i             -
.SetBootOrder                             method    a{ss}s                       iss           -
.SetStartOption                           method    a{ss}s                       i             -
.SetStartOptionFlag                       method    a{ss}s                       i             -
.ShieldIpmiModifyBootModeSupport          method    a{ss}b                       i             -

功能说明 ​

属性内容
接口名bmc.kepler.Systems.BootOptions
首发版本openUBMC 25.03
废弃状态正常可用
方法配置参数 ​
方法名入参类型出参类型描述取值范围
SetBootModea{ss}si设置Bios启动模式入参:
a{ss}: 额外信息,预留
s: mode,启动模式(UEFI)
出参:
i: RespCode,设置结果
SetBootOrdera{ss}siss设置Bios启动顺序入参:
a{ss}: 额外信息,预留
s: BootOrderJson,启动顺序JSON
出参:
i: OutCode,返回码
s: ErrName,错误名
s: ErrValue,错误值
SetStartOptiona{ss}si设置Bios启动项入参:
a{ss}: 额外信息,预留
s: StartOption,启动项(None/Pxe/Floppy/Cd/Hdd/BiosSetup)
出参:
i: Result,设置结果
SetStartOptionFlaga{ss}si设置Bios启动项生效次数入参:
a{ss}: 额外信息,预留
s: StartOptionFlag,生效次数(Disabled/Once/Continuous)
出参:
i: Result,设置结果
ShieldIpmiModifyBootModeSupporta{ss}bi屏蔽是否可以通过ipmi设置启动模式入参:
a{ss}: 额外信息,预留
b: ModeSwitch,屏蔽开关
出参:
i: RespCode,屏蔽结果

属性参数说明 ​

属性名类型描述取值范围
BootSourceOverrideModeString系统启动模式Legacy或UEFI,默认UEFI
BootSourceOverrideEnabledString系统启动项生效次数Disabled/Once/Continuous,默认Disabled
BootSourceOverrideTargetString系统启动项默认HDD
BootOrderString[]系统启动项启动顺序readOnly
BootModeSupportBooleanBIOS启动模式是否支持设置默认true
BootModeIpmiSettableBooleanBIOS启动模式是否支持通过IPMI设置默认true
BootOptionPolicyU8定制化启动项策略0:不定制; 1:设置永久启动项联动修改启动顺序
PreviousBootSourceOverrideTargetString上次设置的永久启动项类型readOnly
BootOptionReferenceString[]唯一启动选项标识符readOnly

返回值与异常 ​

返回值类型含义触发条件处理建议
0 (成功)操作成功正常执行无
-1 (失败)操作失败启动模式/顺序不符合规则检查输入参数
ErrName/ErrValue错误名/错误值启动顺序不符合规则检查启动顺序是否符合BIOS规则

应用场景 ​

  • 设置BIOS启动模式
  • 设置BIOS启动顺序
  • 设置BIOS启动项
  • 设置BIOS启动项生效次数
  • 屏蔽IPMI设置启动模式

限制条件 ​

  • 启动顺序必须符合BIOS规则
  • 启动模式当前只支持UEFI

调试示例 ​

命令行调试 ​
bash
# 设置启动模式
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 SetBootMode a{ss}s 0 "UEFI"

响应:i 0

# 设置启动顺序
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 SetBootOrder a{ss}s 0 '{"BootTypeOrder0":"DVDROMDrive","BootTypeOrder1":"PXE","BootTypeOrder2":"HardDiskDrive","BootTypeOrder3":"Others"}'

响应:i 0 s "" s ""

# 设置启动项
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 SetStartOption a{ss}s 0 "Pxe"

响应:i 0

# 设置启动项生效次数
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 SetStartOptionFlag a{ss}s 0 "Continuous"

响应:i 0

# 屏蔽IPMI修改启动模式
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 ShieldIpmiModifyBootModeSupport a{ss}b 0 true

响应:i 0

# 读取当前启动模式
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 BootSourceOverrideMode

响应:s "UEFI"

# 读取当前启动项
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 BootSourceOverrideTarget

响应:s "HDD"

2.4 安全启动证书相关接口 ​

bash
NAME                                      TYPE      SIGNATURE               RESULT/VALUE  FLAGS
.ImportCertificate                        method    a{ss}sss                     -             -
.ResetCertificate                         method    a{ss}ss                      -             -
.GetCertificate                           method    a{ss}                        s             -

功能说明 ​

属性内容
接口名bmc.kepler.Systems.SecureBootOptions
首发版本openUBMC 25.03
废弃状态正常可用
方法配置参数 ​
方法名入参类型出参类型描述取值范围
ImportCertificatea{ss}sss-导入Bios安全启动证书入参:
a{ss}: 额外信息,预留
s: DatabseType,数据库类型(db/dbx)
s: CertString,证书内容
s: CertType,证书类型(PEM)
出参:无
ResetCertificatea{ss}ss-重置Bios安全启动证书入参:
a{ss}: 额外信息,预留
s: DatabseType,数据库类型(db/dbx)
s: ResetType,重置类型(DeleteAllKeys/ResetAllKeysToDefault)
出参:无
GetCertificatea{ss}s获取Bios安全启动证书入参:
a{ss}: 额外信息,预留
出参:
s: CertInfo,证书内容

属性参数说明 ​

属性名类型描述取值范围
SystemIdU8系统IdreadOnly
CertificateExpiredU8证书过期标记默认0

返回值与异常 ​

返回值类型含义触发条件处理建议
CertInfo证书内容获取成功无
无返回值操作成功导入/重置成功无

应用场景 ​

  • 导入BIOS安全启动证书
  • 重置BIOS安全启动证书
  • 获取BIOS安全启动证书

限制条件 ​

  • 导入证书格式必须正确,目前只支持PEM格式
  • BIOS不能处于启动阶段

调试示例 ​

命令行调试 ​
bash
# 获取安全启动证书
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/SecureBootOptions bmc.kepler.Systems.SecureBootOptions \
 GetCertificate a{ss} 0

响应:s "{...}"

# 导入安全启动证书
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/SecureBootOptions bmc.kepler.Systems.SecureBootOptions \
 ImportCertificate a{ss}sss 0 "db" "<证书内容>" "PEM"

# 重置安全启动证书
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/SecureBootOptions bmc.kepler.Systems.SecureBootOptions \
 ResetCertificate a{ss}ss 0 "db" "DeleteAllKeys"

# 读取证书过期标记
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/SecureBootOptions bmc.kepler.Systems.SecureBootOptions \
 CertificateExpired

响应:y 0

2.5 HTTPS启动证书相关接口 ​

bash
NAME                                      TYPE      SIGNATURE               RESULT/VALUE  FLAGS
.ImportCertificate                        method    a{ss}ss                      -             -
.ImportCrl                                method    a{ss}ss                      -             -
.ResetCertificate                         method    a{ss}s                       -             -
.ResetCrl                                 method    a{ss}s                       -             -
.GetCertificate                           method    a{ss}                        s             -

功能说明 ​

属性内容
接口名bmc.kepler.Systems.BootOptions
首发版本openUBMC 25.03
废弃状态正常可用
方法配置参数 ​
方法名入参类型出参类型描述取值范围
ImportCertificatea{ss}ss-导入Bios的Https启动证书入参:
a{ss}: 额外信息,预留
s: CertString,Https证书内容
s: CertType,Https证书类型(PEM)
出参:无
ImportCrla{ss}ss-导入Bios的Https启动证书吊销列表入参:
a{ss}: 额外信息,预留
s: CertString,Https吊销证书内容
s: CertType,Https吊销证书类型(PEM)
出参:无
ResetCertificatea{ss}s-重置Bios的Https启动证书入参:
a{ss}: 额外信息,预留
s: ResetType,重置类型(DeleteAllKeys/ResetAllKeysToDefault)
出参:无
ResetCrla{ss}s-重置Bios的Https启动证书吊销列表入参:
a{ss}: 额外信息,预留
s: ResetType,重置类型(DeleteAllKeys/ResetAllKeysToDefault)
出参:无
GetCertificatea{ss}s获取Bios的Https启动证书入参:
a{ss}: 额外信息,预留
出参:
s: CertInfo,证书数据

返回值与异常 ​

返回值类型含义触发条件处理建议
CertInfo证书数据获取成功无
无返回值操作成功导入/重置成功无

应用场景 ​

  • 导入BIOS的HTTPS启动证书
  • 导入BIOS的HTTPS启动证书吊销列表
  • 重置BIOS的HTTPS启动证书
  • 重置BIOS的HTTPS启动证书吊销列表
  • 获取BIOS的HTTPS启动证书

限制条件 ​

  • 证书格式必须正确,目前只支持PEM格式
  • BIOS不能处于启动阶段

调试示例 ​

命令行调试 ​
bash
# 获取Https启动证书
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 GetCertificate a{ss} 0

响应:s "{...}"

# 导入Https启动证书
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 ImportCertificate a{ss}ss 0 "<证书内容>" "PEM"

# 导入Https证书吊销列表
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 ImportCrl a{ss}ss 0 "<CRL内容>" "PEM"

# 重置Https启动证书
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 ResetCertificate a{ss}s 0 "DeleteAllKeys"

# 重置Https证书吊销列表
busctl --user call bmc.kepler.bios \
 /bmc/kepler/Systems/1/BootOptions bmc.kepler.Systems.BootOptions \
 ResetCrl a{ss}s 0 "DeleteAllKeys"

2.6 IPMI接口 ​

命令描述
SetBootOption设置启动项
GetBootOption获取启动项
GetBiosGoldValid获取固件备份状态
GetBiosBootInfo获取bios启动参数
GetFileChanged获取bios配置文件修改状态
GetSmBiosInfo获取smbios信息
ReadFileFromBmc从bmc读取配置文件
SetBiosBootInfo设置bios启动参数
SetBiosVersion设置bios版本
SetCertificateAssertion设置bios证书过期告警
SetFileChanged设置bios配置文件修改状态
SetSmBiosInfo设置smbios信息
UpdateBiosPassword设置bios密码
UpdateBiosStatus设置bios启动状态
UpdatePostStatus设置bios完成启动状态
WriteFileToBmc上报bios配置文件
WriteSmbiosData上报smbios配置文件
GetAllowedPackageType获取装备模式允许升级的Bios包的安全类型
SetAllowedPackageType设置装备模式允许升级的Bios包的安全类型
SetBaseOSBootEvent设置bios传感器告警
GetBiosConfiguration获取bios配置项
SetBiosConfiguration设置bios配置项
SetKrunVersion设置Krun固件版本号

2.7 SMBIOS信息相关接口 ​

功能说明 ​

属性内容
接口名bmc.kepler.Systems.SmBios
首发版本openUBMC 25.03
废弃状态正常可用

属性参数说明 ​

属性名类型描述取值范围
SerialNumberStringSmBios序列号readOnly
VersionStringSmBios版本readOnly
SKUNumberStringSmBios SKU编号readOnly
FamilyString处理器家族readOnly
SmBiosStatusU8SmBios状态readOnly
SmBiosUpdatedFlagU8SmBios状态更新标记readOnly
FileChangeU8SmBios文件变化标记readOnly
FileNameStringSmBios文件名readOnly
DiffFileNameStringSmBios差异文件名readOnly
SystemIdU8系统IdreadOnly

返回值与异常 ​

返回值类型含义触发条件处理建议
属性值返回SmBios信息属性读取正常执行无

应用场景 ​

  • 查询系统SMBIOS序列号、版本、SKU编号等信息
  • 查询处理器家族信息
  • 监控SMBIOS文件变化状态

限制条件 ​

  • 所有属性均为只读

调试示例 ​

命令行调试 ​
bash
# 查询SMBIOS序列号
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/SmBios bmc.kepler.Systems.SmBios \
 SerialNumber

# 查询SMBIOS版本
busctl --user get-property bmc.kepler.bios \
 /bmc/kepler/Systems/1/SmBios bmc.kepler.Systems.SmBios \
 Version

3. 组件扩展案例 ​

3.1 扩展能力概述 ​

不适用

3.2 扩展点说明 ​

不适用

3.3 二次开发指导 ​

不适用

4. 日志说明 ​

4.1 一键日志收集 ​

文件路径内容说明
dump_info/AppDump/bios/setting.json用户的Bios配置数据
dump_info/AppDump/bios/currentValue.json当前生效的Bios配置
dump_info/AppDump/bios/Registry.json配置的标准文件
dump_info/AppDump/bios/result.jsonBios运行的记录文件
dump_info/AppDump/bios/silkconfig.json丝印配置文件
dump_info/AppDump/bios/SMBIOS_CONFSMBIOS配置信息

4.2 关键日志信息 ​

日志片段日志级别含义解读建议处理动作
Switch spi to BMC(BIOS)INFOSPI链路切换到BMC侧正常流程,无需处理
Switch spi to BMC(BIOS) failedERRORSPI链路切换失败检查硬件连接和驱动
verify signature error, code 88200312ERROR包签名校验失败替换与BMC签名一致的HPM包
sys-uid not in update.cfg's ProductUIDListERRORHPM包与机型不符使用符合机型的HPM包
parse package failed, ret:InvalidFirmwarePackageERRORHPM包缺少cfg文件获取带外升级使用的HPM包
[spi]check_device_ready: ready failERRORSPI设备未就绪检查硬件问题,联系厂商
PackageCheckExecutor: upgrade patch package in equipment modeERROR装备模式不能升级补丁包更换为普通包或非装备模式
ComponentFilter: skip componentINFO无感升级跳过版本一致的固件正常流程,无需处理

5. 问题定界指南 ​

5.1 典型问题定界 ​

现象描述是否为本组件问题判断依据关键证据收集方法
BIOS升级显示无效的升级包是包签名校验失败或包类型不匹配查看app.log中的签名错误日志
BIOS升级成功后版本号未变否依赖BIOS上报版本号确认BIOS在新版本上报过版本号
非装备包OS上电升级无法用reboot生效是默认下电生效模式检查csr配置或使用ipmi命令设置
BIOS升级完成后未保留配置是装备包默认全擦检查是否为装备包,装备包默认不保留配置
无感升级失败是多种可能原因检查BIOS启动状态、包类型、升级模式

5.2 错误码速查表 ​

错误码含义可能原因排查建议
0x03000049PSU.PSULinkAbnormal主板AVSBUS、PMBUS链路异常更换CPU板
0x01000073Memory.MemoryI2CI3CLinkAbnormal1、内存故障 2、主板I2C/I3C链路异常1、更换内存 2、更换主板
0x24000031CPUBoard.VRPowerRedundancyFailureVR电源(单相)工作异常更换主板

5.3 调试方法 ​

开启调试日志 ​

bios组件的调试日志随app.log输出,日志级别由系统统一配置。在调试场景下,可通过以下方式增加日志获取量:

busctl --user call bmc.kepler.bios /bmc/kepelr/compute/MicroComponent bmc.kepler.MicroComponent SetDlogLevel a{ss}sy 0 debug 2

复现问题方法 ​

  1. 确认升级包类型和升级模式匹配
  2. 确认BIOS启动状态(无感升级需要BIOS启动完成)
  3. 检查SPI链路状态
  4. 查看app.log中的详细错误信息

6. 常见问题解答 ​

Q1:BIOS升级显示无效的升级包 ​

  • 问题描述:升级BIOS时提示无效的升级包
  • 一句话答案:包签名校验失败或包与机型不匹配
  • 根因说明:可能是签名与BMC不匹配、HPM包与实际机型不符、HPM包缺少必要的cfg文件
  • 解决方案:根据具体错误日志更换正确的HPM包
  • 规避方案:确保使用与BMC签名一致且符合机型的HPM包
  • 适用版本:所有版本

Q2:BIOS升级成功后版本号未变 ​

  • 问题描述:BIOS升级完成但版本号未更新
  • 一句话答案:BIOS未上报新版本号
  • 根因说明:bios版本号更新依赖bios侧上报版本号,BMC无法主动获取
  • 解决方案:升级结束后需要确认BIOS在新版本上报过版本号
  • 规避方案:检查关键日志确认版本上报
  • 适用版本:所有版本

Q3:非装备包OS上电升级BIOS,无法使用强制重启或者带内reboot生效 ​

  • 问题描述:OS上电状态下升级BIOS,通过reboot无法生效
  • 一句话答案:默认生效条件为下电生效
  • 解决方案:通过修改csr配置实现重启生效,或使用ipmi命令SetCachedBiosUpgradeMode设置
  • 适用版本:所有版本

Q4:BIOS升级完成后未保留配置 ​

  • 问题描述:升级BIOS后配置未保留
  • 一句话答案:装备包默认全擦,非装备包默认保留
  • 根因说明:对于装备包升级BIOS默认不保留配置,对于非装备包默认保留配置
  • 解决方案:使用非装备包升级或在bios下设置manufacture: false
  • 适用版本:所有版本

Q5:BIOS升级过程中失败 ​

  • 问题描述:BIOS升级过程中失败
  • 一句话答案:多种原因可能导致升级失败
  • 根因说明:
    • 包的类型与升级模式不匹配(无感升级只能用补丁包)
    • BIOS未启动完成(无感升级需要BIOS POST完成)
    • SPI链路切换失败
  • 解决方案:
    • 确认升级包类型与升级模式匹配
    • 确认BIOS启动状态
    • 检查SPI链路和驱动
  • 适用版本:所有版本

Q6:丝印上报是怎么回事? ​

  • 问题描述:什么是丝印上报,作用是什么
  • 一句话答案:BIOS通过IPMI命令从BMC读取丝印信息并更新到BIOS人机界面和SMBIOS
  • 根因说明:BIOS启动时通过ReadFileFromBmc命令从BMC读取silkconfig.json,解析后更新丝印信息
  • 解决方案:这是正常流程,不需要干预
  • 适用版本:所有版本

附录 ​

附录A 参考资料 ​

附录B 修订记录 ​

版本日期修订人修订内容
v1.02025-01-16openUBMC初始版本创建
v1.12026-08-24runan-2026对照 mdb_interface 真值 JSON 查漏补缺,补全缺失方法与属性、修正签名与描述