- Status Closed
- Percent Complete
- Task Type Bug Report
- Category Base system
-
Assigned To
Adrian Schmutzler - Operating System All
- Severity Very Low
- Priority Very Low
- Reported Version Trunk
- Due in Version Undecided
-
Due Date
Undecided
- Private
Attached to Project: OpenWrt/LEDE Project
Opened by txt.file - 17.09.2019
Last edited by Adrian Schmutzler - 08.07.2020
Opened by txt.file - 17.09.2019
Last edited by Adrian Schmutzler - 08.07.2020
FS#2510 - WNDR3700v2, WNDR3800 unable to update from ar71xx-generic to ath79
device
- WNDR3700v2
- WNDR3800
Software version of OpenWrt release
- tested on master branch
Steps to reproduce
- install openwrt-trunk ar71xx-generic image on device
- copy openwrt-trunk ath79 image to device
- sysupgrade from ar71xx-generic to ath79
- get error message that device is not correct
other
Tried that a month ago. Will add further information as soon as I find time. I would really love to patch this but will need some help. I own both devices and can test.
Closed by Adrian Schmutzler
08.07.2020 17:46
Reason for closing: Fixed
Additional comments about closing:
08.07.2020 17:46
Reason for closing: Fixed
Additional comments about closing:
This has been fixed quite some time
ago.
You can use the "-F" or "–force" option in sysupgrade to jump between ath79 and ar71xx firmwares for WNDR3700v2 and WNDR3800. The configs are practically identical. (I do that frequently when testing my community build.)
Please provide the error message.
This switch is very dangerous and should be used as a last resort and only if the people know how to unbrick their router.
flashed https://downloads.openwrt.org/snapshots/targets/ar71xx/generic/openwrt-ar71xx-generic-wndr3700v2-squashfs-sysupgrade.bin (2019-06-17) onto a wndr3700v2
I expect that the problem to be in "target/linux/ar71xx/image/generic.mk". The BOARDNAME is not set for wndr3700v2 / wndr3800.
To my knowledge, the one-time transition logic from ar71xx to ath79 is not complete for most ar71xx devices, as the DTS based device name detection in ath79 deviates from the old mach file based one in the old ar71xx. You practically need to force the sysupgrade, or use a tool like the Netgear TFTP recovery tool to flash the ath79 build.
For ar71xx the BOARDNAME is WNDR3700 for all three routers in the series (3700, 3700v2, 3800) and a separate NETGEAR_BOARD_ID separates them.
In ath79 the boardname (compatible string) is defined for each device in DTS with a different naming structure than in ar71xx.
For the ath79 sysupgrade to be compatible aith the sysupgrade logic in ar71xx, 3700v2 should declare compatibility with WNDR3700, which is not wanted.
You are talking about one-time transition logic from ar71xx to ath79 target for an ancient router. So the issue is not major, and likely nobody will create a fix unless you do it by creating logic for ar71xx to accept just the correct ath79 sysupgrade files while still maintaining the correct separation of router versions inside both ar71xx and ath79.
Ps. For WNDR3700, 3700v2 and 3800 the configs in ar71xx and ath79 are compatible. I have been constantly jumping between them as I have tested my community build for the 3700 series (which has been running since year 2011). Using the force flag in WNDR3700 sysupgrade for ar71xx –> ath79 –> ar71xx works quite ok, although Petr raised concern about mentioning it.
If I understand all this correctly following patch should fix it https://gitlab.com/ynezz/openwrt/commit/2d3a4b208f811b6ec3380feac527cbbe5968075c
compilation is running. I will runtime test it next Monday.
flashed image based on https://gitlab.com/ynezz/openwrt/commit/2d3a4b208f811b6ec3380feac527cbbe5968075c onto a wndr3700v2 and then flashed (sysupgrade -n") https://downloads.openwrt.org/snapshots/targets/ath79/generic/openwrt-ath79-generic-netgear_wndr3700v2-squashfs-sysupgrade.bin
It worked.
3800 also tested and works too. This time tested with "preserve config".
Thanks Petr.
ynezz and I agreed that we will address this differently:
We won't change the boardnames in ar71xx, but just add the shared boardname in ar71xx to the SUPPORTED_DEVICES in ath79.
Patch: https://git.openwrt.org/?p=openwrt/staging/adrian.git;a=commitdiff;h=3f12d2b1ab7f88cadfe6b089bf88b5ee98c82ae1
This will enable to upgrade to ath79 directly without flashing an intermediate version. (Though it will theoretically introduce the problem that someone can flash wndr3700v2 image on wndr3700v1 when upgrading from ar71xx.)