banner
Aki

Aki

太阳能维修,月亮可更换,星星不闪包退换。
twitter

Solving the problem of being unable to install software packages on a software router.

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.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.