装备脚本定制项失败定位
更新时间: 2026/02/10
在Gitcode上查看源码

一、装备脚本定制化前置条件

1. 版本配套

需要保证定制化脚本的B版本和BMC的B版本保持一致,机型也保持一致,否则会定制化失败,定制化脚本对应的BMC版本和来源需要确认清楚。

2. 镜像依赖

保证环境OS是可以执行定制化脚本的版本,可以用升级包中driver.tar.gz查看支持的驱动版本。

3. 环境配套

确认BMC和OS在同一台单板上。

4. 脚本依赖

脚本有依赖,执行特定脚本要在解压的编码包中执行,单独拷贝某个文件执行会缺少依赖 如:可以通过white_branding.sh定制图片等,但是只有该脚本没有截图目录,脚本会因为依赖conver二进制文件,执行失败。

5.定制失败定位思路

定制化脚本=shell脚本+ipmi命令,根据customerset.ini和serial.ini文件中配置的定制化项执行ipmi命令设置,ini文件中没有配置的定制化项设置为默认值。 定制化失败必然存在打印 如:SYS_NUM=NULL set SYS_NUM fail function目录中打包了所有的定制化项涉及的接口函数 如:

shell
getini $CONFIGFILE BMCSET_CustomerialNUM
IS_SET_SYS_NUM=$parameter
if [ "$IS_SET_SYS_NUM" = "on" ] ; then
    getini $CONFIGFILE Custom_SerialNUM
    SYS_NUM=$parameter

    if [ "$SYS_NUM" != "" ] ; then
        if [ "${#SYS_NUM}" -gt 32 ] ; then
            echo_fail "Surpasses the greatest length 32! set BMCSet_CustomSerialNUM failed!"
            error_quit
        fi
        set_system_num "$SYS_NUM"
        sleep 1
    else
        echo_fail "SYS_NUM=NULL set SYS_NUM fail"
        echo "SYS_NUM=NULL set SYS_NUM fail" >> $SAVEFILE
        error_quit
    fi
else
    restore_system_num
fi

打印中可以确认定制化项是什么 如:BMCSet_CustomSerialNUM、Custom_SerialNUM 明确了定制化项则要明确相关定制化内容是否正确。如:以上失败的原因是custom.ini配置文件中定制了BMCSET_CustomerialNUM为"on",但是Custom_SerialNUM又没有定制,导致了定制失败。

二、装备脚本定制化常见问题

  1. 某些定制项存在依赖关系,表现为定制化脚本报错“用户定制错误”、“配置冲突”,常见原因有与BMC的默认配置冲突。

  2. 版本不配套功能不支持,表现为驱动加载失败、系统功能异常,常见原因有定制化版本与OS/BIOS/CPLD版本不匹配

  3. 脚本执行存在对特定二进制文件的依赖