openUBMC品牌包定制指南

openUBMC品牌包定制指南

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

品牌包简介

品牌包本质就是一个hpm包,通过固件升级的方式来实现定制化能力
可以定制的内容主要包括以下几个部分:图片定制,网页风格定制,配置定制

序号 定制类别 定制项 文件 属性
1 图片定制 浏览器ICO favicon.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.json pageStyle
8 配置定制 产品联系人 web_custom.xml sysContact
9 配置定制 默认安全公告 web_custom.xml dBannerContent
10 配置定制 预置证书Common Name web_custom.xml PreSSLSeverCommonName
11 配置定制 预置证书Organization Name web_custom.xml PreSSLSeverOrgName
12 配置定制 预置证书Country web_custom.xml PreSSLSeverCountry
13 配置定制 官网 web_custom.xml OfficalWeb
14 配置定制 版权信息 web_custom.xml Copyright
15 配置定制 技术支持网址 web_custom.xml SupportWeb
16 配置定制 邮箱 web_custom.xml Email
17 配置定制 邮箱 web_custom.xml Phone
18 配置定制 独立KVM web_custom.xml DownloadKVMLink
19 配置定制 二维码显示标志位(是否显示) web_custom.xml DocSupportFlag
20 配置定制 BMC软件名称 web_custom.xml SoftwareName
21 配置定制 告警、事件描述 web_custom.xml CustomAlarmName
22 配置定制 操作、运行、安全日志(BMA名称定制) web_custom.xml CustomLogIbmaName
23 配置定制 CLI界面命令提示符、日志(BMC名称定制) web_custom.xml CustomLogIbmcName
24 配置定制 redfish OEM厂商 web_custom.xml CustomManufacturer
25 配置定制 语言 web_custom.xml LanguageSet
26 配置定制 追加语言 web_custom.xml LanguageSetAppend
27 配置定制 BMC主机名称 web_custom.xml HostName
28 配置定制 客户名称(用于生效指定客户定制的特性) web_custom.xml Customer

如何定制一个品牌包

1.新建一个仓用户存放品牌定制文件
品牌定制文件包括各种定制图片、配置文件web_custom.xml以及filelist.conf,定制图片名称需要与上述表格展示的文件名一致

2.配置filelist.conf
需要正确配置文件数量、文件名称和文件路径。其中文件路径和文件名称是固定的,不允许进行变更,FileNum的值需要与下列配置File的个数一致,具体配置参考下面示例

[Basic]
Version=2.00

