xChar
·a year ago

描述

家内网的媒体服务器已经部署好了流媒体,但目前只能在内网进行访问,如果出门在外也能看家里的动漫就好了,所以准备给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是替换文字的指令,用冒号呼出编辑器的控制台进行执行

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

Loading comments...