cpld通过uBMC远程升级失败

开发uBMC网页升级CPLD hpm文件,显示无效的升级包

问题描述

我在openUBMC2506版本基础上开发通过uBMC网页升级cpld的功能,操作步骤如下:

根据下面帖子中解决问题的帖子进行操作,其中bingo用的是bingo-25.12_2026.12.31_LTS_SP2.zip版本

CPLD场外打包疑问 - 交流互助区 - openUBMC 论坛

1.环境准备中,将rootca.crl重命名为crldata.crl,放入/usr/share/bingo/csr_packet文件夹中;

2.修改packet.sh操作中,将该脚本下所有的*.bin修改为*.vme;同时将function update_image_filelist改为

update.cfg改动如下:

[Basic]

Version=1.0

[Firmware]

FileNum=2

[Firmware0]

ProductID=0

ComponentID=0

FRUID=0

DllLen=0

Updatefile=libupgrade_0.so

BoardID=65535

BoardIDList=65535

Uid=0x1030abf00

MultipleSuppliersMode=1

CPLDChipNummbers=1

[Firmware1]

ProductID=0

ComponentID=5

FRUID=0

DllLen=0

Updatefile=libupgrade_5.so

BoardID=65535

BoardIDList=65535

ComponentIDEx=127

DeviceID=65535

DeviceIDList=65535

Uid=0x1030abf00

MultipleSuppliersMode=1

CPLDChipNummbers=1

4.hpm_devkit.config文件改动如下:

//===============升级操作记录========================
//Upgrade action type.升级操作类型。
//00h = Backup component(s) 备份部件,如果不需要备份部件,action为0xff
//01h = Prepare component(s) 准备部件,如果不需要准备部件,action为0xff
//02h = Upload firmware image 上传软件镜像
backup_action = 0xff
backup_components = 0
prepare_action = 1
prepare_components = 0x80000001

//上传软件镜像1
//版本辅助信息在文件中占用4字节,对应一个4字节长的16进制数,第一节对应这个数的低8位,其余类推。
//firmware_description为字符串
//file_name为这个镜像文件的文件名,这个文件必须和这个配置文件放在同一目录下
//这个镜像文件的文件路径从这个congfig文件的路径获取
//file_number表示这个部件里包含的文件个数
//firmware_description描述软件镜像的字符串,要适合显示给用户。最长21字节
//upload_components是掩码,相应bit代表相应的部件,比如值为8代表部件4,1代表部件1
//版本和IPMC一致
upload_action = 2
upload_components = 0x00000001
firmware_version = 5.16
auxiliary_firmware_revision = 0x00000000
firmware_description = CONFIG
file_number = 1
file_path = /data/conf.tar.gz
file_name = conf.tar.gz

upload_action = 2
upload_components = 0x80000000
firmware_version = 0.00
auxiliary_firmware_revision = 0x00000000
firmware_description = EEPROM
file_number = 1
file_path = /data/eeprom.tar.gz
file_name = eeprom.tar.gz

5.更改完成后,执行指令./packet.sh package . False对CPLD进行打包,打包正常,没有报错;

执行指令hpm_signer -s signer.pem -t ts_signer.pem -T tsa.cnf -i image.filelist -o image.filelist.cms对package中生成的image.filelist进行签名,显示执行成功;

执行./packet.sh rebuild . 进行打包,显示成功,并生成了devkit.hpm文件

将该文件通过uBMC网页进行更新,提示无效的升级包,还需要进行什么配置还是哪里操作不对?

这个是升级操作是的app.log

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2506]

  • 硬件配置:[如 CPU、内存等]

答案内容由AI生成,仅供参考:

总结

您遇到的核心问题很可能源于bingo 工具版本过旧以及 update.cfg 缺少 UpdateFileType=vme 配置,导致最终生成的 HPM 包无法被系统正确识别和验证。请优先升级 bingo 到最新正式版本,并补全 VME 类型声明;同时核对签名证书和产品标识,应该可以解决“无效的升级包”问题。

如果问题依旧,请提供完整的 app.log 和打包配置,以便进一步精准分析。

点击此处查看详细分析解答

根据您提供的问题描述和操作步骤,结合上下文中的相关信息,这里为您分析可能的原因并提供排查建议。


