Now that production is OpenWRT 23.05.4, I still have Recovery on Snapshot.
I tried booting Recovery, and it bricked by router again. (good thing is I now know how to revive it again). I think this is due to the Layout change.

How should I proceed to update recovery partition? I would like to go back to a release version and not a snapshot.

Thanks

Other question, should I we worried about "v2.9(release):OpenWrt v2023-07-24-00ac6db3-2 (mt7622-snand-1ddr)" on BL31? This version is maked as "at risk of OKD"

NOTICE:  BL2: v2.4(release):OpenWrt v2021-05-08-d2c75b21-3 (mt7622-snand-1ddr)
NOTICE:  BL2: Built : 22:25:54, Jul 15 2024
NOTICE:  SPI-NAND: FM35Q1GA (128MB)
NOTICE:  BL2: Booting BL31
NOTICE:  BL31: v2.9(release):OpenWrt v2023-07-24-00ac6db3-2 (mt7622-snand-1ddr)
NOTICE:  BL31: Built : 22:14:18, Jul 15 2024

It looks like you're in good shape. For updating the recovery partition, it's as simple as loading the recovery (listed as KERNEL on the firmware selector) via TFTP using the U-Boot menu option. It will need the name listed in the complete recovery post. Alternatively, you can replace the recovery volume from a running OpenWRT installation with SSH and the ubiupdatevol command.

You're not at risk at all. The logic issue that resulted in OKD was present only in the PRELOADER.BIN (BL2) stage. BL31 is not affected by the issue at all.

1 Like

Is 23.05.5 ok to use now?

The wiki still says 23.05.4 is the latest supported version and I did not want to upgrade if there is an issue that I missed seeing.

Finally was able to update from 22.03 to 23.05 so do not want to mess this up now.

Hi @grauerfuchs

Thanks for the hint.

I had not understood that running "run boot_tftp_recovery" (from your steps) didn't actually write the recovery to flash partition.

So I simply went back to Uboot, and chose option 6. Load recovery system via TFTP then write to flash.

Thanks a lot. all is great now!

1 Like

The command listed in the post does write the recovery volume to flash, but only if one does not already exist (it will not overwrite). As that post was written at a time when a poorly chosen file would result in corruption and reformatting of the entire UBI space or more, the process was reliable at the time. Since then, there have been changes made to the firmware that prevent it from immediately reformatting the flash upon detecting "corruption" (or a differing layout). Although beneficial for this exact situation, the changes had the side effect of leaving the recovery and other UBI volumes behind. Because the volumes are still there, the hard recovery instructions may conditionally recognize it and refuse to overwrite the existing recovery image.

The option from the U-Boot menu contains an additional set of commands that instruct the script to always write the downloaded recovery file to flash. The same is true for the equivalent command for writing the production image (the sysupgrade).

The wiki is sometimes a little out of date because any changes require manual updates, and only a limited group of people can make those updates. The firmware selector does have the device listed for 23.05.5, and the 23.05.5 image does work on the device. However, if you're worried, then by all means take backups of the configuration and the factory mtdblock device.

Even if something unexpected and unpredictable happens and the data becomes corrupted, the factory partition and config backup will allow you to recover the device.

1 Like

apology for OT, but i see so many brilliant people in one place, i'm looking forward to add a good wifi 6 router and short listed GL-INET GL-MT6000 FLINT 2, is this choice alright? or am i missing some better option?

It is also interesting GL-INET GL-MT6000 FLINT 2, it is $99 on Taobao, Chines version.

I just checked this topic again after a while and found out that the cause of OKD has been found and fixed (great job btw!), I was trying to flash BL2 by following this guide but apparently the firmware selector is a bit broken right now, so I can't automatically upgrade to the latest snapshot (well at least not with my custom packages). Has anyone tried flashing a recent snapshot or the new 24.10 one? Is it working correctly?

yes, working ok , no issues
i'm on v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7622-snand-ubi-1ddr) for snapshots

1 Like

Any recent-ish snapshot works fine on my remote RT3200 :slight_smile:

1 Like

Here's as far as I've gotten.
router

It says a-1 and a-2 are affected but mine's a 6-1. How do I proceed?

V2.9 is affected, independent of the minor release. ( The minor release spec is about 2.10 versions)

EDIT:

Follow the fix advice in wiki, my advice starting just below your wiki quote...

I clarified the wiki:

If you are on the v2.9 branch or (2.10 branch and the suffix of the build is ...a**-1** or ...a**-2**) ⇒ Device is affected and at risk of OKD
...
You are safe as you have the fixed v2.10.0...a**-3** or later build.

2 Likes

Well this isn't good, because I turned the router off and it won't reboot.

Ok i got it.
It was working but noticed it was on a lower version. I updated to the latest snapshot, ip address is 192.168.1.1 but now I can't access luci. How can i fix this?

12

Install luci.

Got it, thanks. Working good. Is it safe to install the latest snapshot or nah?

Quite normally, by installing LuCI. (Testing snapshots are without it)

opkg update
opkg install luci

(Or opkg install luci-ssl)

1 Like

I had run the snapshot with FIP in UBI layout and want to go back to 23.05. Direct sysupgrade to 23.05 caused the wifi (eeprom) couldn't load successfully. Then I tried to flash the mtd backup but I failed on mtd2 and mtd3 with could not open mtd device. I followed the guide at https://github.com/dangowrt/owrt-ubi-installer

The router cannot boot now so I'm trying mtk_uartboot now. The problem is that no uboot screen shows after powering on.

journalist@MBP Downloads % ./mtk_uartboot -a -p e8450/mt7622-ram-1ddr-bl2.bin -f e8450/openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip -s /dev/tty.usbserial-144410 && screen /dev/tty.usbserial-144410 115200 
mtk_uartboot - 0.1.1
Using serial port: /dev/tty.usbserial-144410
Handshake...
hw code: 0x7622
hw sub code: 0x8a00
hw ver: 0xcb00
sw ver: 0x100
Baud rate set to 460800
sending payload to 0x201000...
Checksum: 0x26de
Setting baudrate back to 115200
Jumping to 0x201000 in aarch64...
Waiting for BL2. Message below:
==================================
NOTICE:  BL2: v2.10.0	(release):OpenWrt v2024.01.17~bacca82a-3 (mt7622-ram-1ddr)
NOTICE:  BL2: Built : 10:41:20, Nov  6 2024
NOTICE:  WDT: Cold boot
NOTICE:  CPU: MT7622
NOTICE:  WDT: disabled
NOTICE:  Starting UART download handshake ...
==================================
BL2 UART DL version: 0x10

Tried to change /dev/tty to /dev/cu but the results are same.

It looks to me like it's not able to completely download the .fip over serial. It's getting something back, but the capture doesn't show the message saying that the download completed. How long are you waiting after mtk_uartboot starts?

If it never completes, it's possible your cable might not be reliable at the extremely high speed used by default for the FIP download. Since it clearly succeeds in getting the BL2, that's a good place to start with speed. Therefore, you can add the argument --bl2-load-baudrate 460800 to the mtk_uartboot command to see if the slower speed will succeed. If that still doesn't work, you can also try the speed 115200. That works with nearly every cable on the market that I've seen, but it takes a few minutes to complete the download.