Upgrade RB750Gr3 from non-native u-boot to 19.07.3

Hi,

I have RB750Gr3 running OpenWRT 18.06.5 and I found out that I cannot upgrade to 19.07.3 because of "obsolete non-native", which, if I understand correctly, is because of the replaced bootloder (u-boot)

Could any one explain what is the correct way to upgrade to 19.0.7.3 now?
The was a thread which is now locked: How to install to RB750GR3? where someone already asked for the instructions

NOTE that before 19.07.0 release the router was non-natively supported in 18.06.1 release. Upgrade from 18.06.1 to 19.07.0 is not supported

Before I start messing with the device (and maybe brick it), maybe someone already done that?

Thanks

From your link, it seems the suggested solution was to re-install RouterBoot.

And what would be the best way to re-install RouterBoot? Can this be done from within OpenWRT ssh session?

Ok, so I successfully restored RouterBOOT this way:

  1. get OpenWRT sources for RB750gr3 obsolete 18.04 branch
  2. edit dts to enable read/write to raw MTD:
diff --git a/target/linux/ramips/dts/RB750Gr3.dts b/target/linux/ramips/dts/RB750Gr3.dts
index dc359b10bb..32a2307f8d 100644
--- a/target/linux/ramips/dts/RB750Gr3.dts
+++ b/target/linux/ramips/dts/RB750Gr3.dts
@@ -81,25 +81,22 @@
                m25p,chunked-io = <32>;
 
                partition@0 {
-                       label = "u-boot";
+                       label = "mtd0";
                        reg = <0x0 0x30000>;
-                       read-only;
                };
 
                partition@30000 {
-                       label = "u-boot-env";
+                       label = "mtd1";
                        reg = <0x30000 0x10000>;
-                       read-only;
                };
 
                factory: partition@40000 {
-                       label = "factory";
+                       label = "mtd2";
                        reg = <0x40000 0x10000>;
-                       read-only;
                };
 
                partition@50000 {
-                       label = "firmware";
+                       label = "mtd3";
                        reg = <0x50000 0xfb0000>;
                };
  1. build initramfs-kernel image
  2. boot it using TFTP
  3. slice the SPI backup into 4 pieces:
dd if=RouterBOOT_OpenWrt.bin of=mtd0 bs=1 count=$((0x30000))
dd if=RouterBOOT_OpenWrt.bin of=mtd1 bs=1 count=$((0x10000)) skip=$((0x30000))
dd if=RouterBOOT_OpenWrt.bin of=mtd2 bs=1 count=$((0x10000)) skip=$((0x40000))
dd if=RouterBOOT_OpenWrt.bin of=mtd3 bs=1 skip=$((0x50000))
  1. flash them all:
mtd write md0 mtd0
mtd write md1 mtd1
mtd write md2 mtd2
mtd write md3 mtd3
  1. reboot
  2. you should now get OpenWRT 19 with RouterBOOT
2 Likes

Hi! Thanks for the solution!

If I understand correctly it should be futureproof going forward?

By any chance is it possible for you to share the binary files?

I didn't want to duplicate any files, as they already are publicly available.

The RouterBOOT_OpenWrt.bin SPI backup file is located here:

https://gist.github.com/jwangac/701a31f0cfe03ad6bef821affd005944/raw/db6bed1a6a9a898af0c61cf616ea3855baca4bd7/RouterBOOT_OpenWrt.bin

Download it and execute the provided dd commands:

dd if=RouterBOOT_OpenWrt.bin of=mtd0 bs=1 count=$((0x30000))
dd if=RouterBOOT_OpenWrt.bin of=mtd1 bs=1 count=$((0x10000)) skip=$((0x30000))
dd if=RouterBOOT_OpenWrt.bin of=mtd2 bs=1 count=$((0x10000)) skip=$((0x40000))
dd if=RouterBOOT_OpenWrt.bin of=mtd3 bs=1 skip=$((0x50000))
2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.