代码仓
中

本指南旨在指导如何进行白牌包配置及制作。

白牌包介绍 ​

白牌包本质上就是一个hpm包,通过固件升级的方式来实现定制化能力,可定制范围包括:图片定制、网页风格定制、配置定制。 具体支持的定制项如下表所示:

序号定制类别定制项文件属性名
1图片定制浏览ICOfavicon.ico/
2图片定制二维码code1.png/
3图片定制登录界面背景login.png/
4图片定制登录界面图标login_logo.png/
5图片定制主界面机型展示图img_01.png img_02.png img_03.png/
6图片定制主界面左上角图片header_logo.png/
7风格定制主界面风格style_config.jsonpageStyle
8配置定制产品联系人web_custom.xmlsysContact
9配置定制默认安全公告web_custom.xmldBannerContent
10配置定制预置证书Common Nameweb_custom.xmlPreSSLSeverCommonName
11配置定制预置证书Organization Nameweb_custom.xmlPreSSLSeverOrgName
12配置定制预置证书Countryweb_custom.xmlPreSSLSeverCountry
13配置定制官网web_custom.xmlOfficalWeb
14配置定制版权信息web_custom.xmlCopyright
15配置定制技术支持网址web_custom.xmlSupportWeb
16配置定制邮箱web_custom.xmlEmail
17配置定制电话web_custom.xmlPhone
18配置定制独立KVMweb_custom.xmlDownloadKVMLink
19配置定制二维码显示标志位(是否显示)web_custom.xmlDocSupportFlag
20配置定制BMC软件名称web_custom.xmlSoftwareName
21配置定制告警、事件描述web_custom.xmlCustomAlarmName
22配置定制redfish OEM厂商名web_custom.xmlCustomManufacturer
23配置定制BMC主机名称web_custom.xmlHostName
24配置定制客户名称(用于生效指定客户定制的特性)web_custom.xmlCustomer

如何定制白牌包 ​

新建代码仓存放白牌定制文件 ​

在正式制作白牌包前,需要做好定制文件准备。 白牌定制文件主要包括主界面风格描述文件、各种定制图片、配置文件web_custom.xml以及文件清单配置filelist.conf。

  • 定制图片名称需要与上述表格中图片定制文件名保持一致。
  • 主界面风格支持定制风格为beautiful、simple、standard,需要新建style_config.json文件

文件配置示例如下:

json
{
  "pageStyle": "beautiful"
}

配置filelist.conf ​

filelist.conf用于描述白牌配置文件项,具体配置参考如下示例:

shell
[Basic]
Version=2.00

[Filelist]
FileNum=10

[File0]
Name=code1.png
Path=/data/opt/pme/web/htdocs/theme/custom/img

[File1]
Name=favicon.ico
Path=/data/opt/pme/web/htdocs

[File2]
Name=web_custom.xml
Path=/data/opt/pme/web/conf

[File3]
Name=header_logo.png
Path=/data/opt/pme/web/custom

[File4]
Name=login.png
Path=/data/opt/pme/web/custom

[File5]
Name=login_logo.png
Path=/data/opt/pme/web/custom

[File6]
Name=img_01.png
Path=/data/opt/pme/web/custom

[File7]
Name=img_02.png
Path=/data/opt/pme/web/custom

[File8]
Name=img_03.png
Path=/data/opt/pme/web/custom

[File9]
Name=style_config.json
Path=/data/opt/pme/web/htdocs
  • [Basic]:描述filelist.conf文件版本
  • [Filelist]:描述配置文件个数
  • [Filex]:描述配置文件名及文件路径

其中FileNum的值需要与下列配置File的个数保持一致,文件名称和文件路径是固定的,开发者可根据自身需要选择定制

配置web_custom.xml ​

web_custom.xml用于承载属性配置,具体配置参考如下示例:

xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 描述:目前官网、版权信息、独立KVM下载链接信息、文档二维码显示标志位在web中有使用 -->
<CUSTOM_CONFIG>
    <!-- 系统联系人(示例:VALUE="https://openubmc.com") -->
    <SysContact VALUE="CustomSysContact" />
    <!-- SSL证书预置信息,当前安装的SSL证书的签发者信息和预置信息一致时,认为当前SSL证书是预置证书,web会提醒用户安装新证书 -->
    <PreSSLSeverCommonName VALUE="CustomCommonName"/>
    <PreSSLSeverOrgName VALUE="CustomOrgName"/>
    <PreSSLSeverCountry VALUE="Country"/>
    <!-- 官方网站 -->
    <OfficalWeb VALUE="CustomOfficalWeb"/>
    <!-- 版权 -->
    <Copyright VALUE="CustomCopyright"/>
    <!-- 技术支持网站 -->
    <SupportWeb VALUE="CustomSupportWeb"/>
    <!-- 邮件 -->
    <Email VALUE="CustomEmail"/>
    <!-- 电话 -->
    <Phone VALUE="CustomPhone"/>
    <!-- 独立KVM客户端下载链接 -->
    <DownloadKVMLink VALUE="CustomDownloadKVMLink"/>
    <!-- 是否支持显示二维码(示例:VALUE="1", 值为"0"或"1",其他值默认为"0",表示不显示) -->
    <DocSupportFlag VALUE="CustomDocSupportFlag"/>
    <!-- 软件名称,用于自定义日志BMC名称和CLP提示符 -->
    <SoftwareName VALUE="openUBMC"/>
    <!-- 主机名 -->
    <HostName VALUE="CustomHostName"/>
    <!-- 安全公告 -->
    <dBannerContent VALUE="CustomdBannerContent"/>
    <!-- 客户名称 -->
    <Customer VALUE="CustomerName"/>
</CUSTOM_CONFIG>

开发者可根据自身需要,选择合适的定制项放入web_custom.xml中,其中VALUE的内容需要替换为定制内容,不需要的定制项可以删除

配置白牌文件夹 ​

白牌定制相关文件准备完毕之后,开始构建打包环节,配置步骤如下:

  1. 新建文件夹,文件夹内应为干净的白牌包文件,如filelist.conf及相关文件(必须和filelist对应)、beforeaction.sh(可选)、afteraction.sh(可选)
  2. 执行命令bingo wbd_build

取包地址:当前文件夹下wbd-crypt-image-signed.hpm

升级白牌包 ​

产品管理组件实现对接固件管理组件,完成白牌包升级和生效;具体步骤及升级流程图如下:

  • 升级前准备:解析update.cfg文件,判断升级包类型是否为白牌包;
  • 升级动作执行:解析filelist.cfg,完成定制文件导入到系统指定目录;
  • 升级后处理:解析web_custom.xml文件,完成xml文件中属性定制。

进入openUBMC首页,然后进入固件升级->固件更新->升级文件,若白牌包中配置了Customer字段,升级完成后会自动重启生效。

如何定制清白牌包 ​

定制白牌包后,如果需要恢复到原来的配置,需要升级清白牌包。实际上,清白牌包也是一个白牌包,只是里面的配置为默认配置,需要构建一个默认配置的白牌包。

  1. 配置定制类只需修改web_custom.xml中定制项为想要的默认值即可
  2. 风格定制类将style_config.json文件置为空对象即可
  3. 图片定制类若恢复默认,需要配置filelist.conf,把原来的Name配置为CLEAR_ALL,然后创建一个空文件,命名为CLEAR_ALL即可。注意在manifest配置白牌包时,也需要加上CLEAR_ALL文件的配置。

filelist.conf示例:

shell
# 需要恢复默认的配置,Name更改为CLEAR_ALL
[Basic]
Version=2.02

[Filelist]
FileNum=9

[File0]
Name=code1.png
Path=/data/opt/pme/web/htdocs/theme/custom/img

[File1]
Name=favicon.ico
Path=/data/opt/pme/web/htdocs

[File2]
Name=web_custom.xml
Path=/data/opt/pme/web/conf

[File3]
Name=CLEAR_ALL
Path=/data/opt/pme/web/custom

[File4]
Name=CLEAR_ALL
Path=/data/opt/pme/web/custom

[File5]
Name=CLEAR_ALL
Path=/data/opt/pme/web/custom

[File6]
Name=CLEAR_ALL
Path=/data/opt/pme/web/custom

[File7]
Name=img_02.png
Path=/data/opt/pme/web/custom

[File8]
Name=img_03.png
Path=/data/opt/pme/web/custom