My way for updating packages on TP-Link Archer C7 v4 + a bug on dropbear 2017.75-8 on this device


After several trial-and-error sessions (actually after too many resets :rofl:), I found a way to update all but most LuCI packages on my device (flashed with openwrt-18.06.1-ar71xx-generic-archer-c7-v4-squashfs-factory.bin first), because I saw the snapshot version of LuCI and liked it a lot, but core system is not running that much good.
(Although some people Updating packages on LEDE with OPKG prefer not doing so.)

Note: Errors added below the corresponding packages.

Here are the steps:

1) After resetting the router, you have to change the password using LuCI and also set a SSH key as a backup. You can start changing things after these.

2) First update the packages list on PuTTY (or else):
opkg update

3) List upgradable packages:
opkg list-upgradable

Current upgrade path:
luci-lib-ip - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
luci-theme-bootstrap - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
netifd - 2018-07-30-a0a1e52e-1 - 2018-10-07-d0fa124e-1
luci-app-firewall - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
odhcp6c - 2018-07-14-67ae6a71-14 - 2018-07-14-67ae6a71-14.1
uclient-fetch - 2018-08-03-ae1c656f-1 - 2018-11-24-3ba74ebc-1
libuclient - 2018-08-03-ae1c656f-1 - 2018-11-24-3ba74ebc-1

dropbear - 2017.75-5 - 2017.75-5.1
Collected errors:

  • resolve_conffiles: Existing conffile /etc/dropbear/dropbear_rsa_host_key is different from the conffile in the new package. The new conffile will be placed at /etc/dropbear/dropbear_rsa_host_key-opkg.
  • resolve_conffiles: Existing conffile /etc/config/dropbear is different from the conffile in the new package. The new conffile will be placed at /etc/config/dropbear-opkg.

libjson-c - 0.12.1-1 - 0.12.1-2
luci-proto-ppp - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
luci-mod-admin-full - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
libubox - 2018-07-25-c83a84af-1 - 2018-07-25-c83a84af-2

luci-base - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
Collected errors:

  • resolve_conffiles: Existing conffile /etc/config/luci is different from the conffile in the new package. The new conffile will be placed at /etc/config/luci-opkg.

libjson-script - 2018-07-25-c83a84af-1 - 2018-07-25-c83a84af-2
luci-proto-ipv6 - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
libblobmsg-json - 2018-07-25-c83a84af-1 - 2018-07-25-c83a84af-2
jshn - 2018-07-25-c83a84af-1 - 2018-07-25-c83a84af-2
uhttpd - 2018-06-26-796d42bc-1 - 2018-11-28-cdfc902a-1
luci-lib-nixio - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
luci-lib-jsonc - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1
luci - git-18.228.31946-f64b152-1 - git-18.340.83383-3dea6b5-1

4) And upgrade packages one-by-one (someone might prefer other ways):
opkg upgrade XXX

5) Reboot

6) After all updates seem to be fine for you, you have to change the Distribution Feeds.
From this:

src/gz openwrt_core
src/gz openwrt_base
src/gz openwrt_luci
src/gz openwrt_packages
src/gz openwrt_routing
src/gz openwrt_telephony

To this (my preference, one might comment on this one):

src/gz openwrt_core
src/gz openwrt_base
src/gz openwrt_luci
src/gz openwrt_packages
src/gz openwrt_routing
src/gz openwrt_telephony

7) Update the packages list on PuTTY again:
opkg update

8) List upgradable packages:
opkg list-upgradable

9) And upgrade packages,
opkg upgrade XXX

by selecting from this list:
ubus - 2018-07-26-40e0931e-1 - 2018-10-06-221ce7e7-1
rpcd - 2018-08-16-41333abe-1 - 2018-11-22-c79ef222-1
busybox - 1.28.3-4 - 1.29.3-3
luci-lib-ip - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
libubus-lua - 2018-07-26-40e0931e-1 - 2018-10-06-221ce7e7-1
luci-theme-bootstrap - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
netifd - 2018-10-07-d0fa124e-1 - 2018-11-26-dfa4ede4-1
procd - 2018-03-28-dfb68f85-1 - 2018-11-23-d6673547-1
ubusd - 2018-07-26-40e0931e-1 - 2018-10-06-221ce7e7-1
firewall - 2018-07-26-aa8846bb-1 - 2018-12-06-14589c80-2
luci-app-firewall - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
odhcp6c - 2018-07-14-67ae6a71-14.1 - 2018-07-14-67ae6a71-16
wpad-mini - 2018-04-09-fa617ee6-5 - 2018-05-21-62566bc2-6

