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