OpenWRT 挂载报错 libubus.so.20220601 解决办法

通常在编译完的 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 动态库。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。