装备脚本定制项失败定位
更新时间: 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又没有定制,导致了定制失败。
二、装备脚本定制化常见问题
某些定制项存在依赖关系,表现为定制化脚本报错“用户定制错误”、“配置冲突”,常见原因有与BMC的默认配置冲突。
版本不配套功能不支持,表现为驱动加载失败、系统功能异常,常见原因有定制化版本与OS/BIOS/CPLD版本不匹配
脚本执行存在对特定二进制文件的依赖