Description#
The media server on the home network has already deployed streaming media, but currently it can only be accessed within the internal network. It would be great if we could also watch anime at home when we are out. Therefore, we are planning to expose it to the external network on openwrt.
The solution naturally involves dynamic DDNS because the telecom broadband has a dynamic public IP.
When I was about to enable the DDNS function, I found that the software package was disabled and the startup item could not restart the DDNS.
Although I'm not sure if it's a firmware version issue, reinstalling the software package may solve it. With the mindset of giving it a try, when I opened the software package to prepare for installation, unsurprisingly, something unexpected happened.
* 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
Due to the kernel version issue, the DDNS plugin cannot be installed.
Cause#
In openwrt, each major and minor version has a corresponding MD5 value, which is a fingerprint. For example, 'c3ae984cf3530f6fa5bf8738be620d7b' is such a string of characters. The error occurs because the fingerprint of the personally compiled version has been modified. Usually, the "high and complete" version downloaded from forums or other sources by the experts has been modified, resulting in a mismatch with the fingerprint of the official software package, which in turn causes the problem of being unable to install the software package.
Solution#
Connect to openwrt via SSH
cd /usr/lib/opkg/ && cp status status.bak
vi status
:%s/c3ae984cf3530f6fa5bf8738be620d7b/e469f5589b4c7b368924a6e4f8f7407f/g
Replace the fingerprint in the status file. For example, if my openwrt fingerprint is c3ae984cf3530f6fa5bf8738be620d7b
, replace it with the official version e469f5589b4c7b368924a6e4f8f7407f
.
Tip
In the vi editor,%s
is the command to replace text. Use a colon to bring up the editor's console to execute it.
If this doesn't solve the problem 😱... then it's better to install a new firmware.