dropbear - 2017.75-5.1 - 2017.75-8 (this one is problematic, avoided on later tries)
Collected errors:

  • resolve_conffiles: Existing conffile /etc/dropbear/dropbear_rsa_host_key is different from the conffile in the new package. The new conffile will be placed at /etc/dropbear/dropbear_rsa_host_key-opkg.
  • resolve_conffiles: Existing conffile /etc/config/dropbear is different from the conffile in the new package. The new conffile will be placed at /etc/config/dropbear-opkg.

odhcpd-ipv6only - 1.10-1 - 1.13-3
luci-proto-ppp - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
ppp - 2.4.7-12 - 2.4.7-14
luci-mod-admin-full - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1

luci-base - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
Collected errors:

  • resolve_conffiles: Existing conffile /etc/config/luci is different from the conffile in the new package. The new conffile will be placed at /etc/config/luci-opkg.

luci-proto-ipv6 - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
libubus - 2018-07-26-40e0931e-1 - 2018-10-06-221ce7e7-1
luci-lib-nixio - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
ath10k-firmware-qca988x - 2018-04-19-71e50312-1 - 2018-10-18-d8775336-1
luci-lib-jsonc - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
luci - git-18.340.83383-3dea6b5-1 - git-18.345.21395-b94be57-1
hostapd-common - 2018-04-09-fa617ee6-5 - 2018-05-21-62566bc2-6
ppp-mod-pppoe - 2.4.7-12 - 2.4.7-14

This way, I could access later LuCI packages.

Comments are welcome.
Thank you!...

Past general recommendations about not performing wholesale upgrades of packages, upgrading busybox can lead to an unbootable system as I believe that opkg relies on busybox to complete its work.

You can always identify a "good" spot on the master or openwrt-18.06 and build from that, potentially changing the origin of the feeds to the branch that you desire.

I was intended to use the new interface of LuCI mainly, because of its package update mechanism. After that is accomplished, the rest has come...

It is not that useful everytime to install both type of packages together, because it increases the potential of a buggy outcome anytime soon. But as starters, that might suit someone to try new things...

Mixing master snapshot packages binaries and an old release firmware (like 18.06.1) in the router is usually always bad advice.

If you are lucky, it may work, but quite possibly some errors will surface. (like inability to reset the router or use sysupgrade normally, as you have now noticed in your help request threads). Especially upgrading low-level core packages like ubus, libubus, procd etc. is risky.

Hopefully people ignore your advice to edit /etc/opkg/distconf.feeds to mix new snapshot packages to old release firmware. The separate package download repos for specific releases and development snapshots exist for a reason, as there is a real risk of incompatibility.

Ok. Could you please list all "dangerous" packages, one-by-one explicitly?
I have known base-files package personally, experienced issues, as I shared it with you.

Here is my package list:

