説明#
家庭内ネットワークのメディアサーバーはストリーミングメディアが展開されていますが、現在は内部ネットワークからのみアクセスできます。外出先でも家のアニメを見ることができればいいので、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
で置換します。
ヒント
vi エディタでは、%s
はテキストを置換するコマンドです。コロンを使用してエディタのコンソールを呼び出して実行します。
これでも解決しない場合😱。。。別のファームウェアをインストールしてみてください