描述#
家內網的媒體伺服器已經部署好了流媒體,但目前只能在內網進行訪問,如果出門在外也能看家裡的動漫就好了,所以準備給 openwrt 公開到外網去。
採用的方案自然是動態 ddns,因為電信寬帶有動態公網 IP。
當我準備去開啟 ddns 功能的時候發現軟體包被禁用了,啟動項也無法重啟 ddns。
雖然不確定是不是固件版本的問題,但重裝軟體包可能可以解決,抱著試一試的心態打開軟體包準備安裝的時候,不出意外的話這種時候就出意外了
* 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
是替換文字的指令,用冒號呼出編輯器的控制台進行執行
如果這樣也沒能解決😱。。。那還是重新換一個固件進行安裝吧