adblock	3.6.1-1
apcupsd	3.14.14-1
ath10k-firmware-qca988x-ct	2018-10-10-d366b80d-1
base-files	196-r8969-e9e63c5
block-mount	2018-09-29-29e53af0-3
busybox	1.30.0-1
ddns-scripts	2.7.8-6
dnscrypt-proxy	1.9.5-8
dnscrypt-proxy-resolvers	1.9.5+git-20171001-2d43be3-8
dropbear	2017.75-9
e2fsprogs	1.44.3-1
firewall	2018-12-06-14589c80-2
fstools	2018-09-29-29e53af0-3
fwtool	1	~3.9 KB	Utility
hd-idle	1.05-1
hostapd-common	2018-05-21-62566bc2-7
ip-full	4.19.0-8
ip6tables	1.8.2-2
ipset	7.1-1
iptables	1.8.2-2
iw	4.14-1
iwinfo	2018-12-25-dd508af4-1
jshn	2018-07-25-c83a84af-2
jsonfilter	2018-02-04-c7e938d6-1
kernel	4.14.90-1-62c515ec…
kmod-ath	4.14.90+4.19.7-1-1
kmod-ath10k-ct	4.14.90+2018-12-20-118e16da-1
kmod-ath9k	4.14.90+4.19.7-1-1
kmod-ath9k-common	4.14.90+4.19.7-1-1
kmod-cfg80211	4.14.90+4.19.7-1-1
kmod-crypto-crc32c	4.14.90-1
kmod-crypto-hash	4.14.90-1
kmod-fs-ext4	4.14.90-1
kmod-fs-msdos	4.14.90-1
kmod-fs-ntfs	4.14.90-1
kmod-fs-vfat	4.14.90-1
kmod-gpio-button-hotplug	4.14.90-2
kmod-hwmon-core	4.14.90-1
kmod-ip6tables	4.14.90-1
kmod-ipt-conntrack	4.14.90-1
kmod-ipt-core	4.14.90-1
kmod-ipt-ipset	4.14.90-1
kmod-ipt-nat	4.14.90-1
kmod-ipt-offload	4.14.90-1
kmod-lib-crc-ccitt	4.14.90-1
kmod-lib-crc16	4.14.90-1
kmod-mac80211	4.14.90+4.19.7-1-1
kmod-mii	4.14.90-1
kmod-nf-conntrack	4.14.90-1
kmod-nf-conntrack-netlink	4.14.90-1
kmod-nf-conntrack6	4.14.90-1
kmod-nf-flow	4.14.90-1
kmod-nf-ipt	4.14.90-1
kmod-nf-ipt6	4.14.90-1
kmod-nf-nat	4.14.90-1
kmod-nf-reject	4.14.90-1
kmod-nf-reject6	4.14.90-1
kmod-nfnetlink	4.14.90-1
kmod-nls-base	4.14.90-1
kmod-nls-cp437	4.14.90-1
kmod-nls-iso8859-1	4.14.90-1
kmod-nls-utf8	4.14.90-1
kmod-ppp	4.14.90-1
kmod-pppoe	4.14.90-1
kmod-pppox	4.14.90-1
kmod-scsi-core	4.14.90-1
kmod-slhc	4.14.90-1
kmod-tun	4.14.90-1
kmod-usb-core	4.14.90-1
kmod-usb-ehci	4.14.90-1
kmod-usb-ledtrig-usbport	4.14.90-1
kmod-usb-net	4.14.90-1
kmod-usb-net-cdc-mbim	4.14.90-1
kmod-usb-net-cdc-ncm	4.14.90-1
kmod-usb-net-huawei-cdc-ncm	4.14.90-1
kmod-usb-ohci	4.14.90-1
kmod-usb-serial	4.14.90-1
kmod-usb-serial-wwan	4.14.90-1
kmod-usb-storage	4.14.90-1
kmod-usb-storage-uas	4.14.90-1
kmod-usb-test	4.14.90-1
kmod-usb-uhci	4.14.90-1
kmod-usb-wdm	4.14.90-1
kmod-usb2	4.14.90-1
libblkid	2.33-1
libblobmsg-json	2018-07-25-c83a84af-2
libc	1.1.20-1
libcomerr	1.44.3-1
libext2fs	1.44.3-1
libgcc	7.4.0-1
libgmp	6.1.2-1
libip4tc	1.8.2-2
libip6tc	1.8.2-2
libipset	7.1-1
libiwinfo	2018-12-25-dd508af4-1
libiwinfo-lua	2018-12-25-dd508af4-1
libjson-c	0.12.1-2
libjson-script	2018-07-25-c83a84af-2
liblua	5.1.5-1
liblucihttp	2018-05-18-cb119ded-1
liblucihttp-lua	2018-05-18-cb119ded-1
liblzo	2.10-1
libmbedtls	2.14.1-1
libmnl	1.0.4-1
libnetfilter-conntrack	2017-07-25-e8704326-1
libnettle	3.4.1-1
libnfnetlink	1.0.1-1
libnl-tiny	0.1-5
libopenssl	1.0.2p-1
libpcap	1.9.0-1	~90.0 KB
libpthread	1.1.20-1
librt	1.1.20-1
libsodium	1.0.16-1
libss	1.44.3-1
libubox	2018-07-25-c83a84af-2
libubus	2018-10-06-221ce7e7-1
libubus-lua	2018-10-06-221ce7e7-1
libuci	2018-08-11-4c8b4d6e-1
libuclient	2018-11-24-3ba74ebc-1
libusb-1.0	1.0.22-1
libusb-compat	0.1.5-1
libustream-mbedtls	2018-07-30-23a3f283-1
libustream-openssl	2018-07-30-23a3f283-1
libuuid	2.33-1
libxtables	1.8.2-2
logd	2018-12-18-876c7f5b-1
lua	5.1.5-1
luci	git-18.363.79759-1893892-1
luci-app-adblock	git-18.363.79759-1893892-1
luci-app-ddns	2.4.9-7
luci-app-dnscrypt-proxy	git-18.363.79759-1893892-1
luci-app-firewall	git-18.363.79759-1893892-1
luci-app-hd-idle	git-18.363.79759-1893892-1
luci-app-openvpn	git-18.363.79759-1893892-1
luci-app-opkg	git-18.363.79759-1893892-1
luci-app-samba	git-18.363.79759-1893892-1
luci-app-upnp	git-18.363.79759-1893892-1
luci-app-vpn-policy-routing	git-18.356.64384-31d259a-34
luci-base	git-18.363.79759-1893892-1
luci-lib-httpprotoutils	git-18.363.79759-1893892-1
luci-lib-ip	git-18.363.79759-1893892-1
luci-lib-ipkg	git-18.363.79759-1893892-1
luci-lib-jsonc	git-18.363.79759-1893892-1
luci-lib-nixio	git-18.363.79759-1893892-1
luci-mod-admin-full	git-18.363.79759-1893892-1
luci-mod-network	git-18.363.79759-1893892-1
luci-mod-status	git-18.363.79759-1893892-1
luci-mod-system	git-18.363.79759-1893892-1
luci-proto-ipv6	git-18.363.79759-1893892-1
luci-proto-ppp	git-18.363.79759-1893892-1
luci-ssl	git-18.363.79759-1893892-1
luci-ssl-openssl	git-18.363.79759-1893892-1of
luci-theme-bootstrap	git-18.363.79759-1893892-1
miniupnpd	2.1.20180706-1
mtd	23
netifd	2018-12-16-2750ce2e-1
odhcp6c	2018-07-14-67ae6a71-16
odhcpd-ipv6only	2018-12-12-2d2a3b84-3
openssl-util	1.0.2p-1
openvpn-mbedtls	2.4.6-3
openwrt-keyring	2018-05-18-103a32e9-1
opkg	2017-12-07-3b417b9f-3
ppp	2.4.7-14
ppp-mod-pppoe	2.4.7-14
procd	2018-11-23-d6673547-1
px5g-mbedtls	8
resolveip	2
rpcd	2018-11-28-3aa81d0d-1
rpcd-mod-rrdns	20170710
samba36-server	3.6.25-13
swconfig	12
tcpdump	4.9.2-1
uboot-envtools	2018.03-3
ubox	2018-12-18-876c7f5b-1
ubus	2018-10-06-221ce7e7-1
ubusd	2018-10-06-221ce7e7-1
uci	2018-08-11-4c8b4d6e-1
uclient-fetch	2018-11-24-3ba74ebc-1
uhttpd	2018-11-28-cdfc902a-1
usb-modeswitch	2017-12-19-f40f84c2-2
usbreset	4
usbutils	007-9
usign	2015-07-04-ef641914-1
vpn-policy-routing	0.0.2-34
wireless-regdb	2017-10-20-4343d359
wpad-basic	2018-05-21-62566bc2-7