banner
Aki

Aki

太阳能维修,月亮可更换,星星不闪包退换。
twitter

解决软路由无法安装软件包的问题

描述#

家内网的媒体服务器已经部署好了流媒体,但目前只能在内网进行访问,如果出门在外也能看家里的动漫就好了,所以准备给 openwrt 公开到外网去。

采用的方案自然是动态 ddns,因为电信宽带有动态公网 IP。

当我准备去开启 ddns 功能的时候发现软件包被禁用了,启动项也无法重启 ddns。

image

虽然不确定是不是固件版本的问题,但重装软件包可能可以解决,抱着试一试的心态打开软件包准备安装的时候,不出意外的话这种时候就出意外了

* pkg_hash_check_unresolved: cannot find dependency kernel (= 5.15.104-1-c3ae984cf3530f6fa5bf8738be620d7b) for kmod-crypto-aead
* pkg_hash_check_unresolved: cannot find dependency kernel (= 5.15.104-1-c3ae984cf3530f6fa5bf8738be620d7b) for kmod-crypto-manager
* pkg_hash_check_unresolved: cannot find dependency kernel (= 5.15.104-1-c3ae984cf3530f6fa5bf8738be620d7b) for kmod-crypto-ecb
* pkg_hash_check_unresolved: cannot find dependency kernel (= 5.15.104-1-c3ae984cf3530f6fa5bf8738be620d7b) for kmod-mppe

由于内核版本问题,无法安装 ddns 插件

原因#

openwrt 中每个大小版本均有对应的 md5 值,即指纹,例如’c3ae984cf3530f6fa5bf8738be620d7b‘这样一串字符。报错是因为个人编译的版本的指纹是经过修改的,通常论坛或者其他途径下载来的大佬编译的” 高大全 “版均经过修改,导致与官方软件包的指纹不匹配,进而产生无法安装软件包的问题

解决办法#

通过 ssh 的方式连接 openwrt

cd /usr/lib/opkg/ && cp status status.bak
vi status
:%s/c3ae984cf3530f6fa5bf8738be620d7b/e469f5589b4c7b368924a6e4f8f7407f/g

替换 status 文件中的指纹,例如我的 openwrt 指纹是c3ae984cf3530f6fa5bf8738be620d7b用官方版本e469f5589b4c7b368924a6e4f8f7407f进行替换

Tip
在 vi 编辑器中%s是替换文字的指令,用冒号呼出编辑器的控制台进行执行

如果这样也没能解决😱。。。那还是重新换一个固件进行安装吧

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。