白牌包更换主界面机型展示图片失败问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:openUBMC 25.09;
- 涉及功能:白牌包首页机型图片显示;
- 触发条件:替换主界面机型展示图片。
- 业务表现:预期显示正确的机型图片;实际升级白牌包后显示的还是为原来默认图片。
问题复现步骤
参考openUBMC品牌包定制指南 配置能够成功替换二维码 code1.png,但是替换主界面机型展示图片img_01.png/img_02.png/img_03.png,执行升级白牌包后显示的还是为原来默认图片。
关键日志信息
/opt/bmc/web/htdocs/extern/custom/img_01.png 实际并没有软链接到/data/opt/bmc/web/custom/img_01.png
定位过程
- 主界面机型展示图片只会显示一张,如果定制了01、02、03三张机型图,一般只会选择01那张图片。
- 主界面机型图片定制是支持的,可以确认定制的图片是否存放在flielist.conf中配置的Path路径下(pme更改为bmc)。
- 可以查看product_mgmt的资源树,/bmc/kepler/Systems/1/Product路径下的bmc.kepler.Systems.Product接口中ProductPicture属性显示使用的哪张图片。
- 可以用F12进入开发者模式,确认访问图片权限是否正确
- 环境下查看/opt/bmc/web/htdocs/extern/custom/img_01.png 实际并没有软链接到/data/opt/bmc/web/custom/img_01.png,而是/opt/bmc/web/htdocs/extern/custom/custom软连接到/data/opt/bmc/web/custom/,同时/data/opt/bmc/web/custom/下是存在img_01.png img_02.png img_03.png。
问题原因
/opt/bmc/web/htdocs/extern/custom这个路径下是否存在img_01.png这个文件。 因为接口访问/extern/custom/img_01.png其实是访问的/opt/bmc/web/htdocs/extern/custom/img_01.png,而这个又是软链接到/data/opt/bmc/web/custom/img_01.png,所以如果/data/opt/bmc/web/custom/目录下有img_01.png文件的话,需要确认软链接是否正常。
解决方案
在manifest组件中解决方法如下:
在build/product/BMC/openUBMC/permissions.ini下增加以下权限
textdata/opt/bmc/web/htdocs rd 550 98 98 data/opt/bmc/web/htdocs/bmc/resources/images d 750 98 98 data/opt/bmc/web/htdocs/bmc/resources/images/cmn d 750 98 98新增两个文件夹build/product/BMC/openUBMC/rootfs/data/opt/bmc/web/htdocs/bmc/resources/images/cmn和build/product/BMC/openUBMC/rootfs/opt/bmc/web/htdocs/extern文件夹