dangowrt / owrt-ubi-installer

OpenWrt firmware installer for the Linksys E8450 aka. Belkin RT3200
GNU General Public License v2.0
388 stars 49 forks source link

Flashed *-ubi-squashfs-sysupgrade.itb, router is non-responsive, power light blinking white #163

Open apiskors opened 7 months ago

apiskors commented 7 months ago

I have a brand new Belkin RT3200 router that I bought c. a year ago, and finally took out of the box today. It had the original 1.0 firmware. On my Linux computer (Ubuntu 22.04.3 LTS), I used git to clone the owrt-ubi-installer project, and then ran build_installer.sh. That generated several files in the "dl" directory. The two important files seem to be:

openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb

Next I followed the instructions here:

https://github.com/dangowrt/owrt-ubi-installer/tree/main#installing-openwrt

I first used the stock Belkin interface to upload the 1st file above, *-ubi-initramfs-recovery.itb. That seemed to work fine, the router rebooted into the OpenWRT recovery.

Next in the OpenWRT recovery, I used http://192.168.1.1/cgi-bin/luci/admin/system/flash to "Flash new firmware image", and gave it the 2nd file above, *-ubi-squashfs-sysupgrade.itb. That did NOT work fine. The router's power light is now blinking white, all other lights are off, all ethernet ports appear to be off.

What should I do to fix this? Thanks in advance for any help and advice!

dangowrt commented 7 months ago

The two important files seem to be:

openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb

That's not the installer. If there aren't also the files openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery-installer.itb openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery-installer_signed.itb

then something went wrong in your attempt to run the build script.

Flashing the openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb (which is what I assume you did) will not result in an installation of the new bootchain, only the image with the word installer in it's name does that. When running V1.0 stock firmware, the correct file would have been openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery-installer.itb.

Now your subsequent attempt to flash openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb resulted in havoc (as the new bootchain is not present and conversion to UBI had never been carried out) which can only be recovered by connecting the serial console.

This has happened to multiple users before who did not read the filename and flashed the wrong file, e.g. here https://github.com/dangowrt/owrt-ubi-installer/issues/63

apiskors commented 7 months ago

Ah. Thanks for the quick response! Well, I ordered a USB-to-TTL serial cable, looks like I'll have to learn to use it, and study your #63...

build_installer.sh emitted lots of output... Re-running it now, I see the problem:

+ find /tmp/tmp.HSCvhn6Lau/initrd/ -mindepth 1 -execdir touch -hcd @1698717834 '{}' +
find: The relative path ‘~/bin’ is included in the PATH environment variable, which is insecure in combination with the -execdir action of find.  Please remove that entry from $PATH

That's not the script's fault, ~/bin is in my PATH. Running it like this fixed things:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin ; ./build_installer.sh 

Now I see it actually built a bunch of *.itb files like you said it should:

openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery-installer.itb
openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery-installer_signed.itb
openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery_signed.itb
openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb
apiskors commented 1 month ago

Daniel, thank you so much for the detailed advice you gave back on 2022-01-13 in Issue 63, that solved my problem!

On my Ubuntu laptop, I installed tftpd-hpa, and put the correct image files (below) in its /srv/tftp/ directory. I attached my Adafruit 954 serial cable, and ran lsusb | grep UART on my laptop. That showed the serial cable as:

Bus 003 Device 015: ID 10c4:ea60 Silicon Labs CP210x UART Bridge

So to talk to the router over the serial cable, I did screen /dev/ttyUSB0 115200, and turned on the router. On the serial output, I saw that bootmenu came up automatically. I then picked option 1. System Load Linux to SDRAM via TFTP. as you said, and gave it the ubi-initramfs-recovery-installer image via my tftp server. Once the OpenWRT recovery firmware booted up, I gave it the ubi-squashfs-sysupgrade image.

For reference, these were the two image files I used, in this order: openwrt-23.05.0-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery-installer.itb openwrt-23.05.3-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb

After that, everything was fixed, my Belkin RT3200 is now unbricked and running OpenWRT 23.05.3!