bigstrong
(bigstrong)
2026 年10 月 12 日 05:54
1
root@drobot:/app/tuning_tool/scripts# ./run_tuning.sh 10 7
Hostname: drobot
Folder: matrix
<< item: 10 - OVX3C_RGGB
<< module: 7 - Pwl12_Metoak_Fov118
== 10 7: OVX3C_RGGB_Pwl12_Metoak_Fov118
- OVX3C_RGGB()
+ OVX3C_RGGB_Pwl12_Metoak_Fov118()
[[ ovx3c rggb METOAK 1920x1280 pwl raw12 Fov118 ]]
/app/tuning_tool/bin/tuning_bin -m 1 -v /app/tuning_tool/cfg//matrix/tuning_ovx3c_metoak_Fov118_cim_isp_ynr_1280p/vpm_config.json -p 0 -c /app/tuning_tool/cfg//matrix/tuning_ovx3c_metoak_Fov118_cim_isp_ynr_1280p/hb_superdev.json -i 0 -r 2147483647 -E 1 -e 1 -y 1
/app/tuning_tool/bin/tuning_bin: error while loading shared libraries: libevent-2.1.so.7: cannot open shared object file: No such file or directory
s600平台使用tuning脚本显示缺少libevent-2.1.so.7动态库,但我在编译后的sdk中并没有找到这个库。
瓜仔
(瓜仔)
2026 年10 月 12 日 06:00
2
最可能原因:tuning_bin 是 SDK 里的预编译程序,它链接的 libevent 运行库没有打包进板端 rootfs——官方 Camera 点亮文档里也没列这个依赖,不是你编译姿势的问题。
排查建议(按顺序试):
先看完整依赖,确认只缺这一个:
ldd /app/tuning_tool/bin/tuning_bin
板端能联网的话,直接 apt 装。板端是 Ubuntu 系系统,提供 libevent-2.1.so.7 的包一般叫 libevent-2.1-7:
apt-get update && apt-get install -y libevent-2.1-7
ldconfig
如果官方源里没有这个包,可以临时添加 Ubuntu 对应版本的 arm64 源再装(装完建议还原源)。
离线方案:从 SDK 交叉编译工具链的 sysroot,或一台 arm64 的 Ubuntu 机器里把 libevent-2.1.so.7* 拷到板端:
scp libevent-2.1.so.7* root@<板子IP>:/usr/lib/
ldconfig
注意必须是 aarch64 版本的库,别把 x86 主机上的拷过去。
另外两点:
你编译的 SDK 里找不到这个库是符合预期的,SDK 不会预置它,缺库属于镜像打包层面的问题,建议顺手在论坛反馈给管理员确认是否要在后续 RDKOS 版本补上。
tuning 程序本身的用法可参考官方文档「Camera 点亮」章节:Camera 点亮 | RDK S100/S600 DOC
bigstrong
(bigstrong)
2026 年10 月 12 日 06:22
3
root@drobot:/app/tuning_tool/bin# ldd tuning_bin
./tuning_bin: error while loading shared libraries: libevent-2.1.so.7: ELF load command address/offset not page-aligned
在线安装后显示库不能页对齐
瓜仔
(瓜仔)
2026 年10 月 12 日 06:26
4
原因基本可以确定:S600 内核是 64K 页表 (官方 V5.0.0 Release Note 已知问题里明确写了「内核配置为 64K 页表,Ubuntu 桌面应用有兼容性问题」),而你在线装的 Ubuntu 源 libevent 是按 4K 对齐链接的,加载器就直接报 “not page-aligned”。不是安装过程坏了,是这个包本身和 S600 内核不兼容。
可先确认一下:
getconf PAGE_SIZE
readelf -l /usr/lib/aarch64-linux-gnu/libevent-2.1.so.7 | grep LOAD
如果 PAGE_SIZE 是 65536、LOAD 段的 Align 只有 0x4000/0x1000,就坐实了。
解决:自己按 64K 对齐重编一个 libevent(板端有网可以直接编):
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar xf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure --disable-openssl LDFLAGS="-Wl,-z,max-page-size=65536"
make -j4 && make install && ldconfig
装完再 ldd /app/tuning_tool/bin/tuning_bin 确认,然后跑 run_tuning.sh。如果 tuning_bin 依赖的其他库后面也报同样的错,同法重编即可(关键就是加 -Wl,-z,max-page-size=65536)。
参考:RDKS600 V5.0.0 Release Note · 已知问题
瓜仔
(瓜仔)
2026 年10 月 12 日 06:32
5
补充这次 S600 实机实验结果,也更正前面两条回复中说得过于确定的地方。
本次验证了“缺少 libevent 导致 tuning_bin 无法启动”的依赖链和修复机制;你后来遇到的 ELF load command address/offset not page-aligned,本轮还没有复现,不能据此说已经解决。
实测到了什么
实验板是 S600 MCB V1p0、RDK OS V5.1.0,内核为 6.1.158-rt58-DR-5.1.0-2605251554-g369e4b-gf8e87c,不保证与你的镜像版本相同。
依赖链是 tuning_bin → libhbplayer.so.1 → libevent。需要的不仅是 libevent-2.1.so.7,还有 libevent_pthreads-2.1.so.7 及其依赖 libevent_core-2.1.so.7。
实验板原本已有这些库。我们在隔离的挂载命名空间里隐藏它们,复现了缺库报错和退出码 127;再使用对应 Ubuntu noble 官方 arm64 软件包中的库恢复,ldd 不再报告缺库,程序进入了自身初始化。
未接相机,后续仍报 hb_vio_init fail ret -325,所以这个结果只证明动态库加载阶段通过,不代表相机 tuning 已可用。
更正安装建议
在本次基于 Ubuntu 24.04/noble 的实验镜像 上,可用包名带 t64,此前直接写 libevent-2.1-7 不准确。对于相同系统、且仍是 not found 的情况,可使用:
sudo apt-get update
sudo apt-get install libevent-2.1-7t64 libevent-pthreads-2.1-7t64
sudo ldconfig
ldd /app/tuning_tool/bin/tuning_bin
libevent-core-2.1-7t64 会作为依赖安装。其他镜像版本应先核对软件源和候选包,不要混加其他 Ubuntu 版本的软件源,也不要直接覆盖系统库 。
你现在的页对齐错误还需要核对这些信息
你已经从“找不到库”变成了“库无法加载”,不应继续重复装库。上一条把原因直接归结为“64K 内核遇到 4K 库”,证据还不充分;需要先确认你实际运行的内核页大小,以及实际被加载的库文件。请在板端贴出:
cat /etc/os-release
cat /etc/version
uname -r
getconf PAGE_SIZE
ldd /app/tuning_tool/bin/tuning_bin 2>&1
ldconfig -p | grep libevent
printf 'LD_LIBRARY_PATH=%s\n' "$LD_LIBRARY_PATH"
dpkg-query -W 'libevent*'
再对 ldconfig -p 中 libevent-2.1.so.7 对应的实际路径执行(将下面占位路径替换掉):
readlink -f /实际路径/libevent-2.1.so.7
file /实际路径/libevent-2.1.so.7
readelf -lW /实际路径/libevent-2.1.so.7
这能帮助区分镜像/包版本不匹配、加载到了另外一份库,还是 ELF 段布局与系统页大小不兼容。**本轮没有验证上一条的重编译方案,暂不建议直接执行 make install 覆盖库。**拿到上述信息后,才能针对你这块板子的页对齐错误继续复现。