通常在编译完的 OpenWRT 固件内安装完挂载点都可以正常使用,但部分固件安装完就会出现挂载点内没有全局设置内容或执行 block 相关命令提示 Error loading shared library libubus.so.20220601 错误,错误提示如下,这种问题通常是 libubus 动态库版本问题。
# 执行 block 相关命令提示,比如:block info Error loading shared library libubus.so.20220601: No such file or directory (needed by /sbin/block) Error relocating /sbin/block: ubus_free: symbol not found Error relocating /sbin/block: ubus_connect: symbol not found Error relocating /sbin/block: ubus_invoke_fd: symbol not found Error relocating /sbin/block: ubus_lookup_id: symbol not found
解决方法
1、查找是否安装 libubus.so 动态库,安装的动态库版本是否为 libubus.so.20220601,并尝试安装动态库,执行命令如下:
# 查找动态库版本 opkg list-installed | grep ubus # 强制安装动态 opkg update opkg install libubus20220601 --force-depends
2、如你的发行版软件源地址内无法查找到或无法下载 libubus.so.20220601 动态库,那么就替换掉你的发行版软件源,替换时注意你的架构,以下提供为 aarch64_cortex-a53 架构使用,地址如下:
src/gz openwrt_core https://downloads.openwrt.org/snapshots/targets/armvirt/64/packages src/gz openwrt_base https://archive.openwrt.org/releases/packages-22.03/aarch64_cortex-a53/base src/gz openwrt_luci https://archive.openwrt.org/releases/packages-22.03/aarch64_cortex-a53/luci src/gz openwrt_packages https://archive.openwrt.org/releases/packages-22.03/aarch64_cortex-a53/packages src/gz openwrt_routing https://archive.openwrt.org/releases/packages-22.03/aarch64_cortex-a53/routing src/gz openwrt_telephony https://archive.openwrt.org/releases/packages-22.03/aarch64_cortex-a53/telephony
3、替换完成执行 opkg update 进行更新源,如果执行更新过程中提示以下错误,请暂时关闭你的网络代理插件后重新更新并强制安装动态库,错误提示如下:
# 更新发行源 opkg update # 更新错误提示 * opkg_download: Check your network settings and connectivity . # 强制安装 libubus 动态库 opkg install libubus20220601 --force-depends
最后说明
此方法可以解决 Error loading shared library libubus.so.20220601 错误、挂载点全局设置内无内容、无法自动挂载硬盘等问题,libubox 主要提供基于事件驱动的机制 和 多种接口的开发支持,如链表、KV链表、平衡查找二叉树、MD5、JSON等,而 USB控制器驱动 刚好需要特定版本的 libubox 动态库。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。