问题分析

您按照论坛帖子中的步骤对 CPLD 进行了场外打包(修改 packet.sh、update.cfg、hpm_devkit.config),并完成了签名和 rebuild,生成了 devkit.hpm,但在 web 端升级时提示“无效的升级包”。这与已知案例高度相似,可能涉及以下几个核心因素:

1. bingo 工具版本过旧

在您引用的论坛帖子(参考文档块 3)中,有明确的回复指出:“从日志可以看出使用的以前开发版本的 bingo”,并给出了两种解决方案:

  • 方案1:使用发布的最新 bingo 包(如 OpenUBMC-Bingo_25.03.zip),解压后安装其中的 whl 和 deb 包,并执行卸载旧版本操作(pip3 uninstall -y script、apt remove bingo 等)。
  • 方案2:使用官方发布的 docker 镜像或 dockerfile 构建环境。

您当前使用的 bingo-25.12_2026.12.31_LTS_SP2.zip 可能是之前的开发版本,而非正式发布的最新版本,这很可能导致打包格式或签名机制与当前系统(OpenUBMC2506)不兼容,从而被判定为无效包。

2. 缺少 VME 文件类型声明

在搜索结果《VME文件介绍与CPLD升级实践指南》中明确指出:

在 general_hardware 代码中,如果 CPLD 升级需要使用 VME 文件,需要在 HPM 升级包的 update.cfg 配置文件中设置 UpdateFileType=vme。该配置用于告知升级框架按 VME 路径解析与执行后续流程。

您提供的 update.cfg 中并未包含该字段。如果不设置此字段,系统可能无法识别文件为 VME 类型,进而按默认(非 VME)路径解析失败。

3. 签名证书问题

从您提供的升级日志(文档块2中的类似日志)可以看到关键错误:

validate_sign.lua:178: An error occurred during the firmware upgrade process. Details: add pss root certificate failed, code ffffff

这表示添加 PSS 根证书失败,导致签名验证失败,最终返回 InvalidFirmwarePackage。虽然您已将 rootca.crl 重命名为 crldata.crl 放入指定目录,但可能仍存在证书链不完整、证书格式不正确或路径配置问题。

4. 包类型被误认为“非社区包”

在文档块1的回复中,有提示:“报错信息显示CPLD包未被识别为社区包”,这通常与打包时的产品标识(如 uid、ComponentID 等)配置不正确有关,或缺少社区包特有的标识字段。


排查与解决建议

结合上述原因,请按顺序检查以下内容:

:white_check_mark: 步骤1:更换为最新版 bingo 工具

  • 从官方渠道获取最新发布的 bingo 包(如 OpenUBMC-Bingo_25.03.zip 或更高版本)。
  • 按文档块3中的方案1执行彻底卸载旧版并安装新版:
    pip3 uninstall -y script
    apt remove bingo
    pip3 install <新版>.whl
    dpkg -i <新版>.deb
    
  • 或者直接使用官方 Docker 镜像开发环境(方案2),避免环境冲突。

:white_check_mark: 步骤2:检查并补充 UpdateFileType 配置

在 update.cfg 的 [Firmware] 部分(或对应字段)中增加:

UpdateFileType=vme

确保升级框架能够正确识别 VME 文件并走对应的升级链路。

:white_check_mark: 步骤3:验证签名证书链

  • 确认 crldata.crl 文件内容正确,且与您使用的 signer.pem 和 ts_signer.pem 配套。
  • 检查 /usr/share/bingo/csr_packet/ 目录访问权限,确保服务能够读取。
  • 尝试使用官方文档中提供的标准 signer.pem 和 ts_signer.pem 重新签名(注意论坛中建议使用最新的签名工具),排除证书过期或算法不匹配问题。

:white_check_mark: 步骤4:核对打包配置与产品标识

  • 对比社区提供的标准 hpm_devkit.config 和 update.cfg 模板,确保 uid、ComponentID、prepare_components 等字段与目标硬件匹配(例如您使用的 Uid=0x1030abf00 需确认是否对应实际设备)。
  • 确认 packet.sh 中所有 .vme 文件的路径和命名符合要求(如 cpld.vme 等)。