[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=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

3.配置web_custom.xml
web_custom.xml负责配置各种属性,配置项含义如下,其中VALUE的内容需要替换为定制内容,不需要的配置项可以删除

<?xml version="1.0" encoding="UTF-8"?>
<!-- 描述:目前官网、版权信息、独立KVM下载链接信息、文档二维码显示标志位在web中有使用 -->
<CUSTOM_CONFIG>
    <!-- 系统联系人 -->
    <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"/>
    <!-- 是否支持显示二维码 -->
    <DocSupportFlag VALUE="CustomDocSupportFlag"/>
    <!-- 软件名称,用于自定义日志BMC名称和CLP提示符 -->
    <SoftwareName VALUE="CustomSoftwareName"/>
    <!-- 自定义BMA名称 -->
    <CustomLogIbmaName VALUE="CustomLogIbmaName"/>
    <!-- 与软件名称SoftwareName功能相同 -->
    <CustomLogIbmcName VALUE="CustomLogIbmcName"/>
    <!-- 主机名 -->
    <HostName VALUE="CustomHostName"/>
    <!-- 安全公告 -->
    <dBannerContent VALUE="CustomdBannerContent"/>
    <Customer VALUE="CustomerName"/>
</CUSTOM_CONFIG>

4.配置manifest仓中产品对应的manifest.yml
(1)新建编码,如WBD
(2)确定好包名package_name,如wbd/wbd_output.zip
(3)确定好构建类型build_type,如release
(4)开始配置品牌包相关配置,配置格式如下示例

manufacture:
    WBD:
        # package_name为品牌包存放路径与品牌包名称
        pack_age_name: wbd/wbd_output.zip
        build_type: release
        wbd_hpms:
            # repo为存放品牌包定制文件的仓库地址,需要填写https下载的地址
            - repo: https://test.git
              # tag为存放定制文件的分支tag号
              tag: 0.0.0
              files:
                # 根据品牌定制文件存放路径修改file的路径,但是dst路径不可修改,均为"wbd_up_file/文件名"的格式,如下示例
                - file: customization/Server/Kunpeng/TaiShan200_2280v2/WBD/favicon.ico
                dst: wbd_up_file/favicon.ico
                - file: customization/Server/Kunpeng/TaiShan200_2280v2/WBD/login_logo.png
                dst: wbd_up_file/login_logo.png
                - file: customization/Server/Kunpeng/TaiShan200_2280v2/WBD/header_logo.png
                dst: wbd_up_file/header_logo.png
                - file: customization/Server/Kunpeng/TaiShan200_2280v2/WBD/filelist.conf
                dst: wbd_up_file/filelist.conf
                - file: customization/Server/Kunpeng/TaiShan200_2280v2/WBD/web_custom.xml
                dst: wbd_up_file/web_custom.xml
                # 下列文件都是制作品牌包必须文件,路径固定,不可删除
                - file: /usr/share/bmcgo/wbd-packet/beforeaction.sh
                - file: /usr/share/bmcgo/wbd-packet/afteraction_remove_busctl.sh
                dst: afteraction.sh
                - file: /usr/share/bmcgo/wbd-packet/CfgFileList.conf
                - file: /usr/share/bmcgo/wbd-packet/firstboot.sh
                - file: /usr/share/bmcgo/wbd-packet/hpm_wbd.config
                - file: /usr/share/bmcgo/wbd-packet/packetwbd.sh
                - file: /usr/share/bmcgo/wbd-packet/update.cfg
        # dst为最后制作出来的品牌包名称
        files:
          - file: ${work_out}/wbd_hpm1.hpm
            dst: WBD-image.hpm
            verify:
              - pss

(5)确认manifest配置的品牌定制文件个数与filelist.conf中文件个数一致,不一致会导致升级品牌包失败

5.在manifest仓的build目录执行构建命令

bmcgo publish -z WBD -b TaiShan200_2280v2
其中-z的参数为品牌包的编码,-b的参数为机型

取包地址: manifest/output/packet/wbd/wbd_output.zip

6.升级品牌包
进入固件升级->固件更新->升级文件,进行品牌包升级,如果配置了Customer字段则在升级完成后会自动重启,其他场景无需重启即可生效

3 个赞

白牌包的files记录需要打包的文件,如果file是相对路径的,会去repo仓提取文件。
/usr/share/bmcgo/wbd-package/目录复制的文件一般情况下原样保持即可,如果确要修改的,请放在repo仓中记录。

              repo: https://test.git
              # tag为存放定制文件的分支tag号
              tag: 0.0.0
              files:
                # 以下示例是从repo仓提取文件customization/Server/Kunpeng/TaiShan200_2280v2/WBD/favicon.ico并复制到wbd_up_file/favicon.ico。
                - file: customization/Server/Kunpeng/TaiShan200_2280v2/WBD/favicon.ico
                  dst: wbd_up_file/favicon.ico
                # 以下示例是从bmcgo工具打包目录复制beforeaction.sh
                - file: /usr/share/bmcgo/wbd-packet/beforeaction.sh

制作清白牌包的方法

定制之后,如果需要恢复到原来的配置,需要升级清白牌包。实际上,清白牌包也是一个白牌包,只是里面的配置是默认配置。所以如果需要恢复到原来的配置,只需再出一个恢复到默认配置的白牌包即可。

web_custom.xml默认配置举例:

	<?xml version="1.0" encoding="UTF-8"?>
	<!-- 描述:目前官网、版权信息、独立KVM下载链接信息、文档二维码显示标志位在web中有使用 -->
	<CUSTOM_CONFIG>
		<!-- 官方网址 -->
		<OfficalWeb VALUE="http://enterprise.huawei.com/" />
		<!-- 技术支持网址 -->
		<SupportWeb VALUE="http://support.huawei.com/" />
		<!-- 邮箱 -->
		<Email VALUE="support_e@huawei.com" />
		<!-- 电话 -->
		<Phone VALUE="400-822-9999" />
		<!-- 版权信息 -->
		<Copyright VALUE="Huawei Technologies Co., Ltd. 2004-2025. All rights reserved." />
		<!-- 独立KVM下载链接信息-->
		<DownloadKVMLink VALUE="http://support.huawei.com/onlinetoolsweb/itexpress/kvmclient/" />
		<!-- 版权信息(示例:VALUE="en,zh" 对应支持英中文) -->
		<LanguageSet VALUE="en,zh,ja,fr,ru" />
		<!-- 产品信息联系人(示例:VALUE="http://enterprise.huawei.com/") -->
		<sysContact VALUE="http://enterprise.huawei.com/" />
		<!-- 文档二维码显示标志位(示例:VALUE="1" 值为“0”,“1”,其它值默认为“0”)-->
		<DocSupportFlag VALUE="1" />
		<!-- 软件名称(示例:VALUE="iBMC") -->
		<SoftwareName VALUE="iBMC" />
		<!-- Redfish OEM厂商(示例:VALUE="Huawei" 对应支持英中文) -->
		<CustomManufacturer VALUE="Huawei" />
		<!-- 告警/事件描述(示例:VALUE="iBMC")-->
		<CustomAlarmName VALUE="iBMC" />
		<!-- 操作/运行/安全日志(示例:VALUE="iBMA")-->
		<CustomLogIbmaName VALUE="iBMA" />
		<!-- 操作/运行/安全日志(示例:VALUE="iBMC") CLI界面命令提示符-->
		<CustomLogIbmcName VALUE="iBMC" />
		<!--安全公告(示例:VALUE="安全公告" )-->
		<dBannerContent VALUE="WARNING! This system is PRIVATE and PROPRIETARY and may only be accessed by authorized users. Unauthorized use of the system is prohibited. The owner, or its agents, may monitor any activity or communication on the system. The owner, or its agents, may retrieve any information stored within the system. By accessing and using the system, you are consenting to such monitoring and information retrieval for law enforcement and other purposes."/>
	</CUSTOM_CONFIG>

图片文件等恢复默认,需要配置filelist.conf,把原来的Name配置成CLEAR_ALL, 然后在创建一个空文件,名称为CLEAR_ALL即可。注意在manifest配置的的时候,files中的配置需要包含这个CLEAR_ALL文件。升级白牌包时,遇到CLEAR_ALL配置,就会删除对应路径下的文件

filelist.conf配置举例

#white branding file list

[Basic]
Version=2.01

[Filelist]
FileNum=8

[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=logo.jpg
Path=/data/opt/pme/web/htdocs/bmc/resources/images/cmn

[File3]
Name=CustomizeSensor.xml
Path=/data/opt/pme/conf/oem/profile

[File4]
Name=CLEAR_ALL
Path=/data/opt/pme/conf/oem/profile

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

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

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

既然按照指导文档会出现失败,麻烦能更新下文档吗

有具体错误案例吗

见社区issue, 已经在manifest修复合入。

手动解决方案:
参考PR 修改。