白牌包更换主界面机型展示图片失败问题分析
更新时间: 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

定位过程

  1. 主界面机型展示图片只会显示一张,如果定制了01、02、03三张机型图,一般只会选择01那张图片。
  2. 主界面机型图片定制是支持的,可以确认定制的图片是否存放在flielist.conf中配置的Path路径下(pme更改为bmc)。
  3. 可以查看product_mgmt的资源树,/bmc/kepler/Systems/1/Product路径下的bmc.kepler.Systems.Product接口中ProductPicture属性显示使用的哪张图片。
  4. 可以用F12进入开发者模式,确认访问图片权限是否正确
  5. 环境下查看/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组件中解决方法如下:

  1. 在build/product/BMC/openUBMC/permissions.ini下增加以下权限

    text
    data/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
  2. 新增两个文件夹build/product/BMC/openUBMC/rootfs/data/opt/bmc/web/htdocs/bmc/resources/images/cmn和build/product/BMC/openUBMC/rootfs/opt/bmc/web/htdocs/extern文件夹