:white_check_mark: 步骤5:查看详细日志辅助定位

若以上均无问题,请重新抓取升级时的 app.log,重点检查:

  • 是否还有 add pss root certificate failed 错误;
  • 是否出现 parse package ... failed 的详细原因;
  • 是否有提示包类型未被识别的信息。

总结

您遇到的核心问题很可能源于bingo 工具版本过旧以及 update.cfg 缺少 UpdateFileType=vme 配置,导致最终生成的 HPM 包无法被系统正确识别和验证。请优先升级 bingo 到最新正式版本,并补全 VME 类型声明;同时核对签名证书和产品标识,应该可以解决“无效的升级包”问题。

如果问题依旧,请提供完整的 app.log 和打包配置,以便进一步精准分析。

update.cfg里面的UID不是0x多少,是板卡的UID。这种格式00000001030302023925。具体UID是多少,需要看你升级CPLD板卡上的UID。你可以在BMC web页面的 [系统管理–> 组件]中查询对应板卡的UID

您好,我按照我项目的UId对update.cfg进行了更改,这个UId是从哪里获取的?

重新编译后,烧录还是提示无效的升级包,报错信息如下,像是packge包无效编译:

你在打包前,有哪些文件?我这边update.cfg配置如下:

[Basic]
Version=1.0
Revision=14

[Firmware]
FileNum=2

[Firmware0]
ProductID=0
ComponentID=0
FRUID=0
DllLen=0
Updatefile=libupgrade_0.so
BoardID=65535
BoardIDList=65535
Uid=00000001030302023925
MultipleSuppliersMode=1
CPLDChipNummbers=1

[Firmware1]
ProductID=0
ComponentID=5
FRUID=0
DllLen=0
Updatefile=libupgrade_5.so
BoardID=65535
BoardIDList=65535
Uid=00000001030302023925
MultipleSuppliersMode=1
CPLDChipNummbers=1

你用我的配置,改一下UID打包试一下

我用的最新bingo-26.06_2026.06.30.zip版本的bingo,按照您之前的流程,将rootca.crl重命名为crldata.crl,放入/usr/share/bingo/csr_packet文件夹中;改了packet.sh中*.bin改成了*.vme,上文中改了function update_image_filelist函数,现在update.cfg按您的配置改了;hpm_kevkit.config文件配置也是按照您的值改了

编译前像文件夹中传了cpld.vme文件和一个空功能的valid.vme文件,我的signer.pem、ts_signer.pem、tsa.cnf文件也都放到了csr_packet文件夹中了,然后执行了./packet.sh package . False 、、、 hpm_signer -s signer.pem -t ts_signer.pem -T tsa.cnf -i image.filelist -o image.filelist.cms、、、./packet.sh rebuild .三条指令生成了最终的devkit.hpm文件

这一步操作的打印有吗?不确定你脚本中这一步是不是有问题。你可以看一下packet.sh这个脚本文件。

更换update.cfg文件后,校验过了,用我们的UId也能校验过,但是显示更新失败,错误log显示如下:

1970-01-01 01:22:02.792190 web_backend NOTICE: init.lua(98): upload content length:number 100910, remaining capacity space:number 130306048
1970-01-01 01:22:02.924608 firmware_mgmt NOTICE: active_fructl.lua(95): get host type is Singlehost
1970-01-01 01:22:02.924964 firmware_mgmt NOTICE: utils.lua(35): The file path is local.
1970-01-01 01:22:02.932050 firmware_mgmt NOTICE: init.lua(33): update status to FS_SIMPLE_UPGRADING.
1970-01-01 01:22:02.943428 firmware_mgmt NOTICE: task_service.lua(49): task create success, task id: 2468239091
1970-01-01 01:22:03.003427 firmware_mgmt NOTICE: file_transfer.lua(145): start to move file [devkit.hpm] from tmp to shm
1970-01-01 01:22:03.069222 firmware_mgmt NOTICE: file_transfer.lua(150): move_file_s ok:true, err:0
1970-01-01 01:22:03.139690 firmware_mgmt NOTICE: validate_sign.lua(240): get platform is community
1970-01-01 01:22:03.141053 firmware_mgmt NOTICE: action.lua(37): Validate signature successfully
1970-01-01 01:22:03.285855 firmware_mgmt NOTICE: hpm_package.lua(488): parse cfg file successfully, Version:1.0 FileNum:2
1970-01-01 01:22:03.286228 firmware_mgmt NOTICE: hpm_package.lua(444): get obj table: 0x26a577367380 for Id=5
1970-01-01 01:22:03.287311 firmware_mgmt NOTICE: hpm_package.lua(413): System product info:ProductId(0), ProductVendorID(0x00000001), ProductUniqueID(0x030ABF00)
1970-01-01 01:22:03.287876 firmware_mgmt NOTICE: hpm_package.lua(327): check product id successfully
1970-01-01 01:22:03.291177 firmware_mgmt ERROR: hpm_package.lua(380): get mathorboard fru obj failed, skip check board id
1970-01-01 01:22:03.291909 firmware_mgmt NOTICE: hpm_package.lua(437): get obj table: 0x26a577367380 for Id=5
1970-01-01 01:22:03.292758 firmware_mgmt NOTICE: hpm_package.lua(459): hard_revision:0, soft_revision:0
1970-01-01 01:22:03.293340 firmware_mgmt NOTICE: hpm_package.lua(472): revision number check successfully. Target revision=(0, 0) and hpm revision=14
1970-01-01 01:22:03.301024 firmware_mgmt NOTICE: action.lua(47): Parse hpm package successfully
1970-01-01 01:22:03.301974 firmware_mgmt NOTICE: control.lua(247): upgrade_task file_name=devkit.hpm, FirmwareType=Cpld, fw_num=1, UniqueIDList=nil, sys_id=1
1970-01-01 01:22:03.404614 firmware_mgmt NOTICE: task_service.lua(63): destroy_dup_task: task(1Cpld) dup, task id: 3842502148 → 2468239091
1970-01-01 01:22:03.404975 firmware_mgmt NOTICE: task_service.lua(31): destroy_task_by_id: 3842502148
1970-01-01 01:22:03.416273 firmware_mgmt NOTICE: info_mgmt.lua(73): create_info: info_key=1Cpld, FirmwareType=Cpld, task_id=2468239091
1970-01-01 01:22:03.517185 firmware_mgmt NOTICE: action.lua(85): public initialize action
1970-01-01 01:22:03.517481 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: INITIALIZE → DIFF_PREPARE, 5
1970-01-01 01:22:03.625733 general_hardware NOTICE: upgrade_subject.lua(63): [on_upgrade_prepare] firmware_type:Cpld cur_firmware_type:Cpld
1970-01-01 01:22:03.626625 general_hardware NOTICE: upgrade_subject.lua(71): [on_upgrade_prepare] start upgrade Cpld
1970-01-01 01:22:03.627476 general_hardware NOTICE: signal.lua(100): [cpld]Start the system[1] Cpld upgrade prepare phase
1970-01-01 01:22:03.728003 general_hardware NOTICE: upgrade_subject.lua(78): [on_upgrade_prepare] end upgrade Cpld
1970-01-01 01:22:03.731111 general_hardware NOTICE: fw_upgrade.lua(118): [cpld]get cpld_valid :nil
1970-01-01 01:22:03.732114 general_hardware NOTICE: fw_upgrade.lua(95): [cpld]get verion
1970-01-01 01:22:03.734785 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: DIFF_PREPARE → COMMON_PREPARE, 7
1970-01-01 01:22:03.815003 firmware_mgmt NOTICE: action.lua(89): public prepare action start
1970-01-01 01:22:03.855654 firmware_mgmt NOTICE: worker: start action in worker
1970-01-01 01:22:03.949213 firmware_mgmt NOTICE: worker: execute before action script successfully
1970-01-01 01:22:04.849259 firmware_mgmt NOTICE: action.lua(95): public prepare action end
1970-01-01 01:22:04.849623 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: COMMON_PREPARE → PROCESS, 15
1970-01-01 01:22:04.949517 firmware_mgmt NOTICE: control.lua(158): sys_id=1, fw_type=Cpld, filename=/dev/shm/upgrade/2468239091/Firmware1
1970-01-01 01:22:04.952241 general_hardware NOTICE: upgrade_subject.lua(88): [on_upgrade_process] start upgrade Cpld
1970-01-01 01:22:04.952468 general_hardware NOTICE: signal.lua(121): [cpld]Start the system[1] Cpld upgrade process phase
1970-01-01 01:22:05.042105 general_hardware NOTICE: upgrade_subject.lua(95): [on_upgrade_process] end upgrade Cpld
1970-01-01 01:22:05.042529 general_hardware ERROR: process.lua(285): no match component: firmware uid = 00000001010302044492
1970-01-01 01:22:05.044032 firmware_mgmt ERROR: control.lua(406): Upgrade Cpld process failed, ret=-1
1970-01-01 01:22:05.044369 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: PROCESS → COMMON_FINISH, 95
1970-01-01 01:22:05.141651 firmware_mgmt NOTICE: control.lua(110): wait_msg_result stage=COMMON_FINISH, timeout=7200S, loop=1
1970-01-01 01:22:05.141995 firmware_mgmt NOTICE: info_mgmt.lua(222): info_key(1Cpld) upgrade failed, set_stage: COMMON_FINISH → COMPLETED
1970-01-01 01:22:05.383160 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: COMPLETED → COMPLETED, 100
1970-01-01 01:22:05.384050 firmware_mgmt ERROR: task_service.lua(83): Update task failed, task_id: 2468239091, res: -9
1970-01-01 01:22:05.385814 firmware_mgmt NOTICE: active_fructl.lua(95): get host type is Singlehost
1970-01-01 01:22:05.386475 firmware_mgmt NOTICE: active_single_host_fructrl.lua(61): active_single_host_fructrl fructrl get power status
1970-01-01 01:22:05.389461 firmware_mgmt NOTICE: state_simple_upgrading.lua(87): simple upgraded, current active mode is:nil, wait restart seconds:30000
1970-01-01 01:22:05.397419 firmware_mgmt NOTICE: init.lua(33): update status to FS_IDLE.

