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 away. Therefore, we are planning to make openwrt accessible from the external network.
Naturally, the solution is to use dynamic DNS (ddns) because the telecommunications broadband has a dynamic public IP.
When I was ready to enable the ddns function, I found that the software package was disabled and the startup item could not restart ddns.
Although I am not sure if it is a firmware version issue, reinstalling the software package may solve the problem. With the mentality of giving it a try, when I opened the software package and prepared to install it, 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.
Reason
In openwrt, each 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" versions downloaded from forums or other sources by experienced users have 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 for execution.
If this doesn't solve the problem 😱... then it's better to install a new firmware.