How to Flash firmware from Turris OS7 to OpenWRT 23.05.3

I have a Turris Omnia router, currently running Turris OS7, which I have found it to be buggy, slow and lacking in features (compared to OpenWRT 25.05.03)

I want to flash the firmware, but i am confused as to how to do it.
Turris OS7 does not support doing so through LuCI, so i will need to do it through SSH.

i have downloaded 4 different files, but am am not sure which one(s) i need to use for the flash. AND i am very reluctant to try a flash (without knowing which is the correct file to use) for fear of bricking my router

These are the 4 files I have

  1. openwrt-23.05.3-mvebu-cortexa9-cznic_turris-omnia-sysupgrade
    (I successfully flashed from Turris OS 4.01 to OpenWRT before
    by uploading this file to the LuCI flash tool,but now running Turris OS7,
    i can not do the same with LuCI)

  2. omnia-medkit-openwrt-23.05.3-mvebu-cortexa9-cznic_turris-omnia-initramfs.tar.gz

  3. openwrt-23.05.3-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz

  4. openwrt-23.05.3-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img

Can someone tell me which file(s) i should use to flash the firmware via SSH?
And the exact steps/commands i need to execute?

https://openwrt.org/toh/turris/turris_omnia

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=9f3f61a0d968fbe7b93899f948f3c34612683ba6

1 Like

i ran the command (below) to determine which U-Boot version is installed
but I do not understand the result, as i see several versions listed AND error msg

root@turris:~# strings /dev/mtd0 | grep U-Boot
U-Boot SPL 2015.10-rc2 (Oct 06 2020 - 03:14:44)
U-Boot
U-Boot 2019.07 for turris_omnia
** Invalid partition type "%.32s" (expect "U-Boot")
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
U-Boot.armv7
No valid device tree binary found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>
U-Boot
U-Boot 2019.07 (Oct 05 2020 - 23:50:39 +0000)
U-Boot
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done

do i need to Execute nor-update?

sysupgrade

  • Login as root via SSH on 192.168.1.1, then enter the following commands:

cd /tmp wget http://downloads.openwrt.org/path/to/sysupgradeimage sysupgrade /tmp/xxx.abc

which file is the wget command supposed to point to?

what is /tmp/xxx.abc supposed to be substituted for?

From the wiki:
Only if you have a very old Turris Omnia with U-Boot 2015.10-rc2

I'd say you do.

that part's for when you're already running openwrt.

the one above.

After several failed attempts (on macos), i was finally able to get my mac to format my usb stick to FAT32. Supposedly that format will work as a flash drive with my turris.

So the question remains . . . which of the 4 files i refer to in the opening of this thread do i need to copy onto my usb stick in order to flash turris os7 to openwrt?

alternatively, since i am apparently still running an old version of u-boot, i should be able to revert back to turris os4 (which is where i began last week) without the risk of bricking my router. I already know for sure that from turris os4, i can use LuCI to flash to openWRT (using the same file that i used last time (openwrt-23.05.3-mvebu-cortexa9-cznic_turris-omnia-sysupgrade)

so if i want to use my usb stick to flash back to turris os4, is the file named omnia-medkit-latest.tar.gz (which i got from the turrisi os archive page under os 4.01) the correct and only file i need to copy onto my usb stick?

thanks in advance to anyone who can help me with this. And sorry for asking so many questions but i have been confused as to which of the several flash methods is the best way to end up running openWRT and to avoid turning my router into a brick

The one the wiki tells you to copy ?

https://openwrt.org/toh/turris/turris_omnia#installation_with_u-boot_201907_or_later

they refer to several files, so it is not at all clear to me which file is the correct one to copy onto my usb stick for a first time installation of openWRT

I want to be very careful to not use the wrong file and turn my router into a brick

are we reading the same text ?

my u boot is apparently older than that (according to what you said after looking at my terminal output) I find that output ambiguous, but i am a newbe, so i will defer to your judgement on that)

So if it is old, that is why i am thinking i may be better off flashing to os4, which i know from there i can easily use LuCI to flash to openWRT . . .then i would do the the u-boot update. Im afraid that if i do the u-boot upgrade first then i will not be able to downgrade it, meaning i will never be able to install os4 again (which i would like to keep as an option in case something goes wrong with this attempted flash

i am very happy to report that i got my turris back running openWRT 23.05.03

i ended up doing a 4LED reset using my USB stick with the torris os 4.01 file i got from the turris os archive page. From there it was easy to flash to openWRT (using the LuCI flash page)

so now before i try installing openVPN or WireGuard, i want to make sure i am running the correct version of u-boot

Can someone please reconfirm (what frollic already told me) regarding which version of u-boot I am running, because i find the output from the “strings /dev/mtd0 | grep U-Boot” command confusing due to mentions of both 2015.10-rct AND 2019.07.

This is the output

root@OpenWrt:~# strings /dev/mtd0 | grep U-Boot
U-Boot SPL 2015.10-rc2 (Oct 06 2020 - 03:14:44)
U-Boot
U-Boot 2019.07 for turris_omnia
** Invalid partition type "%.32s" (expect "U-Boot")
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
U-Boot.armv7
No valid device tree binary found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>
U-Boot
U-Boot 2019.07 (Oct 05 2020 - 23:50:39 +0000)
U-Boot
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done

If it is in fact an old version . . . how do i update it now that i am no longer running a turris os?

thanks in advance for the answer to this question and also i repeat thanks to everyone in this fantastic forum for having patience to read and respond to the numerous other newbe questions i asked these past days

the VPNs have nothing to do with your u-boot (or the other way around).
if you're running openwrt, you're good to go.

what you say makes sense . . . im guessing that u boot only effects how the router boots up. But wouldn't it be a good idea to have the most up-to-date version, especially if/when i update to the next openWRT release?

correct

that's for you to decide

it's not done via u-boot, but from within openwrt.

u-boot is needed for 1st stage boot, and recovery from bricked state, like a bad flash.

Looks pretty old.

i get it. I think I will try to figure out how to upgrade it none the less.
If you can point me to a resource for that, it will be greatly appreciated

unless it's documented (or posted) somewhere, I wouldn't do it via openwrt.

ok, understood. Now, Im trying to install openVPN but am getting this error msg:

“Unable to execute opkg install command: PermissionError: Exec permission denied”

Can anyone tell me how i can fix this issue?

solved: after rebooting, the problem went away

Frolic, can i get your thoughts from another post i made?