no match component: firmware uid = 00000001010302044492
最新的报错日志提示没有在环境上找到这个uid的cpld对象。请检查一下你的LogicFirmware对象,该对象下的uid属性配置是否和升级固件包中的uid(00000001010302044492)一致?

刚才LogicFirmware_EXU_1中UId改成了00000001030302023925

但是网页还是显示00000001010302044492

查了sr下,还有ExpBoard_1和SRUpgrade_1中Uid是00000001010302044492

将LogicFirmware_EXU_1中的ID改成00000001010302044492后,网页升级显示升级成功了,但是重新上电后,CPLD不启动了,请问是什么原因?

这个是网页操作升级的成功的界面

下面是烧录日志:

1970-01-01 00:19:44.416968 web_backend NOTICE: init.lua(98): upload content length:number 100910, remaining capacity space:number 129933312
1970-01-01 00:19:44.640871 firmware_mgmt NOTICE: active_fructl.lua(95): get host type is Singlehost
1970-01-01 00:19:44.641241 firmware_mgmt NOTICE: utils.lua(35): The file path is local.
1970-01-01 00:19:44.662322 firmware_mgmt NOTICE: init.lua(33): update status to FS_SIMPLE_UPGRADING.
1970-01-01 00:19:44.691671 firmware_mgmt NOTICE: task_service.lua(49): task create success, task id: 474507190
1970-01-01 00:19:44.754408 firmware_mgmt NOTICE: file_transfer.lua(145): start to move file [devkit.hpm] from tmp to shm
1970-01-01 00:19:44.817852 firmware_mgmt NOTICE: file_transfer.lua(150): move_file_s ok:true, err:0
1970-01-01 00:19:44.898308 firmware_mgmt NOTICE: validate_sign.lua(240): get platform is community
1970-01-01 00:19:44.901186 firmware_mgmt NOTICE: action.lua(37): Validate signature successfully
1970-01-01 00:19:45.033226 firmware_mgmt NOTICE: hpm_package.lua(488): parse cfg file successfully, Version:1.0 FileNum:2
1970-01-01 00:19:45.034775 firmware_mgmt NOTICE: hpm_package.lua(444): get obj table: 0x5d6ac371f128 for Id=5
1970-01-01 00:19:45.036181 firmware_mgmt NOTICE: hpm_package.lua(413): System product info:ProductId(0), ProductVendorID(0x00000001), ProductUniqueID(0x030ABF00)
1970-01-01 00:19:45.037029 firmware_mgmt NOTICE: hpm_package.lua(327): check product id successfully
1970-01-01 00:19:45.042649 firmware_mgmt ERROR: hpm_package.lua(380): get mathorboard fru obj failed, skip check board id
1970-01-01 00:19:45.043516 firmware_mgmt NOTICE: hpm_package.lua(437): get obj table: 0x5d6ac371f128 for Id=5
1970-01-01 00:19:45.044611 firmware_mgmt NOTICE: hpm_package.lua(459): hard_revision:0, soft_revision:0
1970-01-01 00:19:45.045398 firmware_mgmt NOTICE: hpm_package.lua(472): revision number check successfully. Target revision=(0, 0) and hpm revision=14
1970-01-01 00:19:45.053186 firmware_mgmt NOTICE: action.lua(47): Parse hpm package successfully
1970-01-01 00:19:45.054718 firmware_mgmt NOTICE: control.lua(247): upgrade_task file_name=devkit.hpm, FirmwareType=Cpld, fw_num=1, UniqueIDList=nil, sys_id=1
1970-01-01 00:19:45.141068 firmware_mgmt NOTICE: info_mgmt.lua(73): create_info: info_key=1Cpld, FirmwareType=Cpld, task_id=474507190
1970-01-01 00:19:45.243967 firmware_mgmt NOTICE: action.lua(85): public initialize action
1970-01-01 00:19:45.244275 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: INITIALIZE → DIFF_PREPARE, 5
1970-01-01 00:19:45.348896 general_hardware NOTICE: upgrade_subject.lua(63): [on_upgrade_prepare] firmware_type:Cpld cur_firmware_type:Cpld
1970-01-01 00:19:45.349154 general_hardware NOTICE: upgrade_subject.lua(71): [on_upgrade_prepare] start upgrade Cpld
1970-01-01 00:19:45.349562 general_hardware NOTICE: signal.lua(100): [cpld]Start the system[1] Cpld upgrade prepare phase
1970-01-01 00:19:45.460200 general_hardware NOTICE: upgrade_subject.lua(78): [on_upgrade_prepare] end upgrade Cpld
1970-01-01 00:19:45.463415 general_hardware NOTICE: fw_upgrade.lua(118): [cpld]get cpld_valid :nil
1970-01-01 00:19:45.464456 general_hardware NOTICE: fw_cfgs.lua(70): check fw uid(00000001010302044492) id(255) id_ex(4294967295) exist success
1970-01-01 00:19:45.684973 general_hardware NOTICE: fw_init.lua(163): get fw version 0.01
1970-01-01 00:19:45.685224 general_hardware NOTICE: fw_upgrade.lua(95): [cpld]get verion[0.01]
1970-01-01 00:19:45.687127 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: DIFF_PREPARE → COMMON_PREPARE, 7
1970-01-01 00:19:45.745019 firmware_mgmt NOTICE: action.lua(89): public prepare action start
1970-01-01 00:19:45.783259 firmware_mgmt NOTICE: worker: start action in worker
1970-01-01 00:19:45.847176 firmware_mgmt NOTICE: worker: execute before action script successfully
1970-01-01 00:19:46.773088 firmware_mgmt NOTICE: action.lua(95): public prepare action end
1970-01-01 00:19:46.773419 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: COMMON_PREPARE → PROCESS, 15
1970-01-01 00:19:46.874641 firmware_mgmt NOTICE: control.lua(158): sys_id=1, fw_type=Cpld, filename=/dev/shm/upgrade/474507190/Firmware1
1970-01-01 00:19:46.887130 general_hardware NOTICE: upgrade_subject.lua(88): [on_upgrade_process] start upgrade Cpld
1970-01-01 00:19:46.887406 general_hardware NOTICE: signal.lua(121): [cpld]Start the system[1] Cpld upgrade process phase
1970-01-01 00:19:46.997207 general_hardware NOTICE: upgrade_subject.lua(95): [on_upgrade_process] end upgrade Cpld
1970-01-01 00:19:46.997941 general_hardware NOTICE: fw_cfgs.lua(70): check fw uid(00000001010302044492) id(255) id_ex(4294967295) exist success
1970-01-01 00:19:46.998376 general_hardware NOTICE: process.lua(38): cpld fw matched, system_id = 1, fw.uid = 00000001010302044492, fw.csr.Name = EXU_CPLD
1970-01-01 00:19:47.014629 hardware ERROR: tar.c(664): __extract_file: lchown on file(cpld.vme) failed!
1970-01-01 00:19:47.017081 hardware ERROR: tar.c(664): __extract_file: lchown on file(valid.vme) failed!
1970-01-01 00:19:47.017648 general_hardware NOTICE: process.lua(295): [cpld]get cpld packages successful
1970-01-01 00:19:47.018192 general_hardware NOTICE: process.lua(193): [cpld]load_cpld_single
1970-01-01 00:19:47.018528 general_hardware NOTICE: process.lua(56): load file[0x2bb88]
1970-01-01 00:20:18.153096 general_hardware WARNING: init.lua(574): service[bmc.kepler.web_backend] request timeout: remote service[bmc.kepler.hwproxy], path[/bmc/kepler/Chip/Cpld/Crface[bmc.kepler.Chip.BlockIO], method[Write], used time[31s]
1970-01-01 00:20:18.153447 general_hardware NOTICE: process.lua(82): [cpld]/dev/shm/upgrade/474507190/cpld.vme update success!
1970-01-01 00:20:18.164264 general_hardware NOTICE: valid.lua(228): [cpld]set system_id = 1 ValidatingCpldFlag = 1
1970-01-01 00:20:18.174967 general_hardware ERROR: hook.lua(79): database process commit list failed: ./opt/bmc/libmc/lualib/mc/context.lua:185: ./opt/bmc/libmc/lualib/mc/signal.luaibmc/lualib/mc/orm/object.lua:560: attempt to call field ‘create_mdb_object’ (a nil value)
1970-01-01 00:20:18.177510 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: PROCESS → COMMON_FINISH, 95
1970-01-01 00:20:18.234913 firmware_mgmt NOTICE: control.lua(110): wait_msg_result stage=COMMON_FINISH, timeout=7200S, loop=312
1970-01-01 00:20:18.235264 firmware_mgmt NOTICE: action.lua(99): public finish action start
1970-01-01 00:20:18.262707 firmware_mgmt NOTICE: worker: start action in worker
1970-01-01 00:20:18.330915 firmware_mgmt NOTICE: worker: execute finish action script successfully
1970-01-01 00:20:19.252561 firmware_mgmt NOTICE: action.lua(105): public finish action end
1970-01-01 00:20:19.252869 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: COMMON_FINISH → DIFF_FINISH, 95
1970-01-01 00:20:19.367640 general_hardware NOTICE: upgrade_subject.lua(105): [on_upgrade_finish] start upgrade Cpld
1970-01-01 00:20:19.368054 general_hardware NOTICE: signal.lua(241): [cpld]Start the system[1] Cpld upgrade finish phase
1970-01-01 00:20:19.469973 general_hardware NOTICE: fructl_handler.lua(58): get_host_type: get host type Singlehost
1970-01-01 00:20:19.476145 general_hardware NOTICE: fructl_handler.lua(77): get_power_state: system[1] get power power ON
1970-01-01 00:20:19.478577 general_hardware NOTICE: signal.lua(161): upgrade_single_host system_id[1] firmware_type[Cpld] power_state[ON]
1970-01-01 00:20:19.480570 general_hardware NOTICE: valid.lua(223): [cpld]get system_id = 1 ValidatingCpldFlag = true
1970-01-01 00:20:19.484639 general_hardware NOTICE: fructl_handler.lua(58): get_host_type: get host type Singlehost
1970-01-01 00:20:19.486489 general_hardware NOTICE: signal.lua(36): [CPLD]Register Active Action start firmware_id = CPLD_ResetAC active_condition = PowerOff
1970-01-01 00:20:19.492704 firmware_mgmt NOTICE: active_info.lua(243): register: FirmwareId = CPLD_ResetAC FirmwareType = CPLD ActiveCondition = PowerOff ActiveMode = ResetAC ActivetemId = nil
1970-01-01 00:20:19.493920 firmware_mgmt NOTICE: active_info.lua(250): upgrade_type is Simple
1970-01-01 00:20:19.496130 general_hardware ERROR: hook.lua(79): database process commit list failed: ./opt/bmc/libmc/lualib/mc/context.lua:185: ./opt/bmc/libmc/lualib/mc/signal.luaibmc/lualib/mc/orm/object.lua:560: attempt to call field ‘create_mdb_object’ (a nil value)
1970-01-01 00:20:19.512849 firmware_mgmt NOTICE: active_info.lua(123): Insert FirmwareActive info [FirmwareId:CPLD_ResetAC] to table [t_fw_active_objs]
1970-01-01 00:20:19.549076 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: DIFF_FINISH → CLEAR, 99
1970-01-01 00:20:19.558794 firmware_mgmt NOTICE: control.lua(110): wait_msg_result stage=CLEAR, timeout=600S, loop=1
1970-01-01 00:20:19.559207 firmware_mgmt NOTICE: control.lua(216): Upgrade 1Cpld completely, pre_version=0.01
1970-01-01 00:20:19.654074 general_hardware NOTICE: upgrade_subject.lua(112): [on_upgrade_finish] end upgrade Cpld
1970-01-01 00:20:19.798776 firmware_mgmt NOTICE: info_mgmt.lua(171): info_key(1Cpld) upgrade set_stage: CLEAR → COMPLETED, 100
1970-01-01 00:20:19.898110 firmware_mgmt NOTICE: active_fructl.lua(95): get host type is Singlehost
1970-01-01 00:20:19.900199 firmware_mgmt NOTICE: active_single_host_fructrl.lua(61): active_single_host_fructrl fructrl get power status
1970-01-01 00:20:19.906899 firmware_mgmt NOTICE: state_simple_upgrading.lua(87): simple upgraded, current active mode is:nil, wait restart seconds:30000
1970-01-01 00:20:19.916231 firmware_mgmt NOTICE: init.lua(33): update status to FS_IDLE.
1970-01-01 00:20:33.725187 my_app NOTICE: my_app_app.lua(117): type of obj is table, obj is {“path”:“/bmc/kepler/Chassis/1/Sensors”,“interface”:“bmc.kepler.Chassis.Sensors”,“servicesor”}
1970-01-01 00:20:33.761484 my_app NOTICE: my_app_app.lua(133): temp : 54.000
1970-01-01 00:20:33.763148 my_app NOTICE: my_app_app.lua(311): [TIMER] UDP sent to 224.21.1.3:1435

你这个packet.sh脚本是不是只是生成了hpm包,但是没有对包进行签名,所以导致提示无效的升级包,可以搜下固件签名,论坛应该有帖子

更换了update.cfg内容,网页已经提示升级成功了,但是cpld没有正常启动,日志打印在上个链接中已经粘贴出来了

升级完成了有整机AC过么? 之前有遇到过I2C接口生成CPLD 整机AC不生效是由于CPLD固件本身的问题,得找CPLD的大佬看看

这个AC过程是CPLD自己执行还是需要uBMC这边发指令?

如果当前系统是关机状态的话就会自动执行AC,当前是开机状态的话那就需要你手动电源控制进行强制下电之后就会AC了; 或者简单点你直接拔电源线

直接拔电源线后,重新上电CPLD不启动了,由于BMC的电也是CPLD控制的,BMC也没正常启动,能确定的是CPLD确实被执行了,但是不能启动

之前拔了间隔时间太短,等10秒后重新上电CPLD更新过来了

正常来说,升级CPLD后,OS在下电情况下BMC应该会自动AC重启的

请教个问题,在您其他帖子中,我看到需要valid.vme是个空功能函数即可,这个不是随便生成一个之后共用就可以吗?我在测试中发现,板卡中比如用的我1.0.0版本的程序,后来我更换了1.0.1版本,并在1.0.1版本基础上生成了一个空功能的valid.vme函数,我实测在1.0.0基础上升级1.0.1,网页提示成功了,但是CPLD实际电都没控上,我在1.0.1基础上升级其他版本,用的1.0.1的valid.vme函数,都能正常升级,这是什么原因?