问题描述
系统版本:X86
设备环境:(物理机、局域网 | FN Connect 、系统版本1.1.3104 、相册版本0.9.4)
BUG现象:(我通过web端和app访问,上传图片后发现出现缩略图无法加载现象,在文件管理界面可以打开原文件;相册的重新建立索引,重新识别,重新创建缩略图都试过,无效;停用相册,重启nas,卸载相册,彻底卸载相册都无效;并且以前上传的图片可以正常显示,只有今天系统更新后出现;在彻底卸载相册后以前的图片才出现缩略图无法加载情况)
出现频率:(必现)
联系方式:(18956947617,755群-安西义之)
日志文件:飞牛分享【Debug_Log_20260521013448.zip】,点击链接下载文件,在App打开可转存到NAS:https://share.fnnas.net/s/52e26969a93a4849ab

飞牛 1.1.3106 相册正常但缩略图不显示,原因是 imagesrv 缺 libOpenCL.so.1
解决方案:
现象
飞牛版本 1.1.3106,相册本身能打开,照片列表/时间线正常,但缩略图无法正常显示。
排查过程
先看缩略图服务:
<span><span>systemctl status auto_thumbnailer.service --no-pager -l</span> <span>journalctl -u auto_thumbnailer.service -n 200 --no-pager</span></span>
auto_thumbnailer.service 是正常运行的,所以继续查相册日志:
<span><span>tail -n 240 /usr/local/apps/@appdata/trim.photos/log/error.log</span></span>
看到关键错误:
<span><span>imageSrv.GenJpegThumb error: dial unix /run/trim_app_cgi/imagesrv: connect: no such file or directory</span> <span>gen thumb err, id: xx, err: dial unix /run/trim_app_cgi/imagesrv: connect: no such file or directory</span> <span>read file error open /var/apps/trim.photos/meta/data/thumb/s/...: no such file or directory</span></span>
说明相册不是自己完全坏了,而是生成缩略图时依赖的 imagesrv socket 不存在。
继续检查:
<span><span>ls -la /run/trim_app_cgi</span> <span>systemctl status imagesrv.service --no-pager -l</span> <span>journalctl -u imagesrv.service -n 200 --no-pager</span></span>
发现 imagesrv.service 一直在重启失败,核心错误是:
<span><span>/usr/trim/bin/imagesrv: error while loading shared libraries: libOpenCL.so.1: cannot open shared object file: No such file or directory</span></span>
再确认依赖:
<span><span>ldd /usr/trim/bin/imagesrv | grep OpenCL</span> <span>ldconfig -p | grep -i opencl</span> <span>dpkg -L ocl-icd-libopencl1</span></span>
结果显示 imagesrv 缺 libOpenCL.so.1,而 ocl-icd-libopencl1 包状态异常,包管理器认为装了,但实际 .so 文件没出来。
修复方法
重装 OpenCL ICD loader:
<span><span>apt-get install --reinstall -y ocl-icd-libopencl1</span> <span>ldconfig</span></span>
然后重启 imagesrv:
<span><span>systemctl restart imagesrv.service</span> <span>systemctl status imagesrv.service --no-pager -l</span> <span>ls -la /run/trim_app_cgi/imagesrv</span></span>
修复后确认:
<span><span>imagesrv.service active (running)</span> <span>/run/trim_app_cgi/imagesrv 已存在</span></span>
再重启相册应用,让它重新连接恢复后的 imagesrv:
<span><span>TRIM_APPNAME=trim.photos \</span> <span>TRIM_APPDEST=/usr/local/apps/@appcenter/trim.photos \</span> <span>TRIM_PKGVAR=/usr/local/apps/@appdata/trim.photos \</span> <span>TRIM_PKGMETA=/vol1/@appmeta/trim.photos \</span> <span>TRIM_PKGHOME=/usr/local/apps/@apphome/trim.photos \</span> <span>/var/apps/trim.photos/cmd/main stop</span> <span></span> <span>TRIM_APPNAME=trim.photos \</span> <span>TRIM_APPDEST=/usr/local/apps/@appcenter/trim.photos \</span> <span>TRIM_PKGVAR=/usr/local/apps/@appdata/trim.photos \</span> <span>TRIM_PKGMETA=/vol1/@appmeta/trim.photos \</span> <span>TRIM_PKGHOME=/usr/local/apps/@apphome/trim.photos \</span> <span>/var/apps/trim.photos/cmd/main start</span></span>
最后验证:
<span><span>systemctl is-active imagesrv.service</span> <span>curl -s --unix-socket /var/run/trim_photos.sock --max-time 3 http://localhost/p/api/v1/health</span> <span>test -S /run/trim_app_cgi/imagesrv && echo ok</span> <span>find /vol1/@appmeta/trim.photos/data/thumb -maxdepth 3 -type f | wc -l</span> <span>du -sh /vol1/@appmeta/trim.photos/data/thumb</span></span>
修复后我的结果是:
<span><span>imagesrv=active</span> <span>photos_health=18742</span> <span>socket=ok</span> <span>缩略图缓存:376 个</span> <span>缩略图缓存大小:18M</span></span>
注意
执行 apt-get install --reinstall -y ocl-icd-libopencl1 时,我这里还报了一个无关错误:
<span><span>broadcom-sta-dkms package post-installation script subprocess returned error exit status 10</span> <span>E: Sub-process /usr/bin/dpkg returned an error code (1)</span></span>
但 ocl-icd-libopencl1 实际已经重新装好,libOpenCL.so.1 恢复了,imagesrv 也能正常启动。这个 DKMS 报错和相册缩略图问题不是同